summaryrefslogtreecommitdiff
path: root/Tizen.Applications.PackageManager/Interop/Interop.PackageManager.cs
blob: 5d726c879be5d1d1b3cf826b93a3037f8cb423cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
/*
 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using System;
using System.Runtime.InteropServices;
using Tizen.Applications;

internal static partial class Interop
{
    internal static partial class PackageManager
    {
        [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
        internal delegate void PackageManagerEventCallback(string type, string packageId, EventType eventType, PackageEventState eventState, int progress, ErrorCode error, IntPtr userData);

        [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
        internal delegate bool PackageManagerPackageInfoCallback(IntPtr handle, IntPtr userData);

        [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
        internal delegate void PackageManagerSizeInfoCallback(string packageId, IntPtr sizeInfoHandle, IntPtr userData);

        [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
        internal delegate void PackageManagerTotalSizeInfoCallback(IntPtr sizeInfoHandle, IntPtr userData);

        // Any change here might require changes in Tizen.Applications.PackageManagerEventError enum
        internal enum ErrorCode
        {
            None = Tizen.Internals.Errors.ErrorCode.None,
            InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
            OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
            IoError = Tizen.Internals.Errors.ErrorCode.IoError,
            NoSuchPackage = -0x01150000 | 0x71,
            SystemError = -0x01150000 | 0x72,
            PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied
        }

        // Any change here might require changes in Tizen.Applications.PackageEventState enum
        internal enum PackageEventState
        {
            Started = 0,
            Processing = 1,
            Completed = 2,
            Failed = 3
        }

        [Flags]
        internal enum EventStatus
        {
            All = 0x00,
            Install = 0x01,
            Unstall = 0x02,
            Upgrade = 0x24,
        }

        internal enum EventType
        {
            Install = 0,
            Uninstall = 1,
            Update = 2
        }

        internal enum CertCompareResultType
        {
            Match = 0,
            Mismatch,
            LhsNoCert,
            RhsNoCert,
            BothNoCert
        }

        internal enum PackageManagerPermissionType
        {
            Normal = 0,
            Signature,
            Privilege
        }

        // Any change here might require changes in Tizen.Applications.StorageType enum
        internal enum StorageType
        {
            Internal = 0,
            External = 1
        }

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_create")]
        internal static extern ErrorCode PackageManagerCreate(out SafePackageManagerHandle managerHandle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_destroy")]
        internal static extern ErrorCode PackageManagerDestroy(IntPtr managerHandle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_set_event_status")]
        internal static extern ErrorCode PackageManagerSetEvenStatus(SafePackageManagerHandle managerHandle, EventStatus eventStatus);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_set_event_cb")]
        internal static extern ErrorCode PackageManagerSetEvent(SafePackageManagerHandle managerHandle, PackageManagerEventCallback callback, IntPtr userData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_unset_event_cb")]
        internal static extern ErrorCode PackageManagerUnsetEvent(SafePackageManagerHandle managerHandle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_foreach_package_info")]
        internal static extern ErrorCode PackageManagerForeachPackageInfo(PackageManagerPackageInfoCallback callback, IntPtr userData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_get_package_size_info")]
        internal static extern ErrorCode PackageManagerGetSizeInfo(string packageId, PackageManagerSizeInfoCallback callback, IntPtr userData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_get_total_package_size_info")]
        internal static extern ErrorCode PackageManagerGetTotalSizeInfo(PackageManagerTotalSizeInfoCallback callback, IntPtr userData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_get_package_id_by_app_id")]
        internal static extern ErrorCode PackageManageGetPackageIdByAppId(string app_id, out string package_id);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_get_package_info")]
        internal static extern ErrorCode PackageManagerGetPackageInfo(string packageId, out IntPtr packageInfoHandle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_clear_cache_dir")]
        internal static extern ErrorCode PackageManagerClearCacheDir(string packageId);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_clear_all_cache_dir")]
        internal static extern ErrorCode PackageManagerClearAllCacheDir();

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_clear_data_dir")]
        internal static extern ErrorCode PackageManagerClearDataDir(string packageId);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_filter_create")]
        internal static extern ErrorCode PackageManagerFilterCreate(out IntPtr handle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_filter_destroy")]
        internal static extern ErrorCode PackageManagerFilterDestroy(IntPtr handle);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_filter_add_bool")]
        internal static extern ErrorCode PackageManagerFilterAdd(IntPtr handle, string property, bool value);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_filter_foreach_package_info")]
        internal static extern ErrorCode PackageManagerFilterForeachPackageInfo(IntPtr handle, PackageManagerPackageInfoCallback callback, IntPtr userData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_data_size")]
        internal static extern ErrorCode PackageSizeInfoGetDataSize(IntPtr handle, out long dataSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_cache_size")]
        internal static extern ErrorCode PackageSizeInfoGetCacheSize(IntPtr handle, out long cacheSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_app_size")]
        internal static extern ErrorCode PackageSizeInfoGetAppSize(IntPtr handle, out long appSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_external_data_size")]
        internal static extern ErrorCode PackageSizeInfoGetExtDataSize(IntPtr handle, out long extDataSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_external_cache_size")]
        internal static extern ErrorCode PackageSizeInfoGetExtCacheSize(IntPtr handle, out long extCacheSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_size_info_get_external_app_size")]
        internal static extern ErrorCode PackageSizeInfoGetExtAppSize(IntPtr handle, out long extAppSize);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_create")]
        internal static extern ErrorCode PackageManagerRequestCreate(out IntPtr request);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_destroy")]
        internal static extern ErrorCode PackageManagerRequestDestroy(IntPtr request);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_set_type")]
        internal static extern ErrorCode PackageManagerRequestSetType(IntPtr request, string type);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_set_tep")]
        internal static extern ErrorCode PackageManagerRequestSetTepPath(IntPtr request, string tepPath);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_install")]
        internal static extern ErrorCode PackageManagerRequestInstall(IntPtr request, string path, out int id);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_uninstall")]
        internal static extern ErrorCode PackageManagerRequestUninstall(IntPtr request, string name, out int id);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_request_move")]
        internal static extern ErrorCode PackageManagerRequestMove(IntPtr request, string name, StorageType moveToStorageType);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_compare_package_cert_info")]
        internal static extern ErrorCode PackageManagerCompareCertInfo(string lhsPackageId, string rhsPackageId, out CertCompareResultType CompareResult);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_compare_app_cert_info")]
        internal static extern ErrorCode PackageManagerCompareCertInfoByApplicationId(string lhsPackageId, string rhsPackageId, out CertCompareResultType CompareResult);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_is_preload_package_by_app_id")]
        internal static extern ErrorCode PackageManagerIsPreloadPackageByApplicationId(string ApplicationId, out bool IsPreload);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_get_permission_type")]
        internal static extern ErrorCode PackageManagerGetPermissionType(string ApplicationId, out PackageManagerPermissionType PermissionType);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_drm_generate_license_request")]
        internal static extern ErrorCode PackageManagerDrmGenerateLicenseRequest(string responseData, out string requestData, out string licenseUrl);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_drm_register_license")]
        internal static extern ErrorCode PackageManagerDrmRegisterLicense(string responseData);

        [DllImport(Libraries.PackageManager, EntryPoint = "package_manager_drm_decrypt_package")]
        internal static extern ErrorCode PackageManagerDrmDecryptPackage(string drmFilePath, string decryptedFilePath);
    }
}