16 #ifndef C4INTERACTIVETHREAD_H
17 #define C4INTERACTIVETHREAD_H
54 bool Execute(
int iTimeout, pollfd * readyfds)
override;
88 Event *pFirstEvent, *pLastEvent;
89 CStdCSec EventPushCSec, EventPopCSec;
92 Callback *pCallbacks[
Ev_Last + 1];
113 template<typename RType =
void, typename Functor>
121 { pCallbacks[eEvent] = pnNetworkCallback; }
123 {
if (pCallbacks[eEvent] == pnNetworkCallback) pCallbacks[eEvent] =
nullptr; }
virtual ~Callback()=default
virtual void OnThreadEvent(C4InteractiveEventType eEvent, void *pEventData)=0
bool ThreadLogFatal(const char *szMessage,...) GNUC_FORMAT_ATTRIBUTE_O
bool ThreadLogDebug(const char *szMessage,...) GNUC_FORMAT_ATTRIBUTE_O
void RemoveProc(StdSchedulerProc *pProc)
bool ThreadLog(const char *szMessage,...) GNUC_FORMAT_ATTRIBUTE_O
void ClearCallback(C4InteractiveEventType eEvent, Callback *pnNetworkCallback)
bool AddProc(StdSchedulerProc *pProc)
bool ThreadLogS(const char *szMessage,...) GNUC_FORMAT_ATTRIBUTE_O
bool PushEvent(C4InteractiveEventType eEventType, void *pData=nullptr)
bool ThreadPostAsync(Functor function)
void SetCallback(C4InteractiveEventType eEvent, Callback *pnNetworkCallback)
void SetNotify(class C4InteractiveThread *pnNotify)
bool Execute(int iTimeout, pollfd *readyfds) override