2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
20 using ErrorCode = Interop.PackageManager.ErrorCode;
21 using StorageType = Interop.PackageManager.StorageType;
22 using CertCompareResultType = Interop.PackageManager.CertCompareResultType;
24 internal static partial class Interop
26 internal static partial class Package
28 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
29 internal delegate bool PackageInfoAppInfoCallback(AppType appType, string appId, IntPtr userData);
31 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
32 internal delegate bool PackageInfoCertificateInfoCallback(IntPtr handle, CertificateType certType, string certValue, IntPtr userData);
34 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
35 internal delegate bool PackageInfoPrivilegeInfoCallback(string privilege, IntPtr userData);
37 // Any change here might require changes in Tizen.Applications.AppType enum
45 internal enum CertificateType
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
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);
61 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_foreach_cert_info")]
62 internal static extern ErrorCode PackageInfoForeachCertificateInfo(IntPtr handle, PackageInfoCertificateInfoCallback callback, IntPtr user_data);
64 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_foreach_privilege_info")]
65 internal static extern ErrorCode PackageInfoForeachPrivilegeInfo(IntPtr handle, PackageInfoPrivilegeInfoCallback callback, IntPtr userData);
67 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_create")]
68 internal static extern ErrorCode PackageInfoCreate(string packageId, out IntPtr handle);
70 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_destroy")]
71 internal static extern ErrorCode PackageInfoDestroy(IntPtr handle);
73 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_package")]
74 internal static extern ErrorCode PackageInfoGetPackage(IntPtr handle, out string packageId);
76 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_label")]
77 internal static extern ErrorCode PackageInfoGetLabel(IntPtr handle, out string label);
79 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_icon")]
80 internal static extern ErrorCode PackageInfoGetIconPath(IntPtr handle, out string path);
82 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_version")]
83 internal static extern ErrorCode PackageInfoGetVersion(IntPtr handle, out string version);
85 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_type")]
86 internal static extern ErrorCode PackageInfoGetType(IntPtr handle, out string type);
88 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_installed_storage")]
89 internal static extern ErrorCode PackageInfoGetInstalledStorage(IntPtr handle, out StorageType storage);
91 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_root_path")]
92 internal static extern ErrorCode PackageInfoGetRootPath(IntPtr handle, out string path);
94 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_tep_name")]
95 internal static extern ErrorCode PackageInfoGetTepName(IntPtr handle, out string name);
97 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_system_package")]
98 internal static extern ErrorCode PackageInfoIsSystemPackage(IntPtr handle, out bool system);
100 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_removable_package")]
101 internal static extern ErrorCode PackageInfoIsRemovablePackage(IntPtr handle, out bool removable);
103 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_preload_package")]
104 internal static extern ErrorCode PackageInfoIsPreloadPackage(IntPtr handle, out bool preload);
106 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_is_accessible")]
107 internal static extern ErrorCode PackageInfoIsAccessible(IntPtr handle, out bool accessible);
109 [DllImport(Libraries.PackageManager, EntryPoint = "package_info_get_installed_time")]
110 internal static extern ErrorCode PackageInfoGetInstalledTime(IntPtr handle, out int installedTime);
112 [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_compare_package_cert_info")]
113 internal static extern ErrorCode PackageCompareCertInfo(string lhsPackageId, string rhsPackageId, out CertCompareResultType result);