#include "logger.h"
#include "cJSON.h"
-#define TAG PCF("virtualResource")
+#define TAG PCF("MirrorResource")
+//-----------------------------------------------------------------------------
+// Definition of Constant
+//-----------------------------------------------------------------------------
+#define VR_TAG "__NM__"
+#define RH_TAG "__RM__"
//-----------------------------------------------------------------------------
// Typedefs
*/
typedef enum
{
- OIC_SOURCE_ADDRESS = 0,
- OIC_MIRROR_ADDRESS = 1,
- OIC_REQUEST_HANDLE = 0,
- OIC_MIRROR_HANDLE = 1,
- OIC_NONE = 255
+ /*
+ * for mirrorResourceHandle
+ */
+ OIC_SOURCE_ADDRESS = 0,
+ OIC_MIRROR_ADDRESS = 1,
+ OIC_REQUEST_HANDLE = 0,
+ OIC_MIRROR_HANDLE = 1,
+
+ /*
+ * for requestHandle
+ */
+ OIC_REQUEST_BY_CLIENT = 0,
+ OIC_REQUEST_BY_COORDINATOR = 1,
+
+ OIC_NONE = 255
} OICResourceCoordinatorParamType;
/**
char *uri;
MirrorResourceProperty prop;
- unsigned char isAliveCheck;
-
struct MirrorResource *next;
/*
struct MirrorResource *tailNode;
} MirrorResourceList;
+/**
+* Request Object
+*/
+typedef struct RequestHandle
+{
+ void *requestHandle[2]; // OIC_REQUEST_BY_CLIENT = 0, OIC_REQUEST_BY_COORDINATOR = 1
+ OCResourceHandle resourceHandle;
+ OCRequestHandle entityRequestHandle;
+
+ OCMethod method;
+
+ unsigned char isAliveCheck;
+
+ struct RequestHandle *next;
+} RequestHandle;
+
+/**
+* Request Object List
+*/
+typedef struct RequestHandleList
+{
+ struct RequestHandle *headerNode;
+ struct RequestHandle *tailNode;
+} RequestHandleList;
+
//-----------------------------------------------------------------------------
-// Function prototypes
+// Function prototypes for mirrorResourceHandle
//-----------------------------------------------------------------------------
/**
*/
OCStackResult printMirrorResourceList(MirrorResourceList *mirrorResourceList);
-#endif
+//-----------------------------------------------------------------------------
+// Function prototypes for RequestHandle
+//-----------------------------------------------------------------------------
+RequestHandleList *createRequestHandleList();
+RequestHandle *createRequestHandle();
+OCStackResult insertRequestHandle(RequestHandleList *requestHandleList,
+ RequestHandle *requestHandle);
+
+OCStackResult deleteRequestHandleFromList(RequestHandleList *requestHandleList,
+ RequestHandle *requestHandle);
+OCStackResult destroyRequestHandle(RequestHandle *requestHandle);
+
+OCStackResult destroyRequestHandleList(RequestHandleList *requestHandleList);
+
+RequestHandle *findRequestHandle(RequestHandleList *requestHandleList,
+ OCDoHandle handle, OICResourceCoordinatorParamType paramType);
+
+#endif //_MIRROR_RESOURCE_H_