All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_messaging.h
Go to the documentation of this file.
1 
808 #ifndef LE_MESSAGING_H_INCLUDE_GUARD
809 #define LE_MESSAGING_H_INCLUDE_GUARD
810 
811 // =======================================
812 // DATA TYPES
813 // =======================================
814 
815 //--------------------------------------------------------------------------------------------------
819 //--------------------------------------------------------------------------------------------------
820 typedef struct le_msg_Protocol* le_msg_ProtocolRef_t;
821 
822 //--------------------------------------------------------------------------------------------------
826 //--------------------------------------------------------------------------------------------------
827 typedef struct le_msg_Service* le_msg_ServiceRef_t;
828 
829 //--------------------------------------------------------------------------------------------------
833 //--------------------------------------------------------------------------------------------------
834 typedef struct le_msg_Session* le_msg_SessionRef_t;
835 
836 //--------------------------------------------------------------------------------------------------
840 //--------------------------------------------------------------------------------------------------
841 typedef struct le_msg_Message* le_msg_MessageRef_t;
842 
843 //--------------------------------------------------------------------------------------------------
847 //--------------------------------------------------------------------------------------------------
848 typedef struct le_msg_SessionEventHandler* le_msg_SessionEventHandlerRef_t;
849 
850 //--------------------------------------------------------------------------------------------------
861 //--------------------------------------------------------------------------------------------------
862 typedef void (* le_msg_SessionEventHandler_t)
863 (
864  le_msg_SessionRef_t sessionRef,
865  void* contextPtr
866 );
867 
868 
869 //--------------------------------------------------------------------------------------------------
880 //--------------------------------------------------------------------------------------------------
881 typedef void (* le_msg_ReceiveHandler_t)
882 (
883  le_msg_MessageRef_t msgRef,
884  void* contextPtr
885 );
886 
887 
888 //--------------------------------------------------------------------------------------------------
900 //--------------------------------------------------------------------------------------------------
901 typedef void (* le_msg_ResponseCallback_t)
902 (
903  le_msg_MessageRef_t msgRef,
904  void* contextPtr
905 );
906 
907 
908 // =======================================
909 // PROTOCOL FUNCTIONS
910 // =======================================
911 
912 //--------------------------------------------------------------------------------------------------
920 //--------------------------------------------------------------------------------------------------
922 (
923  const char* protocolId,
924  size_t largestMsgSize
925 );
926 
927 
928 //--------------------------------------------------------------------------------------------------
934 //--------------------------------------------------------------------------------------------------
935 const char* le_msg_GetProtocolIdStr
936 (
937  le_msg_ProtocolRef_t protocolRef
938 );
939 
940 
941 //--------------------------------------------------------------------------------------------------
947 //--------------------------------------------------------------------------------------------------
949 (
950  le_msg_ProtocolRef_t protocolRef
951 );
952 
953 
954 // =======================================
955 // SESSION FUNCTIONS
956 // =======================================
957 
958 //--------------------------------------------------------------------------------------------------
968 //--------------------------------------------------------------------------------------------------
970 (
971  le_msg_ProtocolRef_t protocolRef,
972  const char* serviceName
973 );
974 
975 
976 //--------------------------------------------------------------------------------------------------
981 //--------------------------------------------------------------------------------------------------
983 (
984  le_msg_SessionRef_t sessionRef,
985 
986  void* contextPtr
987 );
989 
990 //--------------------------------------------------------------------------------------------------
998 //--------------------------------------------------------------------------------------------------
1000 (
1001  le_msg_SessionRef_t sessionRef
1002 );
1003 
1004 
1005 //--------------------------------------------------------------------------------------------------
1014 //--------------------------------------------------------------------------------------------------
1016 (
1017  le_msg_SessionRef_t sessionRef
1018 );
1019 
1020 
1021 //--------------------------------------------------------------------------------------------------
1034 //--------------------------------------------------------------------------------------------------
1036 (
1037  le_msg_SessionRef_t sessionRef,
1038  le_msg_ReceiveHandler_t handlerFunc,
1039  void* contextPtr
1040 );
1041 
1042 
1043 //--------------------------------------------------------------------------------------------------
1060 //--------------------------------------------------------------------------------------------------
1062 (
1063  le_msg_SessionRef_t sessionRef,
1064  le_msg_SessionEventHandler_t handlerFunc,
1065  void* contextPtr
1066 );
1067 
1068 
1069 //--------------------------------------------------------------------------------------------------
1081 //--------------------------------------------------------------------------------------------------
1082 void le_msg_OpenSession
1083 (
1084  le_msg_SessionRef_t sessionRef,
1085  le_msg_SessionEventHandler_t callbackFunc,
1086  void* contextPtr
1088 );
1089 
1090 
1091 //--------------------------------------------------------------------------------------------------
1105 //--------------------------------------------------------------------------------------------------
1107 (
1108  le_msg_SessionRef_t sessionRef
1109 );
1110 
1111 
1112 //--------------------------------------------------------------------------------------------------
1116 //--------------------------------------------------------------------------------------------------
1118 (
1119  le_msg_SessionRef_t sessionRef
1120 );
1121 
1122 
1123 //--------------------------------------------------------------------------------------------------
1129 //--------------------------------------------------------------------------------------------------
1131 (
1132  le_msg_SessionRef_t sessionRef
1133 );
1134 
1135 
1136 //--------------------------------------------------------------------------------------------------
1142 //--------------------------------------------------------------------------------------------------
1144 (
1145  le_msg_SessionRef_t sessionRef
1146 );
1147 
1148 //--------------------------------------------------------------------------------------------------
1157 //--------------------------------------------------------------------------------------------------
1159 (
1160  le_msg_SessionRef_t sessionRef,
1161  uid_t* userIdPtr
1162 );
1163 //--------------------------------------------------------------------------------------------------
1172 //--------------------------------------------------------------------------------------------------
1174 (
1175  le_msg_SessionRef_t sessionRef,
1176  pid_t* processIdPtr
1177 );
1178 
1179 //--------------------------------------------------------------------------------------------------
1188 //--------------------------------------------------------------------------------------------------
1190 (
1191  le_msg_SessionRef_t sessionRef,
1192  uid_t* userIdPtr,
1193  pid_t* processIdPtr
1194 );
1195 
1196 
1197 
1198 // =======================================
1199 // MESSAGE FUNCTIONS
1200 // =======================================
1201 
1202 //--------------------------------------------------------------------------------------------------
1213 //--------------------------------------------------------------------------------------------------
1215 (
1216  le_msg_SessionRef_t sessionRef
1217 );
1218 
1219 
1220 //--------------------------------------------------------------------------------------------------
1224 //--------------------------------------------------------------------------------------------------
1225 void le_msg_AddRef
1226 (
1227  le_msg_MessageRef_t msgRef
1228 );
1229 
1230 
1231 //--------------------------------------------------------------------------------------------------
1236 //--------------------------------------------------------------------------------------------------
1237 void le_msg_ReleaseMsg
1238 (
1239  le_msg_MessageRef_t msgRef
1240 );
1241 
1242 
1243 //--------------------------------------------------------------------------------------------------
1254 //--------------------------------------------------------------------------------------------------
1256 (
1257  le_msg_MessageRef_t msgRef
1258 );
1259 
1260 
1261 //--------------------------------------------------------------------------------------------------
1269 //--------------------------------------------------------------------------------------------------
1271 (
1272  le_msg_MessageRef_t msgRef
1273 );
1274 
1275 
1276 //--------------------------------------------------------------------------------------------------
1282 //--------------------------------------------------------------------------------------------------
1284 (
1285  le_msg_MessageRef_t msgRef
1286 );
1287 
1288 
1289 //--------------------------------------------------------------------------------------------------
1298 //--------------------------------------------------------------------------------------------------
1299 void le_msg_SetFd
1300 (
1301  le_msg_MessageRef_t msgRef,
1302  int fd
1303 );
1304 
1305 
1306 //--------------------------------------------------------------------------------------------------
1313 //--------------------------------------------------------------------------------------------------
1314 int le_msg_GetFd
1315 (
1316  le_msg_MessageRef_t msgRef
1317 );
1318 
1319 
1320 //--------------------------------------------------------------------------------------------------
1324 //--------------------------------------------------------------------------------------------------
1325 void le_msg_Send
1326 (
1327  le_msg_MessageRef_t msgRef
1328 );
1329 
1330 
1331 //--------------------------------------------------------------------------------------------------
1337 //--------------------------------------------------------------------------------------------------
1339 (
1340  le_msg_MessageRef_t msgRef
1341 );
1342 
1343 
1344 //--------------------------------------------------------------------------------------------------
1357 //--------------------------------------------------------------------------------------------------
1359 (
1360  le_msg_MessageRef_t msgRef,
1361  le_msg_ResponseCallback_t handlerFunc,
1362  void* contextPtr
1363 );
1364 
1365 
1366 //--------------------------------------------------------------------------------------------------
1393 //--------------------------------------------------------------------------------------------------
1395 (
1396  le_msg_MessageRef_t msgRef
1397 );
1398 
1399 
1400 //--------------------------------------------------------------------------------------------------
1412 //--------------------------------------------------------------------------------------------------
1413 void le_msg_Respond
1414 (
1415  le_msg_MessageRef_t msgRef
1416 );
1417 
1418 
1419 // =======================================
1420 // SERVICE FUNCTIONS
1421 // =======================================
1422 
1423 //--------------------------------------------------------------------------------------------------
1429 //--------------------------------------------------------------------------------------------------
1431 (
1432  le_msg_ProtocolRef_t protocolRef,
1433  const char* serviceName
1434 );
1435 
1436 
1437 //--------------------------------------------------------------------------------------------------
1443 //--------------------------------------------------------------------------------------------------
1445 (
1446  le_msg_ServiceRef_t serviceRef
1447 );
1448 
1449 //--------------------------------------------------------------------------------------------------
1455 //--------------------------------------------------------------------------------------------------
1457 (
1458  le_msg_ServiceRef_t serviceRef,
1459  le_msg_SessionEventHandler_t handlerFunc,
1460  void* contextPtr
1461 );
1462 
1463 //--------------------------------------------------------------------------------------------------
1470 //--------------------------------------------------------------------------------------------------
1472 (
1473  le_msg_ServiceRef_t serviceRef,
1474  le_msg_SessionEventHandler_t handlerFunc,
1475  void* contextPtr
1476 );
1477 
1478 //--------------------------------------------------------------------------------------------------
1485 //--------------------------------------------------------------------------------------------------
1487 (
1489 );
1491 
1492 //--------------------------------------------------------------------------------------------------
1499 //--------------------------------------------------------------------------------------------------
1501 (
1502  le_msg_ServiceRef_t serviceRef,
1503  le_msg_ReceiveHandler_t handlerFunc,
1504  void* contextPtr
1505 );
1506 
1507 
1508 //--------------------------------------------------------------------------------------------------
1515 //--------------------------------------------------------------------------------------------------
1517 (
1518  le_msg_ServiceRef_t serviceRef,
1519 
1520  void* contextPtr
1521 );
1523 
1524 
1525 //--------------------------------------------------------------------------------------------------
1535 //--------------------------------------------------------------------------------------------------
1537 (
1538  le_msg_ServiceRef_t serviceRef
1539 );
1540 
1541 
1542 //--------------------------------------------------------------------------------------------------
1548 //--------------------------------------------------------------------------------------------------
1550 (
1551  le_msg_ServiceRef_t serviceRef
1552 );
1553 
1554 
1555 //--------------------------------------------------------------------------------------------------
1562 //--------------------------------------------------------------------------------------------------
1563 void le_msg_HideService
1564 (
1565  le_msg_ServiceRef_t serviceRef
1566 );
1567 
1568 //--------------------------------------------------------------------------------------------------
1576 //--------------------------------------------------------------------------------------------------
1577 const char* le_msg_GetServiceName
1578 (
1579  le_msg_ServiceRef_t serviceRef
1580 );
1581 
1582 
1583 //--------------------------------------------------------------------------------------------------
1589 //--------------------------------------------------------------------------------------------------
1591 (
1592  le_msg_ServiceRef_t serviceRef
1593 );
1594 
1595 
1596 //--------------------------------------------------------------------------------------------------
1604 //--------------------------------------------------------------------------------------------------
1606 (
1607  void
1608 );
1609 
1610 
1611 //--------------------------------------------------------------------------------------------------
1618 //--------------------------------------------------------------------------------------------------
1619 #define LE_KILL_CLIENT(formatString, ...) \
1620 { \
1621  le_msg_MessageRef_t msgRef = le_msg_GetServiceRxMsg(); \
1622  LE_FATAL_IF(msgRef == NULL, formatString, ##__VA_ARGS__); \
1623  LE_EMERG(formatString, ##__VA_ARGS__); \
1624  le_msg_CloseSession(le_msg_GetSession(msgRef)); \
1625 }
1626 
1627 #endif // LEGATO_MESSAGING_INCLUDE_GUARD
le_msg_MessageRef_t le_msg_GetServiceRxMsg(void)
void le_msg_AddRef(le_msg_MessageRef_t msgRef)
le_msg_ProtocolRef_t le_msg_GetProtocolRef(const char *protocolId, size_t largestMsgSize)
bool le_msg_NeedsResponse(le_msg_MessageRef_t msgRef)
size_t le_msg_GetProtocolMaxMsgSize(le_msg_ProtocolRef_t protocolRef)
void le_msg_ReleaseMsg(le_msg_MessageRef_t msgRef)
le_result_t le_msg_GetClientUserCreds(le_msg_SessionRef_t sessionRef, uid_t *userIdPtr, pid_t *processIdPtr)
void(* le_msg_SessionEventHandler_t)(le_msg_SessionRef_t sessionRef, void *contextPtr)
Definition: le_messaging.h:863
le_result_t
Definition: le_basics.h:34
void * le_msg_GetServiceContextPtr(le_msg_ServiceRef_t serviceRef)
le_msg_SessionRef_t le_msg_CreateSession(le_msg_ProtocolRef_t protocolRef, const char *serviceName)
void le_msg_SetServiceRecvHandler(le_msg_ServiceRef_t serviceRef, le_msg_ReceiveHandler_t handlerFunc, void *contextPtr)
void * le_msg_GetSessionContextPtr(le_msg_SessionRef_t sessionRef)
void le_msg_AdvertiseService(le_msg_ServiceRef_t serviceRef)
void le_msg_DeleteSession(le_msg_SessionRef_t sessionRef)
const char * le_msg_GetProtocolIdStr(le_msg_ProtocolRef_t protocolRef)
void le_msg_SetSessionRecvHandler(le_msg_SessionRef_t sessionRef, le_msg_ReceiveHandler_t handlerFunc, void *contextPtr)
void * le_msg_GetPayloadPtr(le_msg_MessageRef_t msgRef)
size_t le_msg_GetMaxPayloadSize(le_msg_MessageRef_t msgRef)
le_msg_SessionRef_t le_msg_GetSession(le_msg_MessageRef_t msgRef)
void le_msg_SetFd(le_msg_MessageRef_t msgRef, int fd)
void le_msg_Send(le_msg_MessageRef_t msgRef)
le_msg_ServiceRef_t le_msg_GetSessionService(le_msg_SessionRef_t sessionRef)
struct le_msg_SessionEventHandler * le_msg_SessionEventHandlerRef_t
Definition: le_messaging.h:848
void le_msg_CloseSession(le_msg_SessionRef_t sessionRef)
void le_msg_DeleteService(le_msg_ServiceRef_t serviceRef)
le_msg_MessageRef_t le_msg_CreateMsg(le_msg_SessionRef_t sessionRef)
le_msg_SessionEventHandlerRef_t le_msg_AddServiceOpenHandler(le_msg_ServiceRef_t serviceRef, le_msg_SessionEventHandler_t handlerFunc, void *contextPtr)
int le_msg_GetFd(le_msg_MessageRef_t msgRef)
struct le_msg_Session * le_msg_SessionRef_t
Definition: le_messaging.h:834
void le_msg_RequestResponse(le_msg_MessageRef_t msgRef, le_msg_ResponseCallback_t handlerFunc, void *contextPtr)
void le_msg_RemoveServiceHandler(le_msg_SessionEventHandlerRef_t handlerRef)
void le_msg_HideService(le_msg_ServiceRef_t serviceRef)
void le_msg_SetSessionContextPtr(le_msg_SessionRef_t sessionRef, void *contextPtr)
const char * le_msg_GetServiceName(le_msg_ServiceRef_t serviceRef)
le_result_t le_msg_GetClientProcessId(le_msg_SessionRef_t sessionRef, pid_t *processIdPtr)
void le_msg_OpenSession(le_msg_SessionRef_t sessionRef, le_msg_SessionEventHandler_t callbackFunc, void *contextPtr)
void le_msg_SetServiceContextPtr(le_msg_ServiceRef_t serviceRef, void *contextPtr)
le_msg_ProtocolRef_t le_msg_GetSessionProtocol(le_msg_SessionRef_t sessionRef)
void le_msg_Respond(le_msg_MessageRef_t msgRef)
struct le_msg_Protocol * le_msg_ProtocolRef_t
Definition: le_messaging.h:820
le_result_t le_msg_GetClientUserId(le_msg_SessionRef_t sessionRef, uid_t *userIdPtr)
le_msg_MessageRef_t le_msg_RequestSyncResponse(le_msg_MessageRef_t msgRef)
void le_msg_OpenSessionSync(le_msg_SessionRef_t sessionRef)
struct le_msg_Message * le_msg_MessageRef_t
Definition: le_messaging.h:841
le_msg_ServiceRef_t le_msg_CreateService(le_msg_ProtocolRef_t protocolRef, const char *serviceName)
void(* le_msg_ResponseCallback_t)(le_msg_MessageRef_t msgRef, void *contextPtr)
Definition: le_messaging.h:902
void(* le_msg_ReceiveHandler_t)(le_msg_MessageRef_t msgRef, void *contextPtr)
Definition: le_messaging.h:882
struct le_msg_Service * le_msg_ServiceRef_t
Definition: le_messaging.h:827
le_msg_ProtocolRef_t le_msg_GetServiceProtocol(le_msg_ServiceRef_t serviceRef)
le_msg_SessionEventHandlerRef_t le_msg_AddServiceCloseHandler(le_msg_ServiceRef_t serviceRef, le_msg_SessionEventHandler_t handlerFunc, void *contextPtr)
void le_msg_SetSessionCloseHandler(le_msg_SessionRef_t sessionRef, le_msg_SessionEventHandler_t handlerFunc, void *contextPtr)