X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fconnectivity%2Finc%2Fcaleinterface.h;h=c354ee3ed65f23e5c70693d04d8105eceeda6f7e;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=5436b33e4ff3fb6db6400694335ce2d9fb9e3fd0;hpb=6dac22e4428a50d74a11603436b95650c22bc11f;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/inc/caleinterface.h b/resource/csdk/connectivity/inc/caleinterface.h index 5436b33..c354ee3 100644 --- a/resource/csdk/connectivity/inc/caleinterface.h +++ b/resource/csdk/connectivity/inc/caleinterface.h @@ -31,6 +31,7 @@ #include "cacommon.h" #include "cathreadpool.h" +#include "uarraylist.h" #ifdef __cplusplus extern "C" @@ -50,12 +51,60 @@ typedef enum } CALETransferType_t; /** + * Stores the information of the Data to be sent from the queues. + * + * This structure will be pushed to the sender/receiver queue for + * processing. + */ +typedef struct +{ + /// Remote endpoint contains the information of remote device. + CAEndpoint_t *remoteEndpoint; + + /// Data to be transmitted over LE transport. + uint8_t *data; + + /// Length of the data being transmitted. + uint32_t dataLen; + + /// Sender information list + u_arraylist_t * senderInfo; +} CALEData_t; + +/** + * The MTU supported for BLE adapter + */ +#ifdef __APPLE__ +#define CA_DEFAULT_BLE_MTU_SIZE 152 +#else +#define CA_DEFAULT_BLE_MTU_SIZE 20 +#endif +/** + * The MTU supported for BLE spec + */ +#define CA_SUPPORTED_BLE_MTU_SIZE 517 + +/** + * The Header of the MTU supported for BLE spec + */ +#define CA_BLE_MTU_HEADER_SIZE 5 + +/** * This will be used to notify device status changes to the LE adapter layer. * @param[in] adapter_state State of the adapter. */ typedef void (*CALEDeviceStateChangedCallback)(CAAdapterState_t adapter_state); /** + * This will be used to notify device connection state changes to the LE adapter layer. + * @param[in] adapter Transport type information. + * @param[in] remoteAddress Endpoint object from which the connection status is changed. + * @param[in] connected State of connection. + */ +typedef void (*CALEConnectionStateChangedCallback)(CATransportAdapter_t adapter, + const char *remoteAddress, bool connected); + +/** * Notify the adapter layer that a packet was received from the GATT * peer. * @@ -78,6 +127,7 @@ typedef CAResult_t (*CABLEDataReceivedCallback)(const char *remoteAddress, * Initialize the LE adapter layer. This will be invoked from the CA * layer. * + * @param[in] threadPool Thread pool handle * @return ::CA_STATUS_OK or Appropriate error code * @retval ::CA_STATUS_OK Successful * @retval ::CA_STATUS_INVALID_PARAM Invalid input arguments @@ -99,6 +149,19 @@ CAResult_t CAInitializeLEAdapter(); CAResult_t CAStartLEAdapter(); /** + * Stop the LE adapter layer. + * + * This function will be invoked from the CA layer when the LE + * "network" is unselected via @c CAUnselectNetwork(). It gives an + * opportunity for LE adapter implementations to perform operations + * after stopping a GATT client or server. Most LE adapter + * implementations will simply implement this function as no-op. + * + * @return ::CA_STATUS_OK or Appropriate error code + */ +CAResult_t CAStopLEAdapter(); + +/** * Used to get the current state of the LE adapter. * * @return ::CA_STATUS_OK or Appropriate error code @@ -141,21 +204,17 @@ void CATerminateLENetworkMonitor(); CAResult_t CASetLEAdapterStateChangedCb(CALEDeviceStateChangedCallback callback); /** - * Initialize all the mutex variables required to operate the LE - * network monitor layer. + * Set the callback for the device connection state changes. + * + * @param[in] callback Callback to notify the Device connection state change to + * the CA Layer * * @return ::CA_STATUS_OK or Appropriate error code * @retval ::CA_STATUS_OK Successful * @retval ::CA_STATUS_INVALID_PARAM Invalid input arguments * @retval ::CA_STATUS_FAILED Operation failed */ -CAResult_t CAInitLENetworkMonitorMutexVariables(); - -/** - * Used to terminate all the mutex variables required to operate the LE - * network monitor layer. - */ -void CATerminateLENetworkMonitorMutexVariables(); +CAResult_t CASetLENWConnectionStateChangedCb(CALEConnectionStateChangedCallback callback); /** * Provides the MAC address of the local Bluetooth adapter. @@ -192,6 +251,15 @@ CAResult_t CAStartLEGattServer(); CAResult_t CAStopLEGattServer(); /** + * initialize gatt server + * + * @return ::CA_STATUS_OK or Appropriate error code + * @retval ::CA_STATUS_OK Successful + * @retval ::CA_STATUS_FAILED Operation failed + */ +CAResult_t CAInitializeLEGattServer(); + +/** * Stop Gatt Server thread and remove service registration, stop * advertising. */ @@ -259,6 +327,15 @@ CAResult_t CAStartLEGattClient(); void CAStopLEGattClient(); /** + * initialize Client + * + * @return ::CA_STATUS_OK or Appropriate error code + * @retval ::CA_STATUS_OK Successful + * @retval ::CA_STATUS_FAILED Operation failed + */ +CAResult_t CAInitializeLEGattClient(); + +/** * Unset all the callbacks and stop service discovery */ void CATerminateLEGattClient(); @@ -337,7 +414,7 @@ void CASetLEServerThreadPoolHandle(ca_thread_pool_t handle); void CASetLEClientThreadPoolHandle(ca_thread_pool_t handle); /** - * Unset the callback of adapter connection state change. + * Unset the callback of adapter state change. * * @return ::CA_STATUS_OK or Appropriate error code. * @retval ::CA_STATUS_OK Successful. @@ -347,6 +424,16 @@ void CASetLEClientThreadPoolHandle(ca_thread_pool_t handle); CAResult_t CAUnSetLEAdapterStateChangedCb(); /** + * Unset the callback of adapter connection state change. + * + * @return ::CA_STATUS_OK or Appropriate error code. + * @retval ::CA_STATUS_OK Successful. + * @retval ::CA_STATUS_INVALID_PARAM Invalid input arguments. + * @retval ::CA_STATUS_FAILED Operation failed. + */ +CAResult_t CAUnSetLENWConnectionStateChangedCb(); + +/** * This will be used to notify errors in BLE adapter. * * @param[in] remoteAddress Remote endpoint Address @@ -375,6 +462,24 @@ void CASetBLEClientErrorHandleCallback(CABLEErrorHandleCallback callback); */ void CASetBLEServerErrorHandleCallback(CABLEErrorHandleCallback callback); +/** + * This is the callback which will be called whenever there is change in gatt connection + * with Client(Connected/Disconnected). + * + * @param[in] connected State of connection. + * @param[in] remoteAddress Mac address of the remote device in which we made connection. + */ +void CALEGattServerConnectionStateChanged(bool connected, const char *remoteAddress); + +/** + * This is the callback which will be called whenever there is change in gatt connection + * with server(Connected/Disconnected) + * + * @param[in] connected State of connection + * @param[in] remoteAddress Mac address of the remote device in which we made connection. + */ +void CALEGattConnectionStateChanged(bool connected, const char *remoteAddress); + #ifdef __cplusplus } #endif