replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / include / IClientWrapper.h
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #ifndef OC_I_CLIENT_WRAPPER_H_
22 #define OC_I_CLIENT_WRAPPER_H_
23
24 #include <memory>
25 #include <string>
26 #include <OCApi.h>
27
28 namespace OC
29 {
30     class OCPlatform_impl;
31
32     class IClientWrapper : public std::enable_shared_from_this<IClientWrapper>
33     {
34     protected:
35
36     public:
37         typedef std::shared_ptr<IClientWrapper> Ptr;
38
39         IClientWrapper()
40         {}
41
42         virtual OCStackResult ListenForResource(const std::string& serviceUrl,
43                         const std::string& resourceType,
44                         OCConnectivityType connectivityType,
45                         FindCallback& callback,
46                         QualityOfService QoS) = 0;
47
48         virtual OCStackResult ListenForResourceList(const std::string& serviceUrl,
49                         const std::string& resourceType,
50                         OCConnectivityType connectivityType,
51                         FindResListCallback& callback,
52                         QualityOfService QoS) = 0;
53
54         virtual OCStackResult ListenForResourceListWithError(const std::string& serviceUrl,
55                         const std::string& resourceType,
56                         OCConnectivityType connectivityType,
57                         FindResListCallback& callback,
58                         FindErrorCallback& errorCallback,
59                         QualityOfService QoS) = 0;
60
61         virtual OCStackResult ListenErrorForResource(const std::string& serviceUrl,
62                         const std::string& resourceType,
63                         OCConnectivityType connectivityType,
64                         FindCallback& callback,
65                         FindErrorCallback& errorCallback,
66                         QualityOfService QoS) = 0;
67
68         virtual OCStackResult ListenForDevice(const std::string& serviceUrl,
69                         const std::string& deviceURI,
70                         OCConnectivityType connectivityType,
71                         FindDeviceCallback& callback,
72                         QualityOfService QoS) = 0;
73
74         virtual OCStackResult GetResourceRepresentation(
75                         const OCDevAddr& devAddr,
76                         const std::string& uri,
77                         const QueryParamsMap& queryParams,
78                         const HeaderOptions& headerOptions,
79                         OCConnectivityType connectivityType,
80                         GetCallback& callback, QualityOfService QoS)=0;
81
82         virtual OCStackResult PutResourceRepresentation(
83                         const OCDevAddr& devAddr,
84                         const std::string& uri,
85                         const OCRepresentation& rep, const QueryParamsMap& queryParams,
86                         const HeaderOptions& headerOptions,
87                         PutCallback& callback, QualityOfService QoS) = 0;
88
89         virtual OCStackResult PostResourceRepresentation(
90                         const OCDevAddr& devAddr,
91                         const std::string& uri,
92                         const OCRepresentation& rep, const QueryParamsMap& queryParams,
93                         const HeaderOptions& headerOptions,
94                         OCConnectivityType connectivityType,
95                         PostCallback& callback, QualityOfService QoS) = 0;
96
97         virtual OCStackResult DeleteResource(
98                         const OCDevAddr& devAddr,
99                         const std::string& uri,
100                         const HeaderOptions& headerOptions,
101                         OCConnectivityType connectivityType,
102                         DeleteCallback& callback, QualityOfService QoS) = 0;
103
104         virtual OCStackResult ObserveResource(
105                         ObserveType observeType, OCDoHandle* handle,
106                         const OCDevAddr& devAddr,
107                         const std::string& uri,
108                         const QueryParamsMap& queryParams,
109                         const HeaderOptions& headerOptions, ObserveCallback& callback,
110                         QualityOfService QoS)=0;
111
112         virtual OCStackResult CancelObserveResource(
113                         OCDoHandle handle,
114                         const std::string& host,
115                         const std::string& uri,
116                         const HeaderOptions& headerOptions,
117                         QualityOfService QoS)=0;
118
119         virtual OCStackResult SubscribePresence(OCDoHandle* handle,
120                         const std::string& host,
121                         const std::string& resourceType,
122                         OCConnectivityType connectivityType,
123                         SubscribeCallback& presenceHandler)=0;
124
125         virtual OCStackResult UnsubscribePresence(OCDoHandle handle) =0;
126
127 #ifdef WITH_CLOUD
128         virtual OCStackResult SubscribeDevicePresence(OCDoHandle* handle,
129                                                       const std::string& host,
130                                                       const std::vector<std::string>& di,
131                                                       OCConnectivityType connectivityType,
132                                                       ObserveCallback& callback) = 0;
133 #endif
134
135         virtual OCStackResult GetDefaultQos(QualityOfService& qos) = 0;
136
137         virtual OCStackResult FindDirectPairingDevices(unsigned short waittime,
138                         GetDirectPairedCallback& callback) = 0;
139
140         virtual OCStackResult GetDirectPairedDevices(GetDirectPairedCallback& callback) = 0;
141
142         virtual OCStackResult DoDirectPairing(std::shared_ptr< OCDirectPairing > peer,
143                                               const OCPrm_t& pmSel, const std::string& pinNumber,
144                                               DirectPairingCallback& resultCallback) = 0;
145
146 #ifdef WITH_MQ
147         virtual OCStackResult ListenForMQTopic(
148             const OCDevAddr& devAddr,
149             const std::string& resourceUri,
150             const QueryParamsMap& queryParams, const HeaderOptions& headerOptions,
151             MQTopicCallback& callback, QualityOfService QoS) = 0;
152
153         virtual OCStackResult PutMQTopicRepresentation(
154             const OCDevAddr& devAddr,
155             const std::string& uri,
156             const OCRepresentation& rep,
157             const QueryParamsMap& queryParams, const HeaderOptions& headerOptions,
158             MQTopicCallback& callback, QualityOfService QoS) = 0;
159 #endif
160 #ifdef TCP_ADAPTER
161         virtual OCStackResult findKeepAliveResource(std::string host,
162                                                     KeepAliveCallback resultCallback) = 0;
163         virtual OCStackResult sendKeepAliveRequest(std::string host, const OCRepresentation& rep,
164                                                    KeepAliveCallback resultCallback) = 0;
165 #endif
166         virtual OCStackResult stop() = 0;
167
168         virtual OCStackResult start() = 0;
169
170         virtual ~IClientWrapper(){}
171     };
172 }
173
174 #endif
175