replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / easy-setup / enrollee / src / resourcehandler.h
index 14446ff..851f047 100755 (executable)
@@ -24,7 +24,7 @@
 #include "logger.h"
 #include "ocstack.h"
 #include "escommon.h"
-#include "networkhandler.h"
+#include "ESEnrolleeCommon.h"
 #include "octypes.h"
 
 #ifndef ES_RESOURCE_HANDLER_H_
 extern "C" {
 #endif
 
-typedef void (*ESEnrolleeResourceEventCallback)(ESResult);
+typedef void (*ESConnectRequestCB) (ESResult, ESConnectRequest *);
+typedef void (*ESWiFiConfCB) (ESResult, ESWiFiConfData *);
+typedef void (*ESCoapCloudConfCB) (ESResult, ESCoapCloudConfData *);
+typedef void (*ESDevConfCB) (ESResult, ESDevConfData *);
+
+typedef void (*ESWriteUserdataCb)(OCRepPayload* payload, char* resourceType);
+typedef void (*ESReadUserdataCb)(OCRepPayload* payload, char* resourceType, void** userdata);
 
 /* Structure to represent a Light resource */
-typedef struct PROVRESOURCE
+typedef struct
 {
     OCResourceHandle handle;
-    int64_t status; // provisiong status, 1 : need to provisioning, 2 : Connected to Enroller.
-    bool trigger; // Trigger network connection, 0 : Init value, 1 : Connected to the target network.
-    int64_t errorCode;
-} ProvResource;
+    ProvStatus status; // provisiong status
+    ESErrorCode lastErrCode;
+    ES_CONNECT_TYPE connectRequest[NUM_CONNECT_TYPE];
+    int numRequest;
+} EasySetupResource;
 
 typedef struct
 {
     OCResourceHandle handle;
-    int64_t supportedMode[NUM_WIFIMODE];
-    uint8_t numMode;
-    int64_t supportedFreq;
-    char ssid[MAXSSIDLEN]; // target network name, i.e. SSID for WLAN, MAC address for BT.
-    char cred[MAXNETCREDLEN]; // credential information.
-    int64_t authType;
-    int64_t encType;
-} WiFiResource;
+    WIFI_MODE supportedMode[NUM_WIFIMODE];
+    uint8_t numMode;        // the number of device's supported wifi modes
+    WIFI_FREQ supportedFreq;
+    char ssid[OIC_STRING_MAX_VALUE]; // SSID
+    char cred[OIC_STRING_MAX_VALUE]; // credential information.
+    WIFI_AUTHTYPE authType;
+    WIFI_ENCTYPE encType;
+} WiFiConfResource;
 
 typedef struct
 {
     OCResourceHandle handle;
     char authCode[OIC_STRING_MAX_VALUE];
+    char accessToken[OIC_STRING_MAX_VALUE];
+    OAUTH_TOKENTYPE accessTokenType;
     char authProvider[OIC_STRING_MAX_VALUE];
     char ciServer[OIC_STRING_MAX_VALUE];
-} CloudResource;
+} CoapCloudConfResource;
 
 typedef struct
 {
     OCResourceHandle handle;
     char devName[OIC_STRING_MAX_VALUE];
+    char modelNumber[OIC_STRING_MAX_VALUE];
+    char location[OIC_STRING_MAX_VALUE];
     char language[OIC_STRING_MAX_VALUE];
     char country[OIC_STRING_MAX_VALUE];
 } DevConfResource;
 
+/* Note: These values of structures are not thread-safety */
+extern EasySetupResource g_ESEasySetupResource;
+extern WiFiConfResource g_ESWiFiConfResource;
+extern CoapCloudConfResource g_ESCoapCloudConfResource;
+extern DevConfResource g_ESDevConfResource;
 
-OCStackResult CreateProvisioningResource(bool isSecured);
-OCStackResult CreateEasySetupResources(bool isSecured);
-OCStackResult DeleteProvisioningResource();
+OCStackResult CreateEasySetupResources(bool isSecured, ESResourceMask resourceMask);
 OCStackResult DeleteEasySetupResources();
 
+OCStackResult SetDeviceProperty(ESDeviceProperty *deviceProperty);
+OCStackResult SetEnrolleeState(ESEnrolleeState esState);
+OCStackResult SetEnrolleeErrCode(ESErrorCode esErrCode);
+OCEntityHandlerResult CheckEhRequestPayload(OCEntityHandlerRequest *ehRequest);
 
-void GetTargetNetworkInfoFromProvResource(char *, char *);
-void RegisterResourceEventCallBack(ESEnrolleeResourceEventCallback);
+void RegisterWifiRsrcEventCallBack(ESWiFiConfCB);
+void RegisterCloudRsrcEventCallBack(ESCoapCloudConfCB);
+void RegisterDevConfRsrcEventCallBack(ESDevConfCB);
 void UnRegisterResourceEventCallBack(void);
+ESResult SetCallbackForUserData(ESReadUserdataCb readCb, ESWriteUserdataCb writeCb);
 
 #ifdef __cplusplus
 }