1 /* ****************************************************************
3 * Copyright 2014 Samsung Electronics All Rights Reserved.
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 ******************************************************************/
24 * This file contains common utility function for CA transport adaptors.
27 #ifndef CA_INTERFACE_CONTROLLER_H_
28 #define CA_INTERFACE_CONTROLLER_H_
30 #include "caadapterinterface.h"
31 #include "cainterface.h"
34 #include "cathreadpool.h" /* for thread pool */
44 * Initializes different adapters based on the compilation flags.
46 void CAInitializeAdapters();
49 * Initializes different adapters based on the compilation flags.
50 * @param[in] handle thread pool handle created by message handler
51 * for different adapters.
53 void CAInitializeAdapters(ca_thread_pool_t handle);
57 * Set the received packets callback for message handler.
58 * @param[in] callback message handler callback to receive packets
59 * from different adapters.
61 void CASetPacketReceivedCallback(CANetworkPacketReceivedCallback callback);
64 * Set the error handler callback for message handler.
65 * @param[in] errorCallback error handler callback from adapters
67 void CASetErrorHandleCallback(CAErrorHandleCallback errorCallback);
70 * Set the network status changed callback for message handler.
71 * @param[in] callback message handler network status callback
72 * to receive network changes.
74 void CASetNetworkChangeCallback(CANetworkChangeCallback callback);
77 * Starting different connectivity adapters based on the network selection.
78 * @param[in] transportType interested network for starting.
79 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
81 CAResult_t CAStartAdapter(CATransportAdapter_t transportType);
84 * Stopping different connectivity adapters based on the network un-selection.
85 * @param[in] transportType network type that want to stop.
87 void CAStopAdapter(CATransportAdapter_t transportType);
91 * Set Remote Access information for XMPP Client.
92 * @param[in] caraInfo remote access info..
94 * @return CA_STATUS_OK
96 CAResult_t CASetAdapterRAInfo(const CARAInfo_t *caraInfo);
100 * Get network information such as ipaddress and mac information.
101 * @param[out] info connectivity information
102 * such as ipaddress and mac information.
103 * @param[out] size number of connectivity information structures.
104 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
106 CAResult_t CAGetNetworkInfo(CAEndpoint_t **info, uint32_t *size);
109 * Sends unicast data to the remote endpoint.
110 * @param[in] endpoint endpoint information where the data has to be sent.
111 * @param[in] data data that needs to be sent.
112 * @param[in] length length of the data that needs to be sent.
113 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
115 CAResult_t CASendUnicastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length);
118 * Sends multicast data to all endpoints in the network.
119 * @param[in] endpoint endpoint information where the data has to be sent.
120 * @param[in] data data that needs to be sent.
121 * @param[in] length length of the data that needs to be sent.
122 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
125 CAResult_t CASendMulticastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length);
128 * Start listening servers to receive search requests from clients.
129 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
131 CAResult_t CAStartListeningServerAdapters();
134 * Start discovery servers to receive advertisements from server.
135 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
137 CAResult_t CAStartDiscoveryServerAdapters();
140 * Terminates the adapters which are initialized during the initialization.
142 void CATerminateAdapters();
146 * Checks for available data and reads it.
147 * @return ::CA_STATUS_OK or ERROR CODES (::CAResult_t error codes in cacommon.h).
149 CAResult_t CAReadData();
156 #endif /* CA_INTERFACE_CONTROLLER_H_ */