X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fconnectivity%2Finc%2Fcablockwisetransfer.h;h=47cbdaaad6a71bcfe5e868c75b7f3d949d95a7ea;hb=refs%2Ftags%2Faccepted%2Ftizen%2Funified%2F20171010.063815;hp=39c4d7fbb516e78f16a4c81863de3027ce2366a6;hpb=1a06bd70ae5f6842dae31c1b50976f65feb60595;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/inc/cablockwisetransfer.h b/resource/csdk/connectivity/inc/cablockwisetransfer.h index 39c4d7f..47cbdaa 100644 --- a/resource/csdk/connectivity/inc/cablockwisetransfer.h +++ b/resource/csdk/connectivity/inc/cablockwisetransfer.h @@ -30,7 +30,7 @@ #include #include "cathreadpool.h" -#include "camutex.h" +#include "octhread.h" #include "uarraylist.h" #include "cacommon.h" #include "caprotocolmessage.h" @@ -68,10 +68,10 @@ typedef struct u_arraylist_t *dataList; /** data list mutex for synchronization. **/ - ca_mutex blockDataListMutex; + oc_mutex blockDataListMutex; /** sender mutex for synchronization. **/ - ca_mutex blockDataSenderMutex; + oc_mutex blockDataSenderMutex; } CABlockWiseContext_t; /** @@ -91,11 +91,12 @@ typedef struct coap_block_t block1; /**< block1 option. */ coap_block_t block2; /**< block2 option. */ uint16_t type; /**< block option type. */ - CABlockDataID_t* blockDataId; /**< ID set of CABlockData. */ + CABlockDataID_t* blockDataId; /**< ID set of CABlockData. */ CAData_t *sentData; /**< sent request or response data information. */ CAPayload_t payload; /**< payload buffer. */ size_t payloadLength; /**< the total payload length to be received. */ size_t receivedPayloadLen; /**< currently received payload length. */ + uint64_t ttl; /** The TTL for this blockData. */ } CABlockData_t; /** @@ -493,6 +494,15 @@ uint8_t CAGetBlockOptionType(const CABlockDataID_t *blockID); CAData_t *CAGetDataSetFromBlockDataList(const CABlockDataID_t *blockID); /** + * Update the block data from block-wise transfer list. + * @param[in] blockID ID set of CABlockData. + * @param[in] sendData New block date should be sent. + * @return CAData structure. + */ +CABlockData_t *CAUpdateDataSetFromBlockDataList(const CABlockDataID_t *blockID, + const CAData_t *sendData); + +/** * Get token from block-wise transfer list. * @param[in] pdu received pdu binary data. * @param[in] endpoint remote endpoint information. @@ -566,6 +576,17 @@ CAResult_t CARemoveAllBlockDataFromList(); CAResult_t CARemoveBlockDataFromListWithSeed(const CAToken_t token, uint8_t tokenLength, uint16_t portNumber); +/** + * Reset TTL for a blockData. + * + * @param[in] blockID ID set of CABlockData. + */ +void CAResetBlockDataTTL(const CABlockDataID_t *blockID); + +/** + * Checks if the blockData is past its time to live and deletes it if timed-out. + */ +void CACheckAndDeleteTimedOutBlockData(); #ifdef __cplusplus } /* extern "C" */ #endif