Imported Upstream version 1.0.1
[platform/upstream/iotivity.git] / service / easy-setup / sdk / enrollee / api / easysetup.h
1 //******************************************************************
2 //
3 // Copyright 2015 Samsung Electronics 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 /**
22  * @file
23  *
24  * This file contains SDK APIs for device operating in Enrollee Mode of EasySetup
25  */
26
27 #ifndef EASYSETUP_ENROLLEE_H__
28 #define EASYSETUP_ENROLLEE_H__
29
30 #include "Arduino.h"
31 #include "escommon.h"
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif // __cplusplus
36
37 /*
38  * Callback function for updating the Enrollee OnBoarding and Provisioning status result to the application
39  *
40  * @param esResult ESResult provides the current state of the Enrollee Device
41  */
42 typedef void (*EventCallback)(ESResult esResult, EnrolleeState enrolleeState);
43
44 /**
45  * This function Initializes the EasySetup. This API must be called prior to invoking any other API
46  *
47  * @param networkType       NetworkType on which OnBoarding has to be performed.
48  * @param ssid                   SSID of the target SoftAP network to which the Enrollee is connecting.
49  * @param passwd              Password of the target SoftAP network to which the Enrollee is connecting
50  * @param eventCallback     EventCallback for for updating the Enrollee OnBoarding and Provisioning status
51  *                                    result to the application
52  * @return ::ES_OK on success, some other value upon failure.
53  */
54 ESResult InitEasySetup(OCConnectivityType networkType, const char *ssid,
55                           const char *passwd,
56                           EventCallback eventCallback);
57
58 /**
59  * This function performs initialization of Provisioning and Network resources needed for EasySetup process.
60  *
61  * @return ::ES_OK on success, some other value upon failure.
62  */
63 ESResult InitProvisioning();
64
65 /**
66  * This function performs termination of Provisioning and Network resources.
67  * Also terminates the IoTivity core stack.
68  *
69  * @return ::ES_OK on success, some other value upon failure.
70  */
71 ESResult TerminateEasySetup();
72
73 #ifdef __cplusplus
74 }
75 #endif // __cplusplus
76
77
78 #endif /* EASYSETUP_ENROLLEE_H__ */
79