#include <FXSingleEventThread.h>

Definition at line 20 of file FXSingleEventThread.h.
Public Types | |
| enum | { ID_THREAD_EVENT } |
Public Member Functions | |
| FXSingleEventThread (FXApp *a, MFXInterThreadEventClient *client) | |
| long | onThreadEvent (FXObject *, FXSelector, void *) |
| long | onThreadSignal (FXObject *, FXSelector, void *) |
| virtual FXint | run () |
| void | signal (FXuint seltype) |
| void | signal () |
| virtual | ~FXSingleEventThread () |
Static Public Member Functions | |
| static void | sleep (long ms) |
Protected Member Functions | |
| FXSingleEventThread () | |
Private Member Functions | |
| FXSingleEventThread (const FXSingleEventThread &) | |
| FXSingleEventThread & | operator= (const FXSingleEventThread &) |
Private Attributes | |
| FXEX::FXThreadEventHandle | event |
| FXApp * | myApp |
| MFXInterThreadEventClient * | myClient |
| anonymous enum |
| FXSingleEventThread::FXSingleEventThread | ( | const FXSingleEventThread & | ) | [private] |
| FXSingleEventThread::FXSingleEventThread | ( | FXApp * | a, | |
| MFXInterThreadEventClient * | client | |||
| ) |
| FXSingleEventThread::~FXSingleEventThread | ( | ) | [virtual] |
Definition at line 57 of file FXSingleEventThread.cpp.
References event, myApp, PIPE_READ, and PIPE_WRITE.
00057 { 00058 #ifndef WIN32 00059 myApp->removeInput(event[PIPE_READ],INPUT_READ); 00060 ::close(event[PIPE_READ]); 00061 ::close(event[PIPE_WRITE]); 00062 FXFREE(&event); 00063 #else 00064 myApp->removeInput(event,INPUT_READ); 00065 ::CloseHandle(event); 00066 #endif 00067 }
| FXSingleEventThread::FXSingleEventThread | ( | ) | [inline, protected] |
| long FXSingleEventThread::onThreadEvent | ( | FXObject * | , | |
| FXSelector | , | |||
| void * | ||||
| ) |
Definition at line 106 of file FXSingleEventThread.cpp.
References MFXInterThreadEventClient::eventOccured(), and myClient.
00106 { 00107 myClient->eventOccured(); 00108 /* 00109 FXuint seltype1 = FXSELTYPE(SEL_THREAD); 00110 if(myTarget && myTarget->handle(this,FXSEL(seltype1,mySelector),NULL)) { 00111 } 00112 FXuint seltype = FXSELTYPE(sel); 00113 return myTarget && myTarget->handle(this,FXSEL(seltype,mySelector),NULL); 00114 */ 00115 return 1; 00116 }
| long FXSingleEventThread::onThreadSignal | ( | FXObject * | , | |
| FXSelector | , | |||
| void * | ||||
| ) |
Definition at line 92 of file FXSingleEventThread.cpp.
References PIPE_READ, and FXEX::SEL_THREAD.
00092 { 00093 FXuint seltype=SEL_THREAD; 00094 #ifndef WIN32 00095 ::read(event[PIPE_READ],&seltype,sizeof(seltype)); 00096 #else 00097 //FIXME need win32 support 00098 #endif 00099 FXSelector sel = FXSEL(SEL_THREAD,0); 00100 handle(this,sel,0); 00101 return 0; 00102 }
| FXSingleEventThread& FXSingleEventThread::operator= | ( | const FXSingleEventThread & | ) | [private] |
| virtual FXint FXSingleEventThread::run | ( | ) | [inline, virtual] |
Reimplemented in GUILoadThread, and GUIRunThread.
Definition at line 46 of file FXSingleEventThread.h.
| void FXSingleEventThread::signal | ( | FXuint | seltype | ) |
Definition at line 82 of file FXSingleEventThread.cpp.
References event, and PIPE_WRITE.
00082 { 00083 #ifndef WIN32 00084 ::write(event[PIPE_WRITE],&seltype,sizeof(seltype)); 00085 #else 00086 ::SetEvent(event); 00087 #endif 00088 }
| void FXSingleEventThread::signal | ( | ) |
Definition at line 71 of file FXSingleEventThread.cpp.
References event, PIPE_WRITE, and FXEX::SEL_THREAD.
00071 { 00072 FXuint seltype=SEL_THREAD; 00073 #ifndef WIN32 00074 ::write(event[PIPE_WRITE],&seltype,sizeof(seltype)); 00075 #else 00076 ::SetEvent(event); 00077 #endif 00078 }
| void FXSingleEventThread::sleep | ( | long | ms | ) | [static] |
Definition at line 120 of file FXSingleEventThread.cpp.
Referenced by GUIRunThread::run().
00120 { 00121 #ifdef WIN32 00122 Sleep(ms); 00123 #else 00124 long long us = ms * 1000; 00125 usleep(us); 00126 #endif 00127 }
Definition at line 24 of file FXSingleEventThread.h.
Referenced by signal(), and ~FXSingleEventThread().
FXApp* FXSingleEventThread::myApp [private] |
1.5.6