c21d3ec9fed9fb39a093c11a5777f975b0ae1705
[platform/core/csapi/system.git] / Tizen.System / RuntimeInfo / RuntimeInfoErrorFactory.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.System
21 {
22     internal enum RuntimeInfoError
23     {
24         None = ErrorCode.None,
25         InvalidParameter = ErrorCode.InvalidParameter,
26         OutOfMemory = ErrorCode.OutOfMemory,
27         Io = ErrorCode.IoError,
28         RemoteIo = ErrorCode.RemoteIo,
29         InvalidOperation = ErrorCode.InvalidOperation,
30         PermissionDenied = ErrorCode.PermissionDenied,
31         NotSupported = ErrorCode.NotSupported
32     }
33
34     internal static class RuntimeInfoErrorFactory
35     {
36         internal const string LogTag = "Tizen.System.RuntimeInformation";
37
38         internal static void ThrowException(int err)
39         {
40             RuntimeInfoError error = (RuntimeInfoError)err;
41             if (error == RuntimeInfoError.OutOfMemory)
42             {
43                 throw new InvalidOperationException("Out of memory");
44             }
45             else if (error == RuntimeInfoError.InvalidParameter)
46             {
47                 throw new ArgumentException("Invalid parameter");
48             }
49             else if (error == RuntimeInfoError.Io)
50             {
51                 throw new ArgumentException("I/O Error");
52             }
53             else if (error == RuntimeInfoError.RemoteIo)
54             {
55                 throw new ArgumentException("Remote I/O Error");
56             }
57             else if (error == RuntimeInfoError.InvalidOperation)
58             {
59                 throw new ArgumentException("Invalid operation");
60             }
61             else if (error == RuntimeInfoError.PermissionDenied)
62             {
63                 throw new ArgumentException("Permission denied");
64             }
65             else if (error == RuntimeInfoError.NotSupported)
66             {
67                 throw new ArgumentException("Not supported");
68             }
69         }
70     }
71 }