Fix build warnings
[platform/core/csapi/tizenfx.git] / src / Tizen.Location / Tizen.Location / LocationError.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using Tizen.Internals.Errors;
19
20 namespace Tizen.Location
21 {
22     internal static class LocationManagerError
23     {
24         public const int Base = -0x02C00000;
25         public const int BoundsBase = -0x02C00000 | 0x20;
26     }
27
28     /// <summary>
29     /// Location Manager error codes.
30     /// </summary>
31     /// <since_tizen> 3 </since_tizen>
32     public enum LocationError
33     {
34         /// <summary>
35         /// Successful.
36         /// </summary>
37         None = ErrorCode.None,
38
39         /// <summary>
40         /// Out of memory error.
41         /// </summary>
42         OutOfMemory = ErrorCode.OutOfMemory,
43
44         /// <summary>
45         /// Invalid parameter.
46         /// </summary>
47         InvalidParameter = ErrorCode.InvalidParameter,
48
49         /// <summary>
50         /// Permission denied.
51         /// </summary>
52         AcessibilityNotallowed = ErrorCode.PermissionDenied,
53
54         /// <summary>
55         /// Address family not supported.
56         /// </summary>
57         NotSupported = ErrorCode.NotSupported,
58
59         /// <summary>
60         /// Location manager contains incorrect method for a given call.
61         /// </summary>
62         IncorrectMethod = LocationManagerError.Base | 0x01,
63
64         /// <summary>
65         /// Network unavailable.
66         /// </summary>
67         NetworkFailed = LocationManagerError.Base | 0x02,
68
69         /// <summary>
70         /// Location service is not available.
71         /// </summary>
72         ServiceNotAvailable = LocationManagerError.Base | 0x03,
73
74         /// <summary>
75         /// GPS/WPS, or MOCK setting is not enabled.
76         /// </summary>
77         SettingOff = LocationManagerError.Base | 0x04,
78
79         /// <summary>
80         /// Restricted by security system policy.
81         /// </summary>
82         SecuirtyRestricted = LocationManagerError.Base | 0x05,
83     }
84
85     /// <summary>
86     /// Location Boundary error codes.
87     /// </summary>
88     /// <since_tizen> 3 </since_tizen>
89     public enum LocationBoundError
90     {
91
92         /// <summary>
93         /// Successful.
94         /// </summary>
95         None = ErrorCode.None,
96
97         /// <summary>
98         /// Out of memory error.
99         /// </summary>
100         OutOfMemory = ErrorCode.OutOfMemory,
101
102         /// <summary>
103         /// Invalid parameter.
104         /// </summary>
105         InvalidParameter = ErrorCode.InvalidParameter,
106
107         /// <summary>
108         /// Not supported.
109         /// </summary>
110         NotSupported = ErrorCode.NotSupported,
111
112         /// <summary>
113         /// Incorrect bounds type for a given call.
114         /// </summary>
115         IncorrectType = LocationManagerError.BoundsBase | 0x01,
116
117         /// <summary>
118         /// Cannot remove bounds handle from location manager.
119         /// </summary>
120         IsAdded = LocationManagerError.BoundsBase | 0x02
121     }
122
123     internal static class LocationErrorFactory
124     {
125         internal static Exception ThrowLocationException(int errCode)
126         {
127             Log.Error(Globals.LogTag, "Throw Location Exception : " + errCode);
128             LocationError error = (LocationError)errCode;
129             switch (error)
130             {
131                 case LocationError.OutOfMemory:
132                     return new InvalidOperationException("Out of memory");
133                 case LocationError.InvalidParameter:
134                     return new ArgumentException("Invalid Parameter passed");
135                 case LocationError.AcessibilityNotallowed:
136                     return new UnauthorizedAccessException("Accesibility not allowed");
137                 case LocationError.NotSupported:
138                     return new NotSupportedException("Not supported");
139                 case LocationError.IncorrectMethod:
140                     return new InvalidOperationException("Incorrect method used");
141                 case LocationError.NetworkFailed:
142                     return new InvalidOperationException("Network failed");
143                 case LocationError.ServiceNotAvailable:
144                     return new InvalidOperationException("Service not available");
145                 case LocationError.SettingOff:
146                     return new InvalidOperationException("Current locationtype setting is off");
147                 case LocationError.SecuirtyRestricted:
148                     return new InvalidOperationException("Security Restricted");
149                 default:
150                     return new InvalidOperationException("Unknown Error");
151             }
152         }
153
154         internal static Exception ThrowLocationBoundaryException(int errCode)
155         {
156             LocationBoundError error = (LocationBoundError)errCode;
157             switch (error)
158             {
159                 case LocationBoundError.OutOfMemory:
160                     return new InvalidOperationException("Out of memory exception");
161                 case LocationBoundError.InvalidParameter:
162                     return new ArgumentException("Invalid parameter passed");
163                 case LocationBoundError.NotSupported:
164                     return new NotSupportedException("Not supported");
165                 case LocationBoundError.IncorrectType:
166                     return new InvalidOperationException("Incorrect type passed");
167                 case LocationBoundError.IsAdded:
168                     return new InvalidOperationException("Boundary is not addded");
169                 default:
170                     return new InvalidOperationException("Unknown Error");
171             }
172         }
173     }
174 }