framework/c/inc/le_messaging.h
Go to the documentation of this file.
00001 
00817 #ifndef LE_MESSAGING_H_INCLUDE_GUARD
00818 #define LE_MESSAGING_H_INCLUDE_GUARD
00819 
00820 // =======================================
00821 //  DATA TYPES
00822 // =======================================
00823 
00824 //--------------------------------------------------------------------------------------------------
00828 //--------------------------------------------------------------------------------------------------
00829 typedef struct le_msg_Protocol* le_msg_ProtocolRef_t;
00830 
00831 //--------------------------------------------------------------------------------------------------
00835 //--------------------------------------------------------------------------------------------------
00836 typedef struct le_msg_Service* le_msg_ServiceRef_t;
00837 
00838 //--------------------------------------------------------------------------------------------------
00842 //--------------------------------------------------------------------------------------------------
00843 typedef struct le_msg_Session* le_msg_SessionRef_t;
00844 
00845 //--------------------------------------------------------------------------------------------------
00849 //--------------------------------------------------------------------------------------------------
00850 typedef struct le_msg_Message* le_msg_MessageRef_t;
00851 
00852 
00853 //--------------------------------------------------------------------------------------------------
00864 //--------------------------------------------------------------------------------------------------
00865 typedef void (* le_msg_SessionEventHandler_t)
00866 (
00867     le_msg_SessionRef_t sessionRef,
00868     void*               contextPtr
00869 );
00870 
00871 
00872 //--------------------------------------------------------------------------------------------------
00883 //--------------------------------------------------------------------------------------------------
00884 typedef void (* le_msg_ReceiveHandler_t)
00885 (
00886     le_msg_MessageRef_t msgRef,
00887     void*               contextPtr
00888 );
00889 
00890 
00891 //--------------------------------------------------------------------------------------------------
00903 //--------------------------------------------------------------------------------------------------
00904 typedef void (* le_msg_ResponseCallback_t)
00905 (
00906     le_msg_MessageRef_t msgRef,
00907     void*               contextPtr
00908 );
00909 
00910 
00911 // =======================================
00912 //  PROTOCOL FUNCTIONS
00913 // =======================================
00914 
00915 //--------------------------------------------------------------------------------------------------
00923 //--------------------------------------------------------------------------------------------------
00924 le_msg_ProtocolRef_t le_msg_GetProtocolRef
00925 (
00926     const char* protocolId,     
00927     size_t largestMsgSize       
00928 );
00929 
00930 
00931 //--------------------------------------------------------------------------------------------------
00937 //--------------------------------------------------------------------------------------------------
00938 const char* le_msg_GetProtocolIdStr
00939 (
00940     le_msg_ProtocolRef_t protocolRef    
00941 );
00942 
00943 
00944 //--------------------------------------------------------------------------------------------------
00950 //--------------------------------------------------------------------------------------------------
00951 size_t le_msg_GetProtocolMaxMsgSize
00952 (
00953     le_msg_ProtocolRef_t protocolRef    
00954 );
00955 
00956 
00957 // =======================================
00958 //  SESSION FUNCTIONS
00959 // =======================================
00960 
00961 //--------------------------------------------------------------------------------------------------
00971 //--------------------------------------------------------------------------------------------------
00972 le_msg_SessionRef_t le_msg_CreateSession
00973 (
00974     le_msg_ProtocolRef_t    protocolRef,    
00975     const char*             serviceName     
00976 );
00977 
00978 
00979 //--------------------------------------------------------------------------------------------------
00984 //--------------------------------------------------------------------------------------------------
00985 void le_msg_SetSessionContextPtr
00986 (
00987     le_msg_SessionRef_t sessionRef, 
00988 
00989     void*               contextPtr  
00990 
00991 );
00992 
00993 //--------------------------------------------------------------------------------------------------
01001 //--------------------------------------------------------------------------------------------------
01002 void* le_msg_GetSessionContextPtr
01003 (
01004     le_msg_SessionRef_t sessionRef  
01005 );
01006 
01007 
01008 //--------------------------------------------------------------------------------------------------
01017 //--------------------------------------------------------------------------------------------------
01018 void le_msg_DeleteSession
01019 (
01020     le_msg_SessionRef_t sessionRef  
01021 );
01022 
01023 
01024 //--------------------------------------------------------------------------------------------------
01037 //--------------------------------------------------------------------------------------------------
01038 void le_msg_SetSessionRecvHandler
01039 (
01040     le_msg_SessionRef_t     sessionRef, 
01041     le_msg_ReceiveHandler_t handlerFunc,
01042     void*                   contextPtr  
01043 );
01044 
01045 
01046 //--------------------------------------------------------------------------------------------------
01063 //--------------------------------------------------------------------------------------------------
01064 void le_msg_SetSessionCloseHandler
01065 (
01066     le_msg_SessionRef_t             sessionRef, 
01067     le_msg_SessionEventHandler_t    handlerFunc,
01068     void*                           contextPtr  
01069 );
01070 
01071 
01072 //--------------------------------------------------------------------------------------------------
01084 //--------------------------------------------------------------------------------------------------
01085 void le_msg_OpenSession
01086 (
01087     le_msg_SessionRef_t             sessionRef,     
01088     le_msg_SessionEventHandler_t    callbackFunc,   
01089 
01090     void*                           contextPtr      
01091 );
01092 
01093 
01094 //--------------------------------------------------------------------------------------------------
01110 //--------------------------------------------------------------------------------------------------
01111 le_result_t le_msg_OpenSessionSync
01112 (
01113     le_msg_SessionRef_t             sessionRef      
01114 );
01115 
01116 
01117 //--------------------------------------------------------------------------------------------------
01121 //--------------------------------------------------------------------------------------------------
01122 void le_msg_CloseSession
01123 (
01124     le_msg_SessionRef_t sessionRef  
01125 );
01126 
01127 
01128 //--------------------------------------------------------------------------------------------------
01134 //--------------------------------------------------------------------------------------------------
01135 le_msg_ProtocolRef_t le_msg_GetSessionProtocol
01136 (
01137     le_msg_SessionRef_t sessionRef  
01138 );
01139 
01140 
01141 //--------------------------------------------------------------------------------------------------
01147 //--------------------------------------------------------------------------------------------------
01148 le_msg_ServiceRef_t le_msg_GetSessionService
01149 (
01150     le_msg_SessionRef_t sessionRef  
01151 );
01152 
01153 
01154 //--------------------------------------------------------------------------------------------------
01163 //--------------------------------------------------------------------------------------------------
01164 le_result_t le_msg_GetClientUserId
01165 (
01166     le_msg_SessionRef_t sessionRef, 
01167     uid_t*              userIdPtr   
01168 );
01169 
01170 
01171 // =======================================
01172 //  MESSAGE FUNCTIONS
01173 // =======================================
01174 
01175 //--------------------------------------------------------------------------------------------------
01186 //--------------------------------------------------------------------------------------------------
01187 le_msg_MessageRef_t le_msg_CreateMsg
01188 (
01189     le_msg_SessionRef_t sessionRef  
01190 );
01191 
01192 
01193 //--------------------------------------------------------------------------------------------------
01197 //--------------------------------------------------------------------------------------------------
01198 void le_msg_AddRef
01199 (
01200     le_msg_MessageRef_t msgRef      
01201 );
01202 
01203 
01204 //--------------------------------------------------------------------------------------------------
01209 //--------------------------------------------------------------------------------------------------
01210 void le_msg_ReleaseMsg
01211 (
01212     le_msg_MessageRef_t msgRef      
01213 );
01214 
01215 
01216 //--------------------------------------------------------------------------------------------------
01227 //--------------------------------------------------------------------------------------------------
01228 bool le_msg_NeedsResponse
01229 (
01230     le_msg_MessageRef_t msgRef      
01231 );
01232 
01233 
01234 //--------------------------------------------------------------------------------------------------
01242 //--------------------------------------------------------------------------------------------------
01243 void* le_msg_GetPayloadPtr
01244 (
01245     le_msg_MessageRef_t msgRef      
01246 );
01247 
01248 
01249 //--------------------------------------------------------------------------------------------------
01255 //--------------------------------------------------------------------------------------------------
01256 size_t le_msg_GetMaxPayloadSize
01257 (
01258     le_msg_MessageRef_t msgRef      
01259 );
01260 
01261 
01262 //--------------------------------------------------------------------------------------------------
01266 //--------------------------------------------------------------------------------------------------
01267 void le_msg_Send
01268 (
01269     le_msg_MessageRef_t msgRef      
01270 );
01271 
01272 
01273 //--------------------------------------------------------------------------------------------------
01279 //--------------------------------------------------------------------------------------------------
01280 le_msg_SessionRef_t le_msg_GetSession
01281 (
01282     le_msg_MessageRef_t msgRef      
01283 );
01284 
01285 
01286 //--------------------------------------------------------------------------------------------------
01299 //--------------------------------------------------------------------------------------------------
01300 void le_msg_RequestResponse
01301 (
01302     le_msg_MessageRef_t         msgRef,     
01303     le_msg_ResponseCallback_t   handlerFunc,
01304     void*                       contextPtr  
01305 );
01306 
01307 
01308 //--------------------------------------------------------------------------------------------------
01335 //--------------------------------------------------------------------------------------------------
01336 le_msg_MessageRef_t le_msg_RequestSyncResponse
01337 (
01338     le_msg_MessageRef_t msgRef      
01339 );
01340 
01341 
01342 //--------------------------------------------------------------------------------------------------
01354 //--------------------------------------------------------------------------------------------------
01355 void le_msg_Respond
01356 (
01357     le_msg_MessageRef_t msgRef      
01358 );
01359 
01360 
01361 // =======================================
01362 //  SERVICE FUNCTIONS
01363 // =======================================
01364 
01365 //--------------------------------------------------------------------------------------------------
01371 //--------------------------------------------------------------------------------------------------
01372 le_msg_ServiceRef_t le_msg_CreateService
01373 (
01374     le_msg_ProtocolRef_t    protocolRef,    
01375     const char*             serviceName     
01376 );
01377 
01378 
01379 //--------------------------------------------------------------------------------------------------
01385 //--------------------------------------------------------------------------------------------------
01386 void le_msg_DeleteService
01387 (
01388     le_msg_ServiceRef_t             serviceRef  
01389 );
01390 
01391 
01392 //--------------------------------------------------------------------------------------------------
01398 //--------------------------------------------------------------------------------------------------
01399 void le_msg_SetServiceOpenHandler
01400 (
01401     le_msg_ServiceRef_t             serviceRef, 
01402     le_msg_SessionEventHandler_t    handlerFunc,
01403     void*                           contextPtr  
01404 );
01405 
01406 
01407 //--------------------------------------------------------------------------------------------------
01414 //--------------------------------------------------------------------------------------------------
01415 void le_msg_SetServiceCloseHandler
01416 (
01417     le_msg_ServiceRef_t             serviceRef, 
01418     le_msg_SessionEventHandler_t    handlerFunc,
01419     void*                           contextPtr  
01420 );
01421 
01422 
01423 //--------------------------------------------------------------------------------------------------
01430 //--------------------------------------------------------------------------------------------------
01431 void le_msg_SetServiceRecvHandler
01432 (
01433     le_msg_ServiceRef_t     serviceRef, 
01434     le_msg_ReceiveHandler_t handlerFunc,
01435     void*                   contextPtr  
01436 );
01437 
01438 
01439 //--------------------------------------------------------------------------------------------------
01446 //--------------------------------------------------------------------------------------------------
01447 void le_msg_SetServiceContextPtr
01448 (
01449     le_msg_ServiceRef_t serviceRef, 
01450 
01451     void*               contextPtr  
01452 
01453 );
01454 
01455 
01456 //--------------------------------------------------------------------------------------------------
01466 //--------------------------------------------------------------------------------------------------
01467 void* le_msg_GetServiceContextPtr
01468 (
01469     le_msg_ServiceRef_t serviceRef  
01470 );
01471 
01472 
01473 //--------------------------------------------------------------------------------------------------
01479 //--------------------------------------------------------------------------------------------------
01480 void le_msg_AdvertiseService
01481 (
01482     le_msg_ServiceRef_t serviceRef  
01483 );
01484 
01485 
01486 //--------------------------------------------------------------------------------------------------
01493 //--------------------------------------------------------------------------------------------------
01494 void le_msg_HideService
01495 (
01496     le_msg_ServiceRef_t serviceRef  
01497 );
01498 
01499 //--------------------------------------------------------------------------------------------------
01507 //--------------------------------------------------------------------------------------------------
01508 const char* le_msg_GetServiceName
01509 (
01510     le_msg_ServiceRef_t serviceRef  
01511 );
01512 
01513 
01514 //--------------------------------------------------------------------------------------------------
01520 //--------------------------------------------------------------------------------------------------
01521 le_msg_ProtocolRef_t le_msg_GetServiceProtocol
01522 (
01523     le_msg_ServiceRef_t serviceRef  
01524 );
01525 
01526 
01527 //--------------------------------------------------------------------------------------------------
01535 //--------------------------------------------------------------------------------------------------
01536 le_msg_MessageRef_t le_msg_GetServiceRxMsg
01537 (
01538     void
01539 );
01540 
01541 
01542 //--------------------------------------------------------------------------------------------------
01549 //--------------------------------------------------------------------------------------------------
01550 #define LE_KILL_CLIENT(formatString, ...)  \
01551 { \
01552     le_msg_MessageRef_t msgRef = le_msg_GetServiceRxMsg(); \
01553     LE_FATAL_IF(msgRef == NULL, formatString, ##__VA_ARGS__); \
01554     LE_EMERG(formatString, ##__VA_ARGS__); \
01555     le_msg_CloseSession(le_msg_GetSession(msgRef)); \
01556 }
01557 
01558 #endif // LEGATO_MESSAGING_INCLUDE_GUARD
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines