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 the APIs for the interface controller.
27 #ifndef CA_INTERFACE_CONTROLLER_SINGLETHREAD_H_
28 #define CA_INTERFACE_CONTROLLER_SINGLETHREAD_H_
30 #include "caadapterinterface.h"
38 * @brief Initializes different adapters based on the compilation flags.
39 * @param handle [IN] thread pool handle created by message handler for different
43 void CAInitializeAdapters();
46 * @brief Set the received packets callback for message handler
47 * @param callback [IN] message handler callback to receive packets from different
51 void CASetPacketReceivedCallback(CANetworkPacketReceivedCallback callback);
54 * @brief Set the adapter status changed callback for message handler
55 * @param callback [IN] message handler network status callback to receive network
59 void CASetNetworkChangeCallback(CAAdapterChangeCallback callback);
62 * @brief Set the error handler callback for message handler
63 * @param errorCallback [IN] error handler callback from adapters
66 void CASetErrorHandleCallback(CAErrorHandleCallback errorCallback);
69 * @brief Starting different connectivity adapters based on the network selection.
70 * @param transportAdapter [IN] network type that want to stop
73 CAResult_t CAStartAdapter(CATransportAdapter_t transportType);
76 * @brief Stopping different connectivity adapters based on the network un-selection.
77 * @param transportAdapter [IN] un selected network for stopping the packets transfer
80 void CAStopAdapter(CATransportAdapter_t transportType);
83 * @brief Get network information such as ipaddress and mac information. Gets the network
84 * information of the adapter whichever is enabled. Otherwise info is NULL.
85 * @param info [OUT] connectivity information such as ipaddress and mac information
86 * @param size [OUT] number of connectivity information structures
87 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
89 CAResult_t CAGetNetworkInfo(CAEndpoint_t **info, uint32_t *size);
92 * @brief Sends unicast data to the remote endpoint
93 * @param endpoint [IN] endpoint information where the data has to be sent
94 * @param data [IN] data that needs to be sent
95 * @param length [IN] length of the data that needs to be sent
96 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
98 CAResult_t CASendUnicastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length);
101 * @brief Sends multicast data to all endpoints in the network.
102 * @param endpoint [IN] endpoint information where the data has to be sent
103 * @param data [IN] data that needs to be sent
104 * @param length [IN] length of the data that needs to be sent
105 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
107 CAResult_t CASendMulticastData(const CAEndpoint_t *endpoint, const void *data, uint32_t length);
110 * @brief Start listening servers to receive search requests from clients
111 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
113 CAResult_t CAStartListeningServerAdapters();
116 * @brief Stops listening servers to receive search requests from clients
117 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
119 CAResult_t CAStopListeningServerAdapters();
122 * @brief Start discovery servers to receive advertisements from server
123 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
125 CAResult_t CAStartDiscoveryServerAdapters();
128 * @brief Terminates the adapters which are initialized during the initialization
131 void CATerminateAdapters();
134 * @brief Checks for available data and reads it
135 * @return CA_STATUS_OK or ERROR CODES ( CAResult_t error codes in cacommon.h)
137 CAResult_t CAReadData();
143 #endif /* CA_INTERFACE_CONTROLLER_SINGLETHREAD_H_ */