42 #ifndef _CL_RMD_API_H_
43 # define _CL_RMD_API_H_
66 # define CL_RMD_CALL_ASYNC (1<<0)
71 # define CL_RMD_CALL_NEED_REPLY (1<<1)
76 # define CL_RMD_CALL_ATMOST_ONCE (1<<2)
81 # define CL_RMD_CALL_DO_NOT_OPTIMIZE (1<<3)
86 # define CL_RMD_CALL_NON_PERSISTENT (1<<4)
92 # define CL_RMD_CALL_IN_SESSION (1<<5)
101 #define CL_RMD_HEADER_VERSION 1
105 # define CL_RMD_DEFAULT_PRIORITY CL_IOC_DEFAULT_PRIORITY
114 # define CL_RMD_DEFAULT_TIMEOUT 50000
118 # define CL_RMD_DEFAULT_TIMEOUT 10000
125 # define CL_RMD_DEFAULT_RETRIES 5
130 # define CL_RMD_DEFAULT_TRANSPORT_HANDLE 0
135 #define CL_RMD_DEFAULT_OPTIONS { \
136 CL_RMD_DEFAULT_TIMEOUT, \
137 CL_RMD_DEFAULT_RETRIES, \
138 CL_RMD_DEFAULT_PRIORITY, \
139 CL_RMD_DEFAULT_TRANSPORT_HANDLE, \
142 #define CL_RMD_DEFAULT_OPTIONS_SET(options) \
143 (options).timeout = CL_RMD_DEFAULT_TIMEOUT, \
144 (options).retries = CL_RMD_DEFAULT_RETRIES, \
145 (options).priority = CL_RMD_DEFAULT_PRIORITY, \
146 (options).transportHandle = CL_RMD_DEFAULT_LINK_HANDLE
150 # define CL_RMD_TIMEOUT_FOREVER -1
155 #define CL_RMD_UNREACHABLE_CHECK(ret) \
156 (CL_GET_ERROR_CODE((ret)) == CL_IOC_ERR_COMP_UNREACHABLE || \
157 CL_GET_ERROR_CODE((ret)) == CL_IOC_ERR_HOST_UNREACHABLE)
159 #define CL_RMD_TIMEOUT_UNREACHABLE_CHECK(ret) \
160 ( CL_GET_ERROR_CODE((ret))== CL_ERR_TIMEOUT || CL_RMD_UNREACHABLE_CHECK(ret) )
162 #define CL_RMD_VERSION_ERROR(rc) ( (rc) == CL_RC(CL_CID_EO, CL_ERR_DOESNT_EXIST) \
163 || (rc) == CL_RC(CL_CID_EO, CL_ERR_VERSION_MISMATCH) )
190 typedef ClPtrT ClRmdObjHandleT;
319 CL_IN ClUint32T funcId,
324 CL_IN ClUint32T flags,
338 CL_IN ClUint32T funcId,
343 CL_IN ClUint32T flags,
Header file of Buffer Management related APIs.
Header file of Ioc Data Structures and APIs.
Header file of RMD related Error Codes.
ClPtrT ClBufferHandleT
The type of the handle for the buffer messages.
Definition: clBufferApi.h:82
ClUint32T ClRcT
Clovis return code type.
Definition: clCommon.h:168
#define CL_OUT
CL_OUT macro assists in clearly defining arguments of an API, but has no actual meaning.
Definition: clCommon.h:110
#define CL_IN
CL_IN macro assists in clearly defining arguments of an API, but has no actual meaning.
Definition: clCommon.h:106
ClHandleT ClIocToBindHandleT
The Transport handle.
Definition: clIocApi.h:358
struct ClRmdOptions ClRmdOptionsT
This is a structure to pass optional parameters.
void(* ClRmdAsyncCallbackT)(ClRcT retCode, ClPtrT pCookie, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl)
Callback function pointer for the async RMD call.
Definition: clRmdApi.h:183
ClRcT clRmdWithMsg(CL_IN ClIocAddressT remoteObjAddr, CL_IN ClUint32T funcId, CL_IN ClBufferHandleT inMsgHdl, CL_OUT ClBufferHandleT outMsgHdl, CL_IN ClUint32T flags, CL_IN ClRmdOptionsT *pOptions, CL_IN ClRmdAsyncOptionsT *pAsyncOptions)
Invokes a Remote Function Call when the parameters are passed as messages.
struct ClRmdAsyncOptions ClRmdAsyncOptionsT
This structure ClRmdAsyncOptionsT contains additional asynchronous call parameters.
Version Information for various services.
Definition: clCommon.h:250
IOC address.
Definition: clIocApi.h:401
This is a structure to pass optional parameters.
Definition: clRmdApi.h:196
ClUint32T timeout
Timeout value per try in miliseconds.
Definition: clRmdApi.h:204
ClIocToBindHandleT transportHandle
The Transport Handle obtained via clIocBind() to make the RMD call via the specified transport.
Definition: clRmdApi.h:221
ClUint32T retries
Number of times you can retry after the first call in case of timeout.
Definition: clRmdApi.h:210
ClUint8T priority
Priority value for the call.
Definition: clRmdApi.h:215
This structure ClRmdAsyncOptionsT contains additional asynchronous call parameters.
Definition: clRmdApi.h:229
ClPtrT pCookie
User's cookie.
Definition: clRmdApi.h:233
ClRmdAsyncCallbackT fpCallback
User's callback.
Definition: clRmdApi.h:237