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, char ** envp) \
82 cls *pInstance = new cls(); \
83 pInstance->PreInitialise(argc, argv, envp); \
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(); \
146 ,
m_id(t->GetTimerId())
166 typedef std::queue<RequestType> RequestQueueType;
167 RequestQueueType m_requestQueue;
176 struct ActiveTimerInfo {
178 : m_timer(t), m_serialNumber(serialNumber) { }
182 typedef std::map<PTimer::IDType, ActiveTimerInfo> ActiveTimerInfoMap;
183 ActiveTimerInfoMap m_activeTimers;
186 struct TimerExpiryInfo {
188 : m_timerId(id), m_expireTime(expireTime), m_serialNumber(serialNumber) { }
194 struct TimerExpiryInfo_compare
195 :
public binary_function<TimerExpiryInfo, TimerExpiryInfo, bool>
197 bool operator()(
const TimerExpiryInfo & _Left,
const TimerExpiryInfo & _Right)
const
198 {
return (_Left.m_expireTime < _Right.m_expireTime); }
201 typedef std::multiset<TimerExpiryInfo, TimerExpiryInfo_compare> TimerExpiryInfoList;
202 TimerExpiryInfoList m_expiryList;
248 const char * manuf =
"",
249 const char * name =
"",
740 typedef std::map<PThreadIdentifier, PThread *>
ThreadMap;
749 #include "msos/ptlib/pprocess.h"
751 #include "unix/ptlib/pprocess.h"
768 const char * manuf =
"",
769 const char * name =
"",
770 WORD majorVersionNum = 1,
771 WORD minorVersionNum = 0,
774 ) :
PProcess(manuf, name, majorVersionNum, minorVersionNum, statusCode, buildNum, true) { }
802 #define P_DEFAULT_TRACE_OPTIONS ( PTrace::Blocks | PTrace::Timestamp | PTrace::Thread | PTrace::FileAndLine )
804 template <
unsigned level,
unsigned options = P_DEFAULT_TRACE_OPTIONS >
815 #endif // PTLIB_PROCESS_H