All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_eventLoop.h
Go to the documentation of this file.
1 
610 //--------------------------------------------------------------------------------------------------
618 #ifndef LEGATO_EVENTLOOP_INCLUDE_GUARD
619 #define LEGATO_EVENTLOOP_INCLUDE_GUARD
620 
621 
622 //--------------------------------------------------------------------------------------------------
629 //--------------------------------------------------------------------------------------------------
630 typedef struct le_event_Id* le_event_Id_t;
631 
632 
633 //--------------------------------------------------------------------------------------------------
649 //--------------------------------------------------------------------------------------------------
650 
651 #ifdef __cplusplus
652  #define LE_CI_LINKAGE extern "C"
653 #else
654  #define LE_CI_LINKAGE
655 #endif
656 
657 // This macro is set by the build system. However, if it hasn't been set, use a sensible default.
658 #ifndef COMPONENT_INIT
659  #define COMPONENT_INIT LE_CI_LINKAGE void _le_event_InitializeComponent(void)
660 #endif
661 
663 #define LE_EVENT_INIT_HANDLER COMPONENT_INIT
664 
665 
666 //--------------------------------------------------------------------------------------------------
674 //--------------------------------------------------------------------------------------------------
675 typedef void (*le_event_HandlerFunc_t)
676 (
677  void* reportPtr
678 );
679 
680 
681 //--------------------------------------------------------------------------------------------------
692 //--------------------------------------------------------------------------------------------------
693 typedef void (*le_event_LayeredHandlerFunc_t)
694 (
695  void* reportPtr,
696  void* secondLayerFunc
697 );
698 
699 
700 //--------------------------------------------------------------------------------------------------
706 //--------------------------------------------------------------------------------------------------
707 typedef void (*le_event_FdHandlerFunc_t)
708 (
709  int fd
710 );
711 
712 
713 //--------------------------------------------------------------------------------------------------
721 //--------------------------------------------------------------------------------------------------
722 typedef void (*le_event_DeferredFunc_t)
723 (
724  void* param1Ptr,
725  void* param2Ptr
726 );
727 
728 
729 //--------------------------------------------------------------------------------------------------
735 //--------------------------------------------------------------------------------------------------
736 typedef struct le_event_FdMonitor* le_event_FdMonitorRef_t;
737 
738 
739 //--------------------------------------------------------------------------------------------------
746 //--------------------------------------------------------------------------------------------------
747 typedef struct le_event_Handler* le_event_HandlerRef_t;
748 
749 
750 //--------------------------------------------------------------------------------------------------
757 //--------------------------------------------------------------------------------------------------
758 typedef struct le_event_FdHandler* le_event_FdHandlerRef_t;
759 
760 
761 //--------------------------------------------------------------------------------------------------
765 //--------------------------------------------------------------------------------------------------
766 typedef enum
767 {
774 }
776 
777 #define LE_EVENT_NUM_FD_EVENT_TYPES 6
778 
779 
780 //--------------------------------------------------------------------------------------------------
789 //--------------------------------------------------------------------------------------------------
791 (
792  const char* name,
793  size_t payloadSize
794 );
795 
796 
797 //--------------------------------------------------------------------------------------------------
807 //--------------------------------------------------------------------------------------------------
809 (
810  const char* name
811 );
812 
813 
814 //--------------------------------------------------------------------------------------------------
827 //--------------------------------------------------------------------------------------------------
829 (
830  const char* name,
831  le_event_Id_t eventId,
832  le_event_HandlerFunc_t handlerFunc
833 );
834 
835 
836 //--------------------------------------------------------------------------------------------------
851 //--------------------------------------------------------------------------------------------------
853 (
854  const char* name,
855  le_event_Id_t eventId,
856  le_event_LayeredHandlerFunc_t firstLayerFunc,
857  void* secondLayerFunc
858 );
859 
860 
861 //--------------------------------------------------------------------------------------------------
867 //--------------------------------------------------------------------------------------------------
869 (
870  le_event_HandlerRef_t handlerRef
871 );
872 
873 
874 //--------------------------------------------------------------------------------------------------
883 //--------------------------------------------------------------------------------------------------
884 void le_event_Report
885 (
886  le_event_Id_t eventId,
887  void* payloadPtr,
888  size_t payloadSize
889 );
890 
891 
892 //--------------------------------------------------------------------------------------------------
903 //--------------------------------------------------------------------------------------------------
905 (
906  le_event_Id_t eventId,
907  void* objectPtr
908 );
910 
911 
912 //--------------------------------------------------------------------------------------------------
919 //--------------------------------------------------------------------------------------------------
921 (
922  le_event_HandlerRef_t handlerRef,
923  void* contextPtr
924 );
925 
926 
927 //--------------------------------------------------------------------------------------------------
937 //--------------------------------------------------------------------------------------------------
939 (
940  void
941 );
942 
943 
944 //--------------------------------------------------------------------------------------------------
959 //--------------------------------------------------------------------------------------------------
961 (
962  const char* name,
963  int fd
964 );
965 
966 
967 //--------------------------------------------------------------------------------------------------
984 //--------------------------------------------------------------------------------------------------
986 (
987  le_event_FdMonitorRef_t monitorRef,
988  le_event_FdEventType_t eventType,
989  le_event_FdHandlerFunc_t handlerFunc
990 );
991 
992 
993 //--------------------------------------------------------------------------------------------------
999 //--------------------------------------------------------------------------------------------------
1000 void le_event_WakeUp
1001 (
1002  le_event_FdMonitorRef_t monitorRef,
1003  bool wakeUp
1004 );
1005 
1006 
1007 //--------------------------------------------------------------------------------------------------
1012 //--------------------------------------------------------------------------------------------------
1014 (
1015  le_event_FdHandlerRef_t handlerRef,
1016  void* contextPtr
1017 );
1018 
1019 
1020 //--------------------------------------------------------------------------------------------------
1024 //--------------------------------------------------------------------------------------------------
1026 (
1027  le_event_FdHandlerRef_t handlerRef
1028 );
1029 
1030 
1031 //--------------------------------------------------------------------------------------------------
1035 //--------------------------------------------------------------------------------------------------
1037 (
1038  le_event_FdMonitorRef_t monitorRef,
1039  le_event_FdEventType_t eventType
1040 );
1041 
1042 
1043 //--------------------------------------------------------------------------------------------------
1049 //--------------------------------------------------------------------------------------------------
1051 (
1052  le_event_FdMonitorRef_t monitorRef
1053 );
1054 
1055 
1056 //--------------------------------------------------------------------------------------------------
1061 //--------------------------------------------------------------------------------------------------
1063 (
1065  void* param1Ptr,
1066  void* param2Ptr
1067 );
1068 
1069 
1070 //--------------------------------------------------------------------------------------------------
1075 //--------------------------------------------------------------------------------------------------
1077 (
1078  le_thread_Ref_t thread,
1080  void* param1Ptr,
1081  void* param2Ptr
1082 );
1083 
1084 
1085 //--------------------------------------------------------------------------------------------------
1097 //--------------------------------------------------------------------------------------------------
1098 void le_event_RunLoop
1099 (
1100  void
1101 )
1102 __attribute__ ((noreturn));
1103 
1104 
1105 //--------------------------------------------------------------------------------------------------
1116 //--------------------------------------------------------------------------------------------------
1117 int le_event_GetFd
1118 (
1119  void
1120 );
1121 
1122 
1123 //--------------------------------------------------------------------------------------------------
1138 //--------------------------------------------------------------------------------------------------
1140 (
1141  void
1142 );
1143 
1144 
1145 #endif // LEGATO_EVENTLOOP_INCLUDE_GUARD
struct le_thread * le_thread_Ref_t
Definition: le_thread.h:176
struct le_event_FdMonitor * le_event_FdMonitorRef_t
Definition: le_eventLoop.h:736
void le_event_ClearFdHandlerByEventType(le_event_FdMonitorRef_t monitorRef, le_event_FdEventType_t eventType)
void le_event_ReportWithRefCounting(le_event_Id_t eventId, void *objectPtr)
Data is available for reading.
Definition: le_eventLoop.h:768
le_event_FdHandlerRef_t le_event_SetFdHandler(le_event_FdMonitorRef_t monitorRef, le_event_FdEventType_t eventType, le_event_FdHandlerFunc_t handlerFunc)
le_result_t
Definition: le_basics.h:35
Far end shutdown their writing while we were still reading.
Definition: le_eventLoop.h:772
void(* le_event_HandlerFunc_t)(void *reportPtr)
Definition: le_eventLoop.h:676
void le_event_RunLoop(void)
struct le_event_FdHandler * le_event_FdHandlerRef_t
Definition: le_eventLoop.h:758
struct le_event_Id * le_event_Id_t
Definition: le_eventLoop.h:630
le_event_FdEventType_t
Definition: le_eventLoop.h:766
le_result_t le_event_ServiceLoop(void)
void le_event_DeleteFdMonitor(le_event_FdMonitorRef_t monitorRef)
le_event_Id_t le_event_CreateIdWithRefCounting(const char *name)
Far end shutdown their reading while we were still writing.
Definition: le_eventLoop.h:771
void le_event_Report(le_event_Id_t eventId, void *payloadPtr, size_t payloadSize)
void(* le_event_DeferredFunc_t)(void *param1Ptr, void *param2Ptr)
Definition: le_eventLoop.h:723
le_event_FdMonitorRef_t le_event_CreateFdMonitor(const char *name, int fd)
void le_event_SetContextPtr(le_event_HandlerRef_t handlerRef, void *contextPtr)
le_event_HandlerRef_t le_event_AddLayeredHandler(const char *name, le_event_Id_t eventId, le_event_LayeredHandlerFunc_t firstLayerFunc, void *secondLayerFunc)
void le_event_SetFdHandlerContextPtr(le_event_FdHandlerRef_t handlerRef, void *contextPtr)
void(* le_event_FdHandlerFunc_t)(int fd)
Definition: le_eventLoop.h:708
int le_event_GetFd(void)
void le_event_WakeUp(le_event_FdMonitorRef_t monitorRef, bool wakeUp)
le_event_HandlerRef_t le_event_AddHandler(const char *name, le_event_Id_t eventId, le_event_HandlerFunc_t handlerFunc)
void le_event_QueueFunction(le_event_DeferredFunc_t func, void *param1Ptr, void *param2Ptr)
struct le_event_Handler * le_event_HandlerRef_t
Definition: le_eventLoop.h:747
void * le_event_GetContextPtr(void)
le_event_Id_t le_event_CreateId(const char *name, size_t payloadSize)
void le_event_QueueFunctionToThread(le_thread_Ref_t thread, le_event_DeferredFunc_t func, void *param1Ptr, void *param2Ptr)
Urgent/out-of-band data is available for reading.
Definition: le_eventLoop.h:769
Experienced an error.
Definition: le_eventLoop.h:773
void le_event_ClearFdHandler(le_event_FdHandlerRef_t handlerRef)
void(* le_event_LayeredHandlerFunc_t)(void *reportPtr, void *secondLayerFunc)
Definition: le_eventLoop.h:694
Ready to accept data for writing.
Definition: le_eventLoop.h:770
void le_event_RemoveHandler(le_event_HandlerRef_t handlerRef)