All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_eventLoop.h
Go to the documentation of this file.
1 
601 //--------------------------------------------------------------------------------------------------
609 #ifndef LEGATO_EVENTLOOP_INCLUDE_GUARD
610 #define LEGATO_EVENTLOOP_INCLUDE_GUARD
611 
612 
613 //--------------------------------------------------------------------------------------------------
620 //--------------------------------------------------------------------------------------------------
621 typedef struct le_event_Id* le_event_Id_t;
622 
623 
624 //--------------------------------------------------------------------------------------------------
640 //--------------------------------------------------------------------------------------------------
641 
642 #ifdef __cplusplus
643  #define LE_CI_LINKAGE extern "C"
644 #else
645  #define LE_CI_LINKAGE
646 #endif
647 
648 // This macro is set by the build system. However, if it hasn't been set, use a sensible default.
649 #ifndef COMPONENT_INIT
650 
653  #define COMPONENT_INIT LE_CI_LINKAGE void _le_event_InitializeComponent(void)
654 #endif
655 
657 #define LE_EVENT_INIT_HANDLER COMPONENT_INIT
658 
659 
660 //--------------------------------------------------------------------------------------------------
668 //--------------------------------------------------------------------------------------------------
669 typedef void (*le_event_HandlerFunc_t)
670 (
671  void* reportPtr
672 );
673 
674 
675 //--------------------------------------------------------------------------------------------------
686 //--------------------------------------------------------------------------------------------------
687 typedef void (*le_event_LayeredHandlerFunc_t)
688 (
689  void* reportPtr,
690  void* secondLayerFunc
691 );
692 
693 
694 //--------------------------------------------------------------------------------------------------
700 //--------------------------------------------------------------------------------------------------
701 typedef void (*le_event_FdHandlerFunc_t)
702 (
703  int fd
704 );
705 
706 
707 //--------------------------------------------------------------------------------------------------
715 //--------------------------------------------------------------------------------------------------
716 typedef void (*le_event_DeferredFunc_t)
717 (
718  void* param1Ptr,
719  void* param2Ptr
720 );
721 
722 
723 //--------------------------------------------------------------------------------------------------
729 //--------------------------------------------------------------------------------------------------
730 typedef struct le_event_FdMonitor* le_event_FdMonitorRef_t;
731 
732 
733 //--------------------------------------------------------------------------------------------------
740 //--------------------------------------------------------------------------------------------------
741 typedef struct le_event_Handler* le_event_HandlerRef_t;
742 
743 
744 //--------------------------------------------------------------------------------------------------
751 //--------------------------------------------------------------------------------------------------
752 typedef struct le_event_FdHandler* le_event_FdHandlerRef_t;
753 
754 
755 //--------------------------------------------------------------------------------------------------
759 //--------------------------------------------------------------------------------------------------
760 typedef enum
761 {
768 }
770 
771 #define LE_EVENT_NUM_FD_EVENT_TYPES 6
772 
773 
774 //--------------------------------------------------------------------------------------------------
783 //--------------------------------------------------------------------------------------------------
785 (
786  const char* name,
787  size_t payloadSize
788 );
789 
790 
791 //--------------------------------------------------------------------------------------------------
801 //--------------------------------------------------------------------------------------------------
803 (
804  const char* name
805 );
806 
807 
808 //--------------------------------------------------------------------------------------------------
821 //--------------------------------------------------------------------------------------------------
823 (
824  const char* name,
825  le_event_Id_t eventId,
826  le_event_HandlerFunc_t handlerFunc
827 );
828 
829 
830 //--------------------------------------------------------------------------------------------------
845 //--------------------------------------------------------------------------------------------------
847 (
848  const char* name,
849  le_event_Id_t eventId,
850  le_event_LayeredHandlerFunc_t firstLayerFunc,
851  void* secondLayerFunc
852 );
853 
854 
855 //--------------------------------------------------------------------------------------------------
861 //--------------------------------------------------------------------------------------------------
863 (
864  le_event_HandlerRef_t handlerRef
865 );
866 
867 
868 //--------------------------------------------------------------------------------------------------
877 //--------------------------------------------------------------------------------------------------
878 void le_event_Report
879 (
880  le_event_Id_t eventId,
881  void* payloadPtr,
882  size_t payloadSize
883 );
884 
885 
886 //--------------------------------------------------------------------------------------------------
897 //--------------------------------------------------------------------------------------------------
899 (
900  le_event_Id_t eventId,
901  void* objectPtr
902 );
904 
905 
906 //--------------------------------------------------------------------------------------------------
913 //--------------------------------------------------------------------------------------------------
915 (
916  le_event_HandlerRef_t handlerRef,
917  void* contextPtr
918 );
919 
920 
921 //--------------------------------------------------------------------------------------------------
931 //--------------------------------------------------------------------------------------------------
933 (
934  void
935 );
936 
937 
938 //--------------------------------------------------------------------------------------------------
953 //--------------------------------------------------------------------------------------------------
955 (
956  const char* name,
957  int fd
958 );
959 
960 
961 //--------------------------------------------------------------------------------------------------
978 //--------------------------------------------------------------------------------------------------
980 (
981  le_event_FdMonitorRef_t monitorRef,
982  le_event_FdEventType_t eventType,
983  le_event_FdHandlerFunc_t handlerFunc
984 );
985 
986 
987 //--------------------------------------------------------------------------------------------------
993 //--------------------------------------------------------------------------------------------------
994 void le_event_WakeUp
995 (
996  le_event_FdMonitorRef_t monitorRef,
997  bool wakeUp
998 );
999 
1000 
1001 //--------------------------------------------------------------------------------------------------
1006 //--------------------------------------------------------------------------------------------------
1008 (
1009  le_event_FdHandlerRef_t handlerRef,
1010  void* contextPtr
1011 );
1012 
1013 
1014 //--------------------------------------------------------------------------------------------------
1018 //--------------------------------------------------------------------------------------------------
1020 (
1021  le_event_FdHandlerRef_t handlerRef
1022 );
1023 
1024 
1025 //--------------------------------------------------------------------------------------------------
1029 //--------------------------------------------------------------------------------------------------
1031 (
1032  le_event_FdMonitorRef_t monitorRef,
1033  le_event_FdEventType_t eventType
1034 );
1035 
1036 
1037 //--------------------------------------------------------------------------------------------------
1043 //--------------------------------------------------------------------------------------------------
1045 (
1046  le_event_FdMonitorRef_t monitorRef
1047 );
1048 
1049 
1050 //--------------------------------------------------------------------------------------------------
1055 //--------------------------------------------------------------------------------------------------
1057 (
1059  void* param1Ptr,
1060  void* param2Ptr
1061 );
1062 
1063 
1064 //--------------------------------------------------------------------------------------------------
1069 //--------------------------------------------------------------------------------------------------
1071 (
1072  le_thread_Ref_t thread,
1074  void* param1Ptr,
1075  void* param2Ptr
1076 );
1077 
1078 
1079 //--------------------------------------------------------------------------------------------------
1091 //--------------------------------------------------------------------------------------------------
1092 void le_event_RunLoop
1093 (
1094  void
1095 )
1096 __attribute__ ((noreturn));
1097 
1098 
1099 //--------------------------------------------------------------------------------------------------
1110 //--------------------------------------------------------------------------------------------------
1111 int le_event_GetFd
1112 (
1113  void
1114 );
1115 
1116 
1117 //--------------------------------------------------------------------------------------------------
1132 //--------------------------------------------------------------------------------------------------
1134 (
1135  void
1136 );
1137 
1138 
1139 #endif // LEGATO_EVENTLOOP_INCLUDE_GUARD
struct le_thread * le_thread_Ref_t
Definition: le_thread.h:167
struct le_event_FdMonitor * le_event_FdMonitorRef_t
Definition: le_eventLoop.h:730
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:762
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:766
void(* le_event_HandlerFunc_t)(void *reportPtr)
Definition: le_eventLoop.h:670
void le_event_RunLoop(void)
struct le_event_FdHandler * le_event_FdHandlerRef_t
Definition: le_eventLoop.h:752
struct le_event_Id * le_event_Id_t
Definition: le_eventLoop.h:621
le_event_FdEventType_t
Definition: le_eventLoop.h:760
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:765
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:717
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:702
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:741
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:763
Experienced an error.
Definition: le_eventLoop.h:767
void le_event_ClearFdHandler(le_event_FdHandlerRef_t handlerRef)
void(* le_event_LayeredHandlerFunc_t)(void *reportPtr, void *secondLayerFunc)
Definition: le_eventLoop.h:688
Ready to accept data for writing.
Definition: le_eventLoop.h:764
void le_event_RemoveHandler(le_event_HandlerRef_t handlerRef)