[NUI] Layout: Fixed disposed bug and removed RegisterChildProperties API usage (...
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / VersionCheck.cs
1 /*
2  * Copyright(c) 2017 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         public const int nuiAPIVer = 502;
29         public const int reservedVer1 = 0;
30         public const int reservedVer2 = 0;
31
32         static internal bool DaliVersionMatchWithNUI()
33         {
34             int ver1 = -1;
35             int ver2 = -1;
36             int ver3 = -1;
37
38             try
39             {
40                 if (NDalicManualPINVOKE.InternalAPIVersionCheck(ref ver1, ref ver2, ref ver3) == true)
41                 {
42                     if (ver1 != nuiAPIVer)
43                     {
44                         NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
45                         throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
46                     }
47                 }
48                 else
49                 {
50                     NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
51                     throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
52                 }
53             }
54             catch (Exception)
55             {
56                 NUILog.Error($"NUI API version mismatch error! NUI API Version: ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
57                 throw new System.InvalidOperationException($"NUI API version mismatch error! NUI API version should be ({nuiAPIVer}) but read version from native: ({ver1}.{ver2}.{ver3})");
58             }
59
60             PrintDaliNativeVersion();
61             return true;
62         }
63
64         //[Conditional("DEBUG_ON")]
65         static private void PrintDaliNativeVersion()
66         {
67             int ver1 = -1;
68             int ver2 = -1;
69             int ver3 = -1;
70
71             NDalicManualPINVOKE.NativeVersionCheck(ref ver1, ref ver2, ref ver3);
72             //NUILog.Debug($"DALi Version: ({ver1}.{ver2}.{ver3}), NUI API Version: ({nuiAPIVer})");
73             NUILog.Error($"NOT Error! Just Showing DALi Version: ({ver1}.{ver2}.{ver3}), NUI API Version: ({nuiAPIVer})");
74         }
75     }
76 }