2 * Copyright (c) 2021 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;
19 using Tizen.Applications;
21 using ErrorCode = Interop.Cion.ErrorCode;
23 internal static partial class Interop
25 internal static partial class CionClient
27 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
28 internal delegate void CionClientDiscoveredCb(string serviceName, IntPtr peerInfo, IntPtr userData);
30 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
31 internal delegate void CionClientConnectionResultCb(string serviceName, IntPtr peerInfo, IntPtr result, IntPtr userData);
33 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
34 internal delegate void CionClientPayloadRecievedCb(string serviceName, IntPtr peerInfo, IntPtr payload, int status, IntPtr userData);
36 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
37 internal delegate void CionClientDisconnectedCb(string serviceName, IntPtr peerInfo, IntPtr userData);
39 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
40 internal delegate void CionClientPayloadAsyncResultCb(IntPtr result, IntPtr userData);
42 [DllImport(Libraries.Cion, EntryPoint = "cion_client_create")]
43 internal static extern ErrorCode CionClientCreate(out ClientSafeHandle client, string serviceName, IntPtr security);
45 [DllImport(Libraries.Cion, EntryPoint = "cion_client_destory")]
46 internal static extern ErrorCode CionClientDestroy(IntPtr client);
48 [DllImport(Libraries.Cion, EntryPoint = "cion_client_try_discovery")]
49 internal static extern ErrorCode CionClientTryDiscovery(ClientSafeHandle client, CionClientDiscoveredCb cb, IntPtr userData);
51 [DllImport(Libraries.Cion, EntryPoint = "cion_client_stop_discovery")]
52 internal static extern ErrorCode CionClientStopDiscovery(ClientSafeHandle client);
54 [DllImport(Libraries.Cion, EntryPoint = "cion_client_connect")]
55 internal static extern ErrorCode CionClientConnect(ClientSafeHandle client, PeerInfoSafeHandle peerInfo);
57 [DllImport(Libraries.Cion, EntryPoint = "cion_client_disconnect")]
58 internal static extern ErrorCode CionClientDisconnect(ClientSafeHandle client);
60 [DllImport(Libraries.Cion, EntryPoint = "cion_client_send_data")]
61 internal static extern ErrorCode CionClientSendData(ClientSafeHandle client, byte[] data, int dataSize, int timeout, out IntPtr returnData, out int returnDataSize);
63 [DllImport(Libraries.Cion, EntryPoint = "cion_client_send_payload_async")]
64 internal static extern ErrorCode CionClientSendPayloadAsync(ClientSafeHandle client, PayloadSafeHandle payload, CionClientPayloadAsyncResultCb cb, IntPtr userData);
66 [DllImport(Libraries.Cion, EntryPoint = "cion_client_add_connection_result_cb")]
67 internal static extern ErrorCode CionClientAddConnectionResultCb(ClientSafeHandle client, CionClientConnectionResultCb cb, IntPtr userData);
69 [DllImport(Libraries.Cion, EntryPoint = "cion_client_add_payload_recieved_cb")]
70 internal static extern ErrorCode CionClientAddPayloadReceivedCb(ClientSafeHandle client, CionClientPayloadRecievedCb cb, IntPtr userData);
72 [DllImport(Libraries.Cion, EntryPoint = "cion_client_add_disconnected_cb")]
73 internal static extern ErrorCode CionClientAddDisconnectedCb(ClientSafeHandle client, CionClientDisconnectedCb cb, IntPtr userData);