[NUI] TCSACR-226 code change (#1032)
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.Common / Interop / Interop.RPCPort.cs
1 /*
2  * Copyright (c) 2018 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 Tizen.Internals.Errors;
21 using Tizen.Applications;
22
23 internal static partial class Interop
24 {
25     internal static partial class LibRPCPort
26     {
27         internal enum ErrorCode
28         {
29             None = Tizen.Internals.Errors.ErrorCode.None,
30             InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
31             OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
32             PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied,
33             IoError = Tizen.Internals.Errors.ErrorCode.IoError,
34         }
35
36         internal enum PortType
37         {
38             Main,
39             Callback
40         }
41
42         internal static partial class Parcel
43         {
44             //int rpc_port_parcel_create(rpc_port_parcel_h *h);
45             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_create")]
46             internal static extern ErrorCode Create(out IntPtr handle);
47
48             //int rpc_port_parcel_create_from_port(rpc_port_parcel_h *h, rpc_port_h port);
49             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_create_from_port")]
50             internal static extern ErrorCode CreateFromPort(out IntPtr parcelHandle, IntPtr portHandle);
51
52             //int rpc_port_parcel_send(rpc_port_parcel_h h, rpc_port_h port);
53             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_send")]
54             internal static extern ErrorCode Send(IntPtr parcelHandle, IntPtr portHandle);
55
56             //int rpc_port_parcel_destroy(rpc_port_parcel_h h);
57             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_destroy")]
58             internal static extern ErrorCode Destroy(IntPtr handle);
59
60             //int rpc_port_parcel_write_byte(rpc_port_parcel_h h, char b);
61             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_byte")]
62             internal static extern ErrorCode WriteByte(IntPtr parcelHandle, byte b);
63
64             //int rpc_port_parcel_write_int16(rpc_port_parcel_h h, short i);
65             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_int16")]
66             internal static extern ErrorCode WriteInt16(IntPtr parcelHandle, short i);
67
68             //int rpc_port_parcel_write_int32(rpc_port_parcel_h h, int i);
69             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_int32")]
70             internal static extern ErrorCode WriteInt32(IntPtr parcelHandle, int i);
71
72             //int rpc_port_parcel_write_int64(rpc_port_parcel_h h, int i);
73             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_int64")]
74             internal static extern ErrorCode WriteInt64(IntPtr parcelHandle, long i);
75
76             //int rpc_port_parcel_write_float(rpc_port_parcel_h h, float f);
77             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_float")]
78             internal static extern ErrorCode WriteFloat(IntPtr parcelHandle, float f);
79
80             //int rpc_port_parcel_write_double(rpc_port_parcel_h h, double d);
81             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_double")]
82             internal static extern ErrorCode WriteDouble(IntPtr parcelHandle, double d);
83
84             //int rpc_port_parcel_write_string(rpc_port_parcel_h h, const char* str);
85             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_string")]
86             internal static extern ErrorCode WriteString(IntPtr parcelHandle, string str);
87
88             //int rpc_port_parcel_write_bool(rpc_port_parcel_h h, bool b);
89             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_bool")]
90             internal static extern ErrorCode WriteBool(IntPtr parcelHandle, bool b);
91
92             //int rpc_port_parcel_write_bundle(rpc_port_parcel_h h, bundle* b);
93             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_bundle")]
94             internal static extern ErrorCode WriteBundle(IntPtr parcelHandle, IntPtr b);
95
96             //int rpc_port_parcel_write_array_count(rpc_port_parcel_h h, int count);
97             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_write_array_count")]
98             internal static extern ErrorCode WriteArrayCount(IntPtr parcelHandle, int count);
99
100             //int rpc_port_parcel_read_byte(rpc_port_parcel_h h, char* b);
101             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_byte")]
102             internal static extern ErrorCode ReadByte(IntPtr parcelHandle, out byte b);
103
104             //int rpc_port_parcel_read_int16(rpc_port_parcel_h h, short *i);
105             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_int16")]
106             internal static extern ErrorCode ReadInt16(IntPtr parcelHandle, out short i);
107
108             //int rpc_port_parcel_read_int32(rpc_port_parcel_h h, int* i);
109             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_int32")]
110             internal static extern ErrorCode ReadInt32(IntPtr parcelHandle, out int i);
111
112             //int rpc_port_parcel_read_int64(rpc_port_parcel_h h, long long* i);
113             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_int64")]
114             internal static extern ErrorCode ReadInt64(IntPtr parcelHandle, out long i);
115
116             //int rpc_port_parcel_read_float(rpc_port_parcel_h h, float *f);
117             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_float")]
118             internal static extern ErrorCode ReadFloat(IntPtr parcelHandle, out float f);
119
120             //int rpc_port_parcel_read_double(rpc_port_parcel_h h, double *d);
121             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_double")]
122             internal static extern ErrorCode ReadDouble(IntPtr parcelHandle, out double f);
123
124             //int rpc_port_parcel_read_string(rpc_port_parcel_h h, char** str);
125             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_string")]
126             internal static extern ErrorCode ReadString(IntPtr parcelHandle, out string str);
127
128             //int rpc_port_parcel_read_bool(rpc_port_parcel_h h, bool *b);
129             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_bool")]
130             internal static extern ErrorCode ReadBool(IntPtr parcelHandle, out bool b);
131
132             //int rpc_port_parcel_read_bundle(rpc_port_parcel_h h, bundle** b);
133             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_bundle")]
134             internal static extern ErrorCode ReadBundle(IntPtr parcelHandle, out IntPtr b);
135
136             //int rpc_port_parcel_read_array_count(rpc_port_parcel_h h, int *count);
137             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_read_array_count")]
138             internal static extern ErrorCode ReadArrayCount(IntPtr parcelHandle, out int count);
139
140             //int rpc_port_parcel_burst_read(rpc_port_parcel_h h, unsigned char *buf, unsigned int size);
141             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_burst_read")]
142             internal static extern ErrorCode Read(IntPtr parcelHandle, [In, Out] byte[] buf, int size);
143
144             //int rpc_port_parcel_burst_write(rpc_port_parcel_h h, const unsigned char *buf, unsigned int size);
145             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_parcel_burst_write")]
146             internal static extern ErrorCode Write(IntPtr parcelHandle, byte[] buf, int size);
147         }
148
149         internal static partial class Proxy
150         {
151             //typedef void (*rpc_port_proxy_connected_event_cb)(const char *ep, const char* port_name, rpc_port_h port, void* data);
152             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
153             internal delegate void ConnectedEventCallback(string endPoint, string port_name, IntPtr port, IntPtr data);
154
155             //typedef void (*rpc_port_proxy_disconnected_event_cb)(const char *ep, const char* port_name, void* data);
156             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
157             internal delegate void DisconnectedEventCallback(string endPoint, string port_name, IntPtr data);
158
159             //typedef void (*rpc_port_proxy_rejected_event_cb) (const char* ep, const char* port_name, void* data);
160             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
161             internal delegate void RejectedEventCallback(string endPoint, string port_name, IntPtr data);
162
163             //typedef void (*rpc_port_proxy_received_event_cb) (const char* ep, const char* port_name, void* data);
164             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
165             internal delegate void ReceivedEventCallback(string endPoint, string port_name, IntPtr data);
166
167             //int rpc_port_proxy_create(rpc_port_proxy_h *h);
168             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_create")]
169             internal static extern ErrorCode Create(out IntPtr handle);
170
171             //int rpc_port_proxy_destroy(rpc_port_proxy_h h);
172             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_destroy")]
173             internal static extern ErrorCode Destroy(IntPtr handle);
174
175             //int rpc_port_proxy_connect(rpc_port_proxy_h h, const char *appid, const char* port);
176             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_connect")]
177             internal static extern ErrorCode Connect(IntPtr handle, string appId, string port);
178
179             //int rpc_port_proxy_add_connected_event_cb(rpc_port_proxy_h h, rpc_port_proxy_connected_event_cb cb, void* data);
180             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_add_connected_event_cb")]
181             internal static extern ErrorCode AddConnectedEventCb(IntPtr handle, ConnectedEventCallback cb, IntPtr data);
182
183             //int rpc_port_proxy_add_disconnected_event_cb(rpc_port_proxy_h h, rpc_port_proxy_disconnected_event_cb cb, void* data);
184             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_add_disconnected_event_cb")]
185             internal static extern ErrorCode AddDisconnectedEventCb(IntPtr handle, DisconnectedEventCallback cb, IntPtr data);
186
187             //int rpc_port_proxy_add_rejected_event_cb(rpc_port_proxy_h h, rpc_port_proxy_rejected_event_cb cb, void* data);
188             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_add_rejected_event_cb")]
189             internal static extern ErrorCode AddRejectedEventCb(IntPtr handle, RejectedEventCallback cb, IntPtr data);
190
191             //int rpc_port_proxy_add_received_event_cb(rpc_port_proxy_h h, rpc_port_proxy_received_event_cb cb, void* data);
192             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_add_received_event_cb")]
193             internal static extern ErrorCode AddReceivedEventCb(IntPtr handle, ReceivedEventCallback cb, IntPtr data);
194
195             //int rpc_port_proxy_get_port(rpc_port_proxy_h h, rpc_port_port_type_e type, rpc_port_h* port);
196             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_proxy_get_port")]
197             internal static extern ErrorCode GetPort(IntPtr handle, PortType t, out IntPtr port);
198         }
199
200         internal static partial class Stub
201         {
202             //typedef void (*rpc_port_stub_connected_event_cb)(const char *sender, const char *instance, void* data);
203             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
204             internal delegate void ConnectedEventCallback(string sender, string instance, IntPtr data);
205
206             //typedef void (* rpc_port_stub_disconnected_event_cb) (const char* sender, const char *instance, void* data);
207             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
208             internal delegate void DisconnectedEventCallback(string sender, string instance, IntPtr data);
209
210             //typedef void (* rpc_port_stub_received_event_cb) (const char* sender, const char *instance, rpc_port_h port, void* data);
211             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
212             internal delegate int ReceivedEventCallback(string sender, string instance, IntPtr port, IntPtr data);
213
214             //int rpc_port_stub_create(rpc_port_stub_h* h, const char* port_name);
215             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_create")]
216             internal static extern ErrorCode Create(out IntPtr handle, string portName);
217
218             //int rpc_port_stub_destroy(rpc_port_stub_h h);
219             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_destroy")]
220             internal static extern ErrorCode Destroy(IntPtr handle);
221
222             //int rpc_port_stub_listen(rpc_port_stub_h h);
223             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_listen")]
224             internal static extern ErrorCode Listen(IntPtr handle);
225
226             //int rpc_port_stub_add_connected_event_cb(rpc_port_stub_h h, rpc_port_stub_connected_event_cb cb, void* data);
227             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_add_connected_event_cb")]
228             internal static extern ErrorCode AddConnectedEventCb(IntPtr handle, ConnectedEventCallback cb, IntPtr data);
229
230             //int rpc_port_stub_add_disconnected_event_cb(rpc_port_stub_h h, rpc_port_stub_disconnected_event_cb cb, void* data);
231             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_add_disconnected_event_cb")]
232             internal static extern ErrorCode AddDisconnectedEventCb(IntPtr handle, DisconnectedEventCallback cb, IntPtr data);
233
234             //int rpc_port_stub_add_received_event_cb(rpc_port_stub_h h, rpc_port_stub_received_event_cb cb, void* data);
235             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_add_received_event_cb")]
236             internal static extern ErrorCode AddReceivedEventCb(IntPtr handle, ReceivedEventCallback cb, IntPtr data);
237
238             //int rpc_port_stub_add_privilege(rpc_port_stub_h h, const char *privilege);
239             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_add_privilege")]
240             internal static extern ErrorCode AddPrivilege(IntPtr handle, string privilege);
241
242             //int rpc_port_stub_set_trusted(rpc_port_stub_h h, const bool trusted);
243             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_set_trusted")]
244             internal static extern ErrorCode SetTrusted(IntPtr handle, bool trusted);
245
246             //int rpc_port_stub_get_port(rpc_port_stub_h h, rpc_port_port_type_e type, const char* instance, rpc_port_h *port);
247             [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_get_port")]
248             internal static extern ErrorCode GetPort(IntPtr handle, PortType t, string instance, out IntPtr port);
249         }
250     }
251 }