b453068dbcd91b9d2a75e5c05b8d4914a3b11f50
[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 ListenForResource2(const std::string& serviceUrl,
49                         const std::string& resourceType,
50                         OCConnectivityType connectivityType,
51                         FindResListCallback& callback,
52                         QualityOfService QoS) = 0;
53
54         virtual OCStackResult ListenErrorForResource(const std::string& serviceUrl,
55                         const std::string& resourceType,
56                         OCConnectivityType connectivityType,
57                         FindCallback& callback,
58                         FindErrorCallback& errorCallback,
59                         QualityOfService QoS) = 0;
60
61         virtual OCStackResult ListenForDevice(const std::string& serviceUrl,
62                         const std::string& deviceURI,
63                         OCConnectivityType connectivityType,
64                         FindDeviceCallback& callback,
65                         QualityOfService QoS) = 0;
66
67         virtual OCStackResult GetResourceRepresentation(
68                         const OCDevAddr& devAddr,
69                         const std::string& uri,
70                         const QueryParamsMap& queryParams,
71                         const HeaderOptions& headerOptions,
72                         OCConnectivityType connectivityType,
73                         GetCallback& callback, QualityOfService QoS)=0;
74
75         virtual OCStackResult PutResourceRepresentation(
76                         const OCDevAddr& devAddr,
77                         const std::string& uri,
78                         const OCRepresentation& rep, const QueryParamsMap& queryParams,
79                         const HeaderOptions& headerOptions,
80                         PutCallback& callback, QualityOfService QoS) = 0;
81
82         virtual OCStackResult PostResourceRepresentation(
83                         const OCDevAddr& devAddr,
84                         const std::string& uri,
85                         const OCRepresentation& rep, const QueryParamsMap& queryParams,
86                         const HeaderOptions& headerOptions,
87                         OCConnectivityType connectivityType,
88                         PostCallback& callback, QualityOfService QoS) = 0;
89
90         virtual OCStackResult DeleteResource(
91                         const OCDevAddr& devAddr,
92                         const std::string& uri,
93                         const HeaderOptions& headerOptions,
94                         OCConnectivityType connectivityType,
95                         DeleteCallback& callback, QualityOfService QoS) = 0;
96
97         virtual OCStackResult ObserveResource(
98                         ObserveType observeType, OCDoHandle* handle,
99                         const OCDevAddr& devAddr,
100                         const std::string& uri,
101                         const QueryParamsMap& queryParams,
102                         const HeaderOptions& headerOptions, ObserveCallback& callback,
103                         QualityOfService QoS)=0;
104
105         virtual OCStackResult CancelObserveResource(
106                         OCDoHandle handle,
107                         const std::string& host,
108                         const std::string& uri,
109                         const HeaderOptions& headerOptions,
110                         QualityOfService QoS)=0;
111
112         virtual OCStackResult SubscribePresence(OCDoHandle* handle,
113                         const std::string& host,
114                         const std::string& resourceType,
115                         OCConnectivityType connectivityType,
116                         SubscribeCallback& presenceHandler)=0;
117
118         virtual OCStackResult UnsubscribePresence(OCDoHandle handle) =0;
119
120 #ifdef WITH_CLOUD
121         virtual OCStackResult SubscribeDevicePresence(OCDoHandle* handle,
122                                                       const std::string& host,
123                                                       const std::vector<std::string>& di,
124                                                       OCConnectivityType connectivityType,
125                                                       ObserveCallback& callback) = 0;
126 #endif
127
128         virtual OCStackResult GetDefaultQos(QualityOfService& qos) = 0;
129
130         virtual OCStackResult FindDirectPairingDevices(unsigned short waittime,
131                         GetDirectPairedCallback& callback) = 0;
132
133         virtual OCStackResult GetDirectPairedDevices(GetDirectPairedCallback& callback) = 0;
134
135         virtual OCStackResult DoDirectPairing(std::shared_ptr< OCDirectPairing > peer,
136                                               const OCPrm_t& pmSel, const std::string& pinNumber,
137                                               DirectPairingCallback& resultCallback) = 0;
138
139 #ifdef WITH_MQ
140         virtual OCStackResult ListenForMQTopic(
141             const OCDevAddr& devAddr,
142             const std::string& resourceUri,
143             const QueryParamsMap& queryParams, const HeaderOptions& headerOptions,
144             MQTopicCallback& callback, QualityOfService QoS) = 0;
145
146         virtual OCStackResult PutMQTopicRepresentation(
147             const OCDevAddr& devAddr,
148             const std::string& uri,
149             const OCRepresentation& rep,
150             const QueryParamsMap& queryParams, const HeaderOptions& headerOptions,
151             MQTopicCallback& callback, QualityOfService QoS) = 0;
152 #endif
153         virtual ~IClientWrapper(){}
154     };
155 }
156
157 #endif
158