All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_eventLoop.h
Go to the documentation of this file.
1 
608 //--------------------------------------------------------------------------------------------------
616 #ifndef LEGATO_EVENTLOOP_INCLUDE_GUARD
617 #define LEGATO_EVENTLOOP_INCLUDE_GUARD
618 
619 
620 //--------------------------------------------------------------------------------------------------
627 //--------------------------------------------------------------------------------------------------
628 typedef struct le_event_Id* le_event_Id_t;
629 
630 
631 //--------------------------------------------------------------------------------------------------
647 //--------------------------------------------------------------------------------------------------
648 
649 #ifdef __cplusplus
650  #define LE_CI_LINKAGE extern "C"
651 #else
652  #define LE_CI_LINKAGE
653 #endif
654 
655 // This macro is set by the build system. However, if it hasn't been set, use a sensible default.
656 #ifndef COMPONENT_INIT
657  #define COMPONENT_INIT LE_CI_LINKAGE void _le_event_InitializeComponent(void)
658 #endif
659 
661 #define LE_EVENT_INIT_HANDLER COMPONENT_INIT
662 
663 
664 //--------------------------------------------------------------------------------------------------
672 //--------------------------------------------------------------------------------------------------
673 typedef void (*le_event_HandlerFunc_t)
674 (
675  void* reportPtr
676 );
677 
678 
679 //--------------------------------------------------------------------------------------------------
690 //--------------------------------------------------------------------------------------------------
691 typedef void (*le_event_LayeredHandlerFunc_t)
692 (
693  void* reportPtr,
694  void* secondLayerFunc
695 );
696 
697 
698 //--------------------------------------------------------------------------------------------------
704 //--------------------------------------------------------------------------------------------------
705 typedef void (*le_event_FdHandlerFunc_t)
706 (
707  int fd
708 );
709 
710 
711 //--------------------------------------------------------------------------------------------------
719 //--------------------------------------------------------------------------------------------------
720 typedef void (*le_event_DeferredFunc_t)
721 (
722  void* param1Ptr,
723  void* param2Ptr
724 );
725 
726 
727 //--------------------------------------------------------------------------------------------------
733 //--------------------------------------------------------------------------------------------------
734 typedef struct le_event_FdMonitor* le_event_FdMonitorRef_t;
735 
736 
737 //--------------------------------------------------------------------------------------------------
744 //--------------------------------------------------------------------------------------------------
745 typedef struct le_event_Handler* le_event_HandlerRef_t;
746 
747 
748 //--------------------------------------------------------------------------------------------------
755 //--------------------------------------------------------------------------------------------------
756 typedef struct le_event_FdHandler* le_event_FdHandlerRef_t;
757 
758 
759 //--------------------------------------------------------------------------------------------------
763 //--------------------------------------------------------------------------------------------------
764 typedef enum
765 {
772 }
774 
775 #define LE_EVENT_NUM_FD_EVENT_TYPES 6
776 
777 
778 //--------------------------------------------------------------------------------------------------
787 //--------------------------------------------------------------------------------------------------
789 (
790  const char* name,
791  size_t payloadSize
792 );
793 
794 
795 //--------------------------------------------------------------------------------------------------
805 //--------------------------------------------------------------------------------------------------
807 (
808  const char* name
809 );
810 
811 
812 //--------------------------------------------------------------------------------------------------
825 //--------------------------------------------------------------------------------------------------
827 (
828  const char* name,
829  le_event_Id_t eventId,
830  le_event_HandlerFunc_t handlerFunc
831 );
832 
833 
834 //--------------------------------------------------------------------------------------------------
849 //--------------------------------------------------------------------------------------------------
851 (
852  const char* name,
853  le_event_Id_t eventId,
854  le_event_LayeredHandlerFunc_t firstLayerFunc,
855  void* secondLayerFunc
856 );
857 
858 
859 //--------------------------------------------------------------------------------------------------
865 //--------------------------------------------------------------------------------------------------
867 (
868  le_event_HandlerRef_t handlerRef
869 );
870 
871 
872 //--------------------------------------------------------------------------------------------------
881 //--------------------------------------------------------------------------------------------------
882 void le_event_Report
883 (
884  le_event_Id_t eventId,
885  void* payloadPtr,
886  size_t payloadSize
887 );
888 
889 
890 //--------------------------------------------------------------------------------------------------
901 //--------------------------------------------------------------------------------------------------
903 (
904  le_event_Id_t eventId,
905  void* objectPtr
906 );
908 
909 
910 //--------------------------------------------------------------------------------------------------
917 //--------------------------------------------------------------------------------------------------
919 (
920  le_event_HandlerRef_t handlerRef,
921  void* contextPtr
922 );
923 
924 
925 //--------------------------------------------------------------------------------------------------
935 //--------------------------------------------------------------------------------------------------
937 (
938  void
939 );
940 
941 
942 //--------------------------------------------------------------------------------------------------
957 //--------------------------------------------------------------------------------------------------
959 (
960  const char* name,
961  int fd
962 );
963 
964 
965 //--------------------------------------------------------------------------------------------------
982 //--------------------------------------------------------------------------------------------------
984 (
985  le_event_FdMonitorRef_t monitorRef,
986  le_event_FdEventType_t eventType,
987  le_event_FdHandlerFunc_t handlerFunc
988 );
989 
990 
991 //--------------------------------------------------------------------------------------------------
996 //--------------------------------------------------------------------------------------------------
998 (
999  le_event_FdHandlerRef_t handlerRef,
1000  void* contextPtr
1001 );
1002 
1003 
1004 //--------------------------------------------------------------------------------------------------
1008 //--------------------------------------------------------------------------------------------------
1010 (
1011  le_event_FdHandlerRef_t handlerRef
1012 );
1013 
1014 
1015 //--------------------------------------------------------------------------------------------------
1019 //--------------------------------------------------------------------------------------------------
1021 (
1022  le_event_FdMonitorRef_t monitorRef,
1023  le_event_FdEventType_t eventType
1024 );
1025 
1026 
1027 //--------------------------------------------------------------------------------------------------
1033 //--------------------------------------------------------------------------------------------------
1035 (
1036  le_event_FdMonitorRef_t monitorRef
1037 );
1038 
1039 
1040 //--------------------------------------------------------------------------------------------------
1045 //--------------------------------------------------------------------------------------------------
1047 (
1049  void* param1Ptr,
1050  void* param2Ptr
1051 );
1052 
1053 
1054 //--------------------------------------------------------------------------------------------------
1059 //--------------------------------------------------------------------------------------------------
1061 (
1062  le_thread_Ref_t thread,
1064  void* param1Ptr,
1065  void* param2Ptr
1066 );
1067 
1068 
1069 //--------------------------------------------------------------------------------------------------
1081 //--------------------------------------------------------------------------------------------------
1082 void le_event_RunLoop
1083 (
1084  void
1085 )
1086 __attribute__ ((noreturn));
1087 
1088 
1089 //--------------------------------------------------------------------------------------------------
1100 //--------------------------------------------------------------------------------------------------
1101 int le_event_GetFd
1102 (
1103  void
1104 );
1105 
1106 
1107 //--------------------------------------------------------------------------------------------------
1122 //--------------------------------------------------------------------------------------------------
1124 (
1125  void
1126 );
1127 
1128 
1129 #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:734
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:766
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:34
Far end shutdown their writing while we were still reading.
Definition: le_eventLoop.h:770
void(* le_event_HandlerFunc_t)(void *reportPtr)
Definition: le_eventLoop.h:674
void le_event_RunLoop(void)
struct le_event_FdHandler * le_event_FdHandlerRef_t
Definition: le_eventLoop.h:756
struct le_event_Id * le_event_Id_t
Definition: le_eventLoop.h:628
le_event_FdEventType_t
Definition: le_eventLoop.h:764
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:769
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:721
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:706
int le_event_GetFd(void)
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:745
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:767
Experienced an error.
Definition: le_eventLoop.h:771
void le_event_ClearFdHandler(le_event_FdHandlerRef_t handlerRef)
void(* le_event_LayeredHandlerFunc_t)(void *reportPtr, void *secondLayerFunc)
Definition: le_eventLoop.h:692
Ready to accept data for writing.
Definition: le_eventLoop.h:768
void le_event_RemoveHandler(le_event_HandlerRef_t handlerRef)