Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.PackageManager / Interop / Interop.Package.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 System.Runtime.InteropServices;
19
20 using ErrorCode = Interop.PackageManager.ErrorCode;
21 using StorageType = Interop.PackageManager.StorageType;
22 using CertCompareResultType = Interop.PackageManager.CertCompareResultType;
23
24 internal static partial class Interop
25 {
26     internal static partial class Package
27     {
28         [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
29         internal delegate bool PackageInfoAppInfoCallback(AppType appType, string appId, IntPtr userData);
30
31         [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
32         internal delegate bool PackageInfoCertificateInfoCallback(IntPtr handle, CertificateType certType, string certValue, IntPtr userData);
33
34         [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
35         internal delegate bool PackageInfoPrivilegeInfoCallback(string privilege, IntPtr userData);
36
37         // Any change here might require changes in Tizen.Applications.AppType enum
38         internal enum AppType
39         {
40             All = 0,
41             Ui = 1,
42             Service = 2
43         }
44
45         internal enum CertificateType
46         {
47             AuthorRootCertificate = 0,
48             AuthorIntermediateCertificate = 1,
49             AuthorSignerCertificate = 2,
50             DistributorRootCertificate = 3,
51             DistributorIntermediateCertificate = 4,
52             DistributorSignerCertificate = 5,
53             Distributor2RootCertificate = 6,
54             Distributor2IntermediateCertificate = 7,
55             Distributor2SignerCertificate = 8
56         }
57
58         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_foreach_app_from_package")]
59         internal static extern ErrorCode PackageInfoForeachAppInfo(IntPtr handle, AppType appType, PackageInfoAppInfoCallback callback, IntPtr userData);
60
61         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_foreach_cert_info")]
62         internal static extern ErrorCode PackageInfoForeachCertificateInfo(IntPtr handle, PackageInfoCertificateInfoCallback callback, IntPtr user_data);
63
64         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_foreach_privilege_info")]
65         internal static extern ErrorCode PackageInfoForeachPrivilegeInfo(IntPtr handle, PackageInfoPrivilegeInfoCallback callback, IntPtr userData);
66
67         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_create")]
68         internal static extern ErrorCode PackageInfoCreate(string packageId, out IntPtr handle);
69
70         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_destroy")]
71         internal static extern ErrorCode PackageInfoDestroy(IntPtr handle);
72
73         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_package")]
74         internal static extern ErrorCode PackageInfoGetPackage(IntPtr handle, out string packageId);
75
76         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_label")]
77         internal static extern ErrorCode PackageInfoGetLabel(IntPtr handle, out string label);
78
79         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_icon")]
80         internal static extern ErrorCode PackageInfoGetIconPath(IntPtr handle, out string path);
81
82         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_version")]
83         internal static extern ErrorCode PackageInfoGetVersion(IntPtr handle, out string version);
84
85         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_type")]
86         internal static extern ErrorCode PackageInfoGetType(IntPtr handle, out string type);
87
88         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_installed_storage")]
89         internal static extern ErrorCode PackageInfoGetInstalledStorage(IntPtr handle, out StorageType storage);
90
91         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_root_path")]
92         internal static extern ErrorCode PackageInfoGetRootPath(IntPtr handle, out string path);
93
94         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_tep_name")]
95         internal static extern ErrorCode PackageInfoGetTepName(IntPtr handle, out string name);
96
97         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_system_package")]
98         internal static extern ErrorCode PackageInfoIsSystemPackage(IntPtr handle, out bool system);
99
100         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_removable_package")]
101         internal static extern ErrorCode PackageInfoIsRemovablePackage(IntPtr handle, out bool removable);
102
103         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_preload_package")]
104         internal static extern ErrorCode PackageInfoIsPreloadPackage(IntPtr handle, out bool preload);
105
106         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_accessible")]
107         internal static extern ErrorCode PackageInfoIsAccessible(IntPtr handle, out bool accessible);
108
109         [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_installed_time")]
110         internal static extern ErrorCode PackageInfoGetInstalledTime(IntPtr handle, out int installedTime);
111
112         [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_compare_package_cert_info")]
113         internal static extern ErrorCode PackageCompareCertInfo(string lhsPackageId, string rhsPackageId, out CertCompareResultType result);
114     }
115 }