Initial merge-commit of the OIC code. Should successfully do discovery for single...
[platform/upstream/iotivity.git] / csdk / stack / include / internal / occlientcb.h
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
5 //
6
7 #ifndef OC_CLIENT_CB
8 #define OC_CLIENT_CB
9
10 #include <ocstack.h>
11 #include <occoap.h>
12
13 typedef struct ClientCB {
14     // callback method defined in application address space
15     OCClientApplicationCBType callBack;
16     // callback context data
17     void * context;
18     //  when a response is recvd with this token, above callback will be invoked
19     OCToken * token;
20     // next node in this list
21     struct ClientCB    *next;
22 } ClientCB;
23
24 //-- AddClientCB -----------------------------------------------------------
25 /** @ingroup ocstack
26  *
27  * This method is used to add a client callback method in cbList.
28  *
29  * @param[in] cb
30  *              address to client callback function.
31  * @param[out] token
32  *              address to token.
33  *
34  * @retval 0 for Success, otherwise some error value
35  */
36 //------------------------------------------------------------------------
37 int AddClientCB(OCCallbackData *cbData, OCToken * token);
38
39 //-- DeleteClientCB -----------------------------------------------------------
40 /** @ingroup ocstack
41  *
42  * This method is used to remove a callback node from cbList.
43  *
44  * @param[in] cbNode
45  *              address to client callback node.
46  */
47 //------------------------------------------------------------------------
48 void DeleteClientCB(ClientCB *cbNode);
49
50
51 //-- GetClientCB -----------------------------------------------------------
52 /** @ingroup ocstack
53  *
54  * This method is used to search a cb node in cbList.
55  *
56  * @param[in] token
57  *              token to search for.
58  *
59  * @retval address of the node if found, otherwise NULL
60  */
61 //------------------------------------------------------------------------
62 ClientCB* GetClientCB(OCToken * token);
63
64 //-- DeleteClientCBList -----------------------------------------------------------
65 /** @ingroup ocstack
66  *
67  * This method is used to clear the cbList.
68  *
69  */
70 //------------------------------------------------------------------------
71 void DeleteClientCBList();
72
73 #endif //OC_CLIENT_CB