1 /* *****************************************************************
3 * Copyright 2016 Samsung Electronics All Rights Reserved.
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 * *****************************************************************/
20 #ifndef OC_CLOUD_WRAPPER_H
21 #define OC_CLOUD_WRAPPER_H
23 #include "occloudprovisioning.h"
24 #include "OCCloudProvisioning.hpp"
28 * Certificate-Issue request function
30 * @param[in] endPoint cloud host and port
31 * @param[in] callback result callback
32 * @return OCStackResult application result
34 OCStackResult OCWrapperCertificateIssueRequest(OCCloudProvisioning& ptr, ResponseCallBack callback);
37 * CRL GET request function
39 * @param[in] endPoint cloud host and port
40 * @param[in] callback result callback
41 * @return OCStackResult application result
43 OCStackResult OCWrapperGetCRL(OCCloudProvisioning& ptr, ResponseCallBack callback);
46 * CRL POST request function (with Serial Numbers list to revoke)
48 * @param[in] endPoint cloud host and port
49 * @param[in] callback result callback
50 * @return OCStackResult application result
52 OCStackResult OCWrapperPostCRL(OCCloudProvisioning& ptr, ResponseCallBack callback);
55 * ACL id retrieve by device id
57 * @param[in] endPoint cloud host and port
58 * @param[in] callback result callback
59 * @return OCStackResult application result
61 OCStackResult OCWrapperAclIdGetByDevice(OCCloudProvisioning& ptr, AclIdResponseCallBack callback);
66 * @param[in] endPoint cloud host and port
67 * @param[in] callback result callback
68 * @return OCStackResult application result
70 OCStackResult OCWrapperAclIdCreate(const OCDevAddr *endPoint, OCCloudResponseCB callback);
75 * @param[in] endPoint cloud host and port
76 * @param[in] callback result callback
77 * @return OCStackResult application result
79 OCStackResult OCWrapperAclIdDelete(const OCDevAddr *endPoint, OCCloudResponseCB callback);
82 * ACL individual get info
84 * @param[in] endPoint cloud host and port
85 * @param[in] callback result callback
86 * @return OCStackResult application result
88 OCStackResult OCWrapperAclIndividualGetInfo(OCCloudProvisioning& ptr, ResponseCallBack callback);
91 * ACL individual update ACE
93 * @param[in] endPoint cloud host and port
94 * @param[in] callback result callback
95 * @return OCStackResult application result
97 OCStackResult OCWrapperAclIndividualUpdateAce(const OCDevAddr *endPoint, OCCloudResponseCB callback);
100 * ACL individual delete
102 * @param[in] endPoint cloud host and port
103 * @param[in] callback result callback
104 * @return OCStackResult application result
106 OCStackResult OCWrapperAclIndividualDelete(const OCDevAddr *endPoint, OCCloudResponseCB callback);
109 * ACL post group request function
111 * @param[in] endPoint cloud host and port
112 * @param[in] callback result callback
113 * @return OCStackResult application result
115 OCStackResult OCWrapperAclCreateGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
118 * ACL get group request function
120 * @param[in] endPoint cloud host and port
121 * @param[in] callback result callback
122 * @return OCStackResult application result
124 OCStackResult OCWrapperAclFindMyGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
127 * ACL delete group request function
129 * @param[in] endPoint cloud host and port
130 * @param[in] callback result callback
131 * @return OCStackResult application result
133 OCStackResult OCWrapperAclDeleteGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
136 * ACL join to invited group request function
138 * @param[in] endPoint cloud host and port
139 * @param[in] callback result callback
140 * @return OCStackResult application result
142 OCStackResult OCWrapperAclJoinToInvitedGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
145 * ACL observe group request function
147 * @param[in] endPoint cloud host and port
148 * @param[in] callback result callback
149 * @return OCStackResult application result
151 OCStackResult OCWrapperAclObserveGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
154 * ACL share device into group request function
156 * @param[in] endPoint cloud host and port
157 * @param[in] callback result callback
158 * @return OCStackResult application result
160 OCStackResult OCWrapperAclShareDeviceIntoGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
163 * ACL delete device from group request function
165 * @param[in] endPoint cloud host and port
166 * @param[in] callback result callback
167 * @return OCStackResult application result
169 OCStackResult OCWrapperAclDeleteDeviceFromGroup(const OCDevAddr *endPoint, OCCloudResponseCB callback);
172 * ACL get group info request function
174 * @param[in] endPoint cloud host and port
175 * @param[in] callback result callback
176 * @return OCStackResult application result
178 OCStackResult OCWrapperAclGroupGetInfo(const OCDevAddr *endPoint, OCCloudResponseCB callback);
181 * ACL invite user to group request function
183 * @param[in] endPoint cloud host and port
184 * @param[in] callback result callback
185 * @return OCStackResult application result
187 OCStackResult OCWrapperAclInviteUser(const OCDevAddr *endPoint, OCCloudResponseCB callback);
190 * ACL get invitation request function
192 * @param[in] endPoint cloud host and port
193 * @param[in] callback result callback
194 * @return OCStackResult application result
196 OCStackResult OCWrapperAclGetInvitation(const OCDevAddr *endPoint, OCCloudResponseCB callback);
199 * ACL delete invitation request function (by receiver)
201 * @param[in] endPoint cloud host and port
202 * @param[in] callback result callback
203 * @return OCStackResult application result
205 OCStackResult OCWrapperAclDeleteInvitation(const OCDevAddr *endPoint, OCCloudResponseCB callback);
208 * ACL cancel invitation request function (by sender)
210 * @param[in] endPoint cloud host and port
211 * @param[in] callback result callback
212 * @return OCStackResult application result
214 OCStackResult OCWrapperAclCancelInvitation(const OCDevAddr *endPoint, OCCloudResponseCB callback);
217 * ACL check that given request can be applied to resource
219 * @param[in] endPoint cloud host and port
220 * @param[in] callback result callback
221 * @return OCStackResult application result
223 OCStackResult OCWrapperAclPolicyCheck(const OCDevAddr *endPoint, OCCloudResponseCB callback);
226 * Read user input (expect string value)
228 * @param[out] item string item to fill
229 * @param[in] length max allowed string length
230 * @param[in] description item description
231 * @param[in] example item example
233 void readString(char* item, int length, const char* description, const char* example);
236 * Read user input (expect integer value)
238 * @param[out] item integer item to fill
239 * @param[in] description item description
240 * @param[in] example item example
242 void readInteger(int* item, const char* description, const char* example);
245 #endif //OC_CLOUD_WRAPPER_H