Implementation of connectivity abstraction feature Release v0.3
[platform/upstream/iotivity.git] / resource / csdk / connectivity / inc / camessagehandler_singlethread.h
1 /******************************************************************
2  *
3  * Copyright 2014 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 #ifndef __CA_MESSAGE_HANDLER_H_
21 #define __CA_MESSAGE_HANDLER_H_
22
23 #include <stdint.h>
24 #include "cacommon.h"
25 #include "cainterface.h"
26
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31
32 typedef void (*CAMessageHandlerCallback)(CAToken_t token, CAResult_t res);
33
34 CAResult_t CADetachRequestMessage(const CARemoteEndpoint_t *object, const CARequestInfo_t *request);
35
36 CAResult_t CADetachResponseMessage(const CARemoteEndpoint_t *object,
37                                    const CAResponseInfo_t *response);
38
39 CAResult_t CADetachMessageResourceUri(const CAURI_t resourceUri, const CAToken_t token, const CAHeaderOption_t *options,
40                                       uint8_t numOptions);
41
42 void CASetMessageHandlerCallback(CAMessageHandlerCallback callback);
43
44 void CASetRequestResponseCallbacks(CARequestCallback ReqHandler, CAResponseCallback RespHandler);
45
46 CAResult_t CAInitializeMessageHandler();
47
48 void CATerminateMessageHandler();
49
50 void CAHandleRequestResponseCallbacks();
51
52 #ifdef __cplusplus
53 } /* extern "C" */
54 #endif
55
56 #endif //#ifndef __CA_MESSAGE_HANDLER_H_