[NUI] Fix Svace issue (#949)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / VersionCheck.cs
1 /*
2  * Copyright(c) 2018 Samsung Electronics Co., Ltd.
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
18 using System;
19 using System.Diagnostics;
20
21 namespace Tizen.NUI
22 {
23     //This version should be updated and synced for every Dali native release
24     internal static class Version
25     {
26         //from dali_1.3.23 : NUI internal API version 501
27         //from dali_1.3.28 : NUI internal API version 502
28         //from dali_1.3.34 : NUI internal API version 503
29         //from dali_1.3.41 : NUI internal API version 504
30         //from dali_1.3.48 : NUI internal API version 505
31         public const int nuiAPIVer = 505;
32         public const int reservedVer1 = 0;
33         public const int reservedVer2 = 0;
34         
35         [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_NativeVersionCheck")]
36         public static extern bool NativeVersionCheck(ref int ver1, ref int ver2, ref int ver3);
37         
38         [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_NUI_InternalAPIVersionCheck")]
39         public static extern bool InternalAPIVersionCheck(ref int ver1, ref int ver2, ref int ver3);
40
41         static internal bool DaliVersionMatchWithNUI()
42         {
43             int ver1 = -1;
44             int ver2 = -1;
45             int ver3 = -1;
46
47             try
48             {
49                 if (InternalAPIVersionCheck(ref ver1, ref ver2, ref ver3) == true)
50                 {
51                     if (ver1 != nuiAPIVer)
52                     {
53                         NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
54                         throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
55                     }
56                 }
57                 else
58                 {
59                     NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
60                     throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
61                 }
62             }
63             catch (Exception)
64             {
65                 NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
66                 throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
67             }
68
69             PrintDaliNativeVersion();
70             return true;
71         }
72
73         //[Conditional("DEBUG_ON")]
74         static internal void PrintDaliNativeVersion()
75         {
76             int ver1 = -1;
77             int ver2 = -1;
78             int ver3 = -1;
79
80             NativeVersionCheck(ref ver1, ref ver2, ref ver3);
81             //NUILog.Debug($"DALi Version: ({ver1}.{ver2}.{ver3}), NUI API Version: ({nuiAPIVer})");
82             NUILog.Error($"NOT Error! Just Showing DALi Version: ({ver1}.{ver2}.{ver3}), NUI API Version: ({nuiAPIVer})");
83         }
84     }
85 }