Support 64-bit architectures
[platform/core/iot/iotcon.git] / daemon / icd-ioty.h
1 /*
2  * Copyright (c) 2015 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 #ifndef __IOT_CONNECTIVITY_MANAGER_DAEMON_IOTIVITY_H__
17 #define __IOT_CONNECTIVITY_MANAGER_DAEMON_IOTIVITY_H__
18
19 #include <stdio.h>
20 #include <stdint.h>
21 #include <glib.h>
22
23 #include <octypes.h>
24
25 #include "iotcon.h"
26
27 #define ICD_IOTY_COAP "coap://"
28 #define ICD_IOTY_COAPS "coaps://"
29
30 typedef struct {
31         unsigned int signum;
32         char *bus_name;
33 } icd_sig_ctx_s;
34
35 enum {
36         ICD_CRUD_GET,
37         ICD_CRUD_PUT,
38         ICD_CRUD_POST,
39         ICD_CRUD_DELETE,
40         ICD_DEVICE_INFO,
41         ICD_PLATFORM_INFO,
42 };
43
44 void icd_ioty_csdk_lock();
45
46 void icd_ioty_csdk_unlock();
47
48 GThread* icd_ioty_init(const char *addr, unsigned short port);
49
50 void icd_ioty_deinit(GThread *thread);
51
52 OCResourceHandle icd_ioty_register_resource(const char *uri_path,
53                 const char* const* res_types, int ifaces, uint8_t properties);
54
55 int icd_ioty_unregister_resource(OCResourceHandle handle);
56
57 int icd_ioty_bind_interface(OCResourceHandle handle, iotcon_interface_e iface);
58
59 int icd_ioty_bind_type(OCResourceHandle handle, const char *resource_type);
60
61 int icd_ioty_bind_resource(OCResourceHandle parent, OCResourceHandle child);
62
63 int icd_ioty_unbind_resource(OCResourceHandle parent, OCResourceHandle child);
64
65 int icd_ioty_notify_list_of_observers(OCResourceHandle handle, GVariant *msg,
66                 GVariant *observers);
67
68 int icd_ioty_notify_all(OCResourceHandle handle);
69
70 int icd_ioty_send_response(GVariant *resp);
71
72 int icd_ioty_find_resource(const char *host_address, const char *resource_type,
73                 unsigned int signal_number, const char *bus_name);
74
75 void icd_ioty_complete(int type, GDBusMethodInvocation *invocation, GVariant *value);
76 void icd_ioty_complete_error(int type, GDBusMethodInvocation *invocation, int ret_val);
77
78 gboolean icd_ioty_get(icDbus *object, GDBusMethodInvocation *invocation,
79                 GVariant *resource, GVariant *query);
80
81 gboolean icd_ioty_put(icDbus *object, GDBusMethodInvocation *invocation,
82                 GVariant *resource, GVariant *repr, GVariant *query);
83
84 gboolean icd_ioty_post(icDbus *object, GDBusMethodInvocation *invocation,
85                 GVariant *resource, GVariant *repr, GVariant *query);
86
87 gboolean icd_ioty_delete(icDbus *object, GDBusMethodInvocation *invocation,
88                 GVariant *resource);
89
90 OCDoHandle icd_ioty_observer_start(GVariant *resource, int observe_type, GVariant *query,
91                 unsigned int signal_number, const char *bus_name);
92
93 int icd_ioty_observer_stop(OCDoHandle handle, GVariant *options);
94
95 int icd_ioty_register_device_info(GVariant *value);
96
97 int icd_ioty_register_platform_info(GVariant *value);
98
99 int icd_ioty_get_info(int type, const char *host_address, unsigned int signal_number,
100                 const char *bus_name);
101
102 OCDoHandle icd_ioty_subscribe_presence(const char *host_address,
103                 const char *resource_type, unsigned int signal_number, const char *bus_name);
104
105 int icd_ioty_unsubscribe_presence(OCDoHandle handle);
106
107 int icd_ioty_start_presence(unsigned int time_to_live);
108
109 int icd_ioty_stop_presence();
110
111 #endif /*__IOT_CONNECTIVITY_MANAGER_DAEMON_IOTIVITY_H__*/