1 /// Copyright 2016 by Samsung Electronics, Inc.,
3 /// This software is the confidential and proprietary information
4 /// of Samsung Electronics, Inc. ("Confidential Information"). You
5 /// shall not disclose such Confidential Information and shall use
6 /// it only in accordance with the terms of the license agreement
7 /// you entered into with Samsung.
10 using System.Runtime.InteropServices;
12 internal static partial class Interop
14 internal static partial class IoTConnectivity
16 internal static partial class Client
18 internal static partial class DeviceInformation
20 internal delegate bool DeviceInformationCallback(IntPtr deviceInfoHandle, int result, IntPtr userData);
22 internal enum Property
30 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_find_device_info")]
31 internal static extern int Find(string hostAddress, int connectivityType, IntPtr query, DeviceInformationCallback cb, IntPtr userData);
33 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_device_info_get_property")]
34 internal static extern int GetProperty(IntPtr deviceInfoHandle, int property, out IntPtr value);
37 internal static partial class PlatformInformation
39 internal delegate bool PlatformInformationCallback(IntPtr platformInfoHandle, int result, IntPtr userData);
56 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_find_platform_info")]
57 internal static extern int Find(string hostAddress, int connectivityType, IntPtr query, PlatformInformationCallback cb, IntPtr userData);
59 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_platform_info_get_property")]
60 internal static extern int GetProperty(IntPtr platformInfoHandle, int property, out IntPtr value);
63 internal static partial class RemoteResource
65 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
66 internal delegate void ResponseCallback(IntPtr resource, int err, int requestType, IntPtr response, IntPtr userData);
68 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
69 internal delegate void ObserveCallback(IntPtr resource, int err, int sequenceNumber, IntPtr response, IntPtr userData);
71 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
72 internal delegate void CachedRepresentationChangedCallback(IntPtr resource, IntPtr representation, IntPtr userData);
74 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
75 internal delegate void StateChangedCallback(IntPtr resource, int state, IntPtr userData);
77 internal enum ConnectivityType
84 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_create")]
85 internal static extern int Create(string hostAddress, int connectivityType, string uriPath, int properties, IntPtr resourceTypes, IntPtr resourceInterfaces, out IntPtr remoteResource);
87 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_destroy")]
88 internal static extern void Destroy(IntPtr resource);
90 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_clone")]
91 internal static extern int Clone(IntPtr src, out IntPtr dest);
93 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_observe_register")]
94 internal static extern int RegisterObserve(IntPtr resource, int observePolicy, IntPtr query, ObserveCallback cb, IntPtr userData);
96 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_observe_deregister")]
97 internal static extern int DeregisterObserve(IntPtr resource);
99 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get")]
100 internal static extern int Get(IntPtr resource, IntPtr query, ResponseCallback cb, IntPtr userData);
102 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_put")]
103 internal static extern int Put(IntPtr resource, IntPtr repr, IntPtr query, ResponseCallback cb, IntPtr userData);
105 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_post")]
106 internal static extern int Post(IntPtr resource, IntPtr repr, IntPtr query, ResponseCallback cb, IntPtr userData);
108 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_delete")]
109 internal static extern int Delete(IntPtr resource, ResponseCallback cb, IntPtr userData);
111 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_start_caching")]
112 internal static extern int StartCaching(IntPtr resource, CachedRepresentationChangedCallback cb, IntPtr userData);
114 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_stop_caching")]
115 internal static extern int StopCaching(IntPtr resource);
117 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_start_monitoring")]
118 internal static extern int StartMonitoring(IntPtr resource, StateChangedCallback cb, IntPtr userData);
120 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_stop_monitoring")]
121 internal static extern int StopMonitoring(IntPtr resource);
123 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_uri_path")]
124 internal static extern int GetUriPath(IntPtr resource, out IntPtr uriPath);
126 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_connectivity_type")]
127 internal static extern int GetConnectivityType(IntPtr resource, out int connectivityType);
129 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_host_address")]
130 internal static extern int GetHostAddress(IntPtr resource, out IntPtr hostAddress);
132 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_device_id")]
133 internal static extern int GetDeviceId(IntPtr resource, out IntPtr deviceId);
135 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_types")]
136 internal static extern int GetTypes(IntPtr resource, out IntPtr types);
138 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_interfaces")]
139 internal static extern int GetInterfaces(IntPtr resource, out IntPtr ifaces);
141 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_policies")]
142 internal static extern int GetPolicies(IntPtr resource, out int properties);
144 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_options")]
145 internal static extern int GetOptions(IntPtr resource, out IntPtr options);
147 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_set_options")]
148 internal static extern int SetOptions(IntPtr resource, IntPtr options);
150 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_cached_representation")]
151 internal static extern int GetCachedRepresentation(IntPtr resource, out IntPtr representation);
153 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_checking_interval")]
154 internal static extern int GetTimeInterval(IntPtr resource, out int timeInterval);
156 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_set_checking_interval")]
157 internal static extern int SetTimeInterval(IntPtr resource, int timeInterval);
159 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remote_resource_get_device_name")]
160 internal static extern int GetDeviceName(IntPtr resource, out IntPtr deviceName);
163 internal static partial class IoTCon
165 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_initialize")]
166 internal static extern int Initialize(string filePath);
168 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_deinitialize")]
169 internal static extern void Deinitialize();
171 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_get_timeout")]
172 internal static extern int GetTimeout(out int timeoutSeconds);
174 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_set_timeout")]
175 internal static extern int SetTimeout(int timeoutSeconds);
177 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_polling_get_interval")]
178 internal static extern int GetPollingInterval(out int interval);
180 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_polling_set_interval")]
181 internal static extern int SetPollingInterval(int interval);
183 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_polling_invoke")]
184 internal static extern int InvokePolling();
187 internal static partial class ResourceFinder
189 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
190 internal delegate bool FoundResourceCallback(IntPtr remoteResourceHandle, int result, IntPtr userData);
192 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_find_resource")]
193 internal static extern int AddResourceFoundCb(string hostAddress, int connectivityType, IntPtr query, FoundResourceCallback cb, IntPtr userData);
196 internal static partial class Presence
198 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
199 internal delegate void PresenceCallback(IntPtr presenceResponseHandle, int err, IntPtr response, IntPtr userData);
201 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_add_presence_cb")]
202 internal static extern int AddPresenceCb(string hostAddress, int connectivityType, string resourceType, PresenceCallback cb, IntPtr userData, out IntPtr presenceHandle);
204 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_remove_presence_cb")]
205 internal static extern int RemovePresenceCb(IntPtr presenceHandle);
207 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_get_host_address")]
208 internal static extern int GetHostAddress(IntPtr presence, out IntPtr hostAddress);
210 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_get_connectivity_type")]
211 internal static extern int GetConnectivityType(IntPtr presence, out int connectivityType);
213 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_get_resource_type")]
214 internal static extern int GetResourceType(IntPtr presence, out IntPtr resourceType);
217 internal static partial class PresenceResponse
219 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_response_get_result")]
220 internal static extern int GetResult(IntPtr response, out int result);
222 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_response_get_trigger")]
223 internal static extern int GetTrigger(IntPtr response, out int trigger);
225 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_response_get_host_address")]
226 internal static extern int GetHostAddress(IntPtr response, out IntPtr hostAddress);
228 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_response_get_connectivity_type")]
229 internal static extern int GetConnectivityType(IntPtr response, out int connectivityType);
231 [DllImport(Libraries.IoTCon, EntryPoint = "iotcon_presence_response_get_resource_type")]
232 internal static extern int GetResourceType(IntPtr response, out IntPtr resourceType);