34 #ifndef PTLIB_PROCESS_H
35 #define PTLIB_PROCESS_H
56 #define PCREATE_PROCESS(cls) \
58 instance.InternalMain();
59 #elif defined(P_RTEMS)
60 #define PCREATE_PROCESS(cls) \
62 void* POSIX_Init( void* argument) \
64 static cls instance; \
65 exit( instance.InternalMain() ); \
68 #elif defined(_WIN32_WCE)
69 #define PCREATE_PROCESS(cls) \
70 PDEFINE_WINMAIN(hInstance, , lpCmdLine, ) \
72 cls *pInstance = new cls(); \
73 pInstance->GetArguments().SetArgs(lpCmdLine); \
74 int terminationValue = pInstance->InternalMain(hInstance); \
76 return terminationValue; \
79 #define PCREATE_PROCESS(cls) \
80 int main(int argc, char * argv[]) \
82 cls *pInstance = new cls(); \
83 pInstance->PreInitialise(argc, argv); \
84 int terminationValue = pInstance->InternalMain(); \
86 return terminationValue; \
96 #define PDECLARE_PROCESS(cls,ancestor,manuf,name,major,minor,status,build) \
97 class cls : public ancestor { \
98 PCLASSINFO(cls, ancestor); \
100 cls() : ancestor(manuf, name, major, minor, status, build) { } \
102 virtual void Main(); \
147 ,
m_id(t->GetTimerId())
167 typedef std::queue<RequestType> RequestQueueType;
168 RequestQueueType m_requestQueue;
174 struct ActiveTimerInfo {
176 : m_timer(t), m_serialNumber(serialNumber) { }
180 typedef std::map<PTimer::IDType, ActiveTimerInfo> ActiveTimerInfoMap;
181 ActiveTimerInfoMap m_activeTimers;
184 struct TimerExpiryInfo {
186 : m_timerId(id), m_expireTime(expireTime), m_serialNumber(serialNumber) { }
192 struct TimerExpiryInfo_compare
193 :
public binary_function<TimerExpiryInfo, TimerExpiryInfo, bool>
195 bool operator()(
const TimerExpiryInfo & _Left,
const TimerExpiryInfo & _Right)
const
196 {
return (_Left.m_expireTime < _Right.m_expireTime); }
199 typedef std::multiset<TimerExpiryInfo, TimerExpiryInfo_compare> TimerExpiryInfoList;
200 TimerExpiryInfoList m_expiryList;
246 const char * manuf =
"",
247 const char * name =
"",
252 bool library =
false,
253 bool suppressStartup =
false
551 #endif // P_CONFIG_FILE
722 typedef std::map<PThreadIdentifier, PThread *>
ThreadMap;
746 #include "msos/ptlib/pprocess.h"
748 #include "unix/ptlib/pprocess.h"
765 const char * manuf =
"",
766 const char * name =
"",
767 WORD majorVersionNum = 1,
768 WORD minorVersionNum = 0,
771 ) :
PProcess(manuf, name, majorVersionNum, minorVersionNum, statusCode, buildNum, true) { }
799 #define P_DEFAULT_TRACE_OPTIONS ( PTrace::Blocks | PTrace::Timestamp | PTrace::Thread | PTrace::FileAndLine )
801 template <
unsigned level,
unsigned options = P_DEFAULT_TRACE_OPTIONS >
812 #endif // PTLIB_PROCESS_H