28 #ifndef OVR_ThreadCommandQueue_h
29 #define OVR_ThreadCommandQueue_h
39 class ThreadCommandQueue;
104 virtual void Execute()
const = 0;
138 template<
class C,
class R>
159 {
return Construct<ThreadCommandMF0>(p, *
this); }
164 template<
class C,
class R,
class A0>
186 {
return Construct<ThreadCommandMF1>(p, *
this); }
190 template<
class C,
class R,
class A0,
class A1>
213 {
return Construct<ThreadCommandMF2>(p, *
this); }
260 template<
class C,
class R>
263 template<
class C,
class R,
class A0>
266 template<
class C,
class R,
class A0,
class A1>
273 template<
class C,
class R>
274 bool PushCall(C* p, R (C::*fn)(),
bool wait =
false)
276 template<
class C,
class R,
class A0>
279 template<
class C,
class R,
class A0,
class A1>
289 template<
class C,
class R>
292 template<
class C,
class R,
class A0>
295 template<
class C,
class R,
class A0,
class A1>
301 template<
class C,
class R>
304 template<
class C,
class R,
class A0>
307 template<
class C,
class R,
class A0,
class A1>
319 #endif // OVR_ThreadCommandQueue_h
virtual void Execute() const
virtual void Execute() const
bool PushCall(R(C::*fn)(), bool wait=false)
class ThreadCommandQueueImpl * pImpl
CleanType< A1 >::Type AVal1
virtual ~ThreadCommandQueue()
ThreadCommandMF2(C *pclass, FnPtr fn, R *ret, A0 a0, A1 a1, bool needsWait)
bool PushCall(C *p, R(C::*fn)(A0), typename SelfType< A0 >::Type a0, bool wait=false)
ThreadCommandMF0(C *pclass, FnPtr fn, R *ret, bool needsWait)
virtual void Execute() const =0
bool PushCallAndWaitResult(C *p, R(C::*fn)(), R *ret)
bool Wait(unsigned delay=OVR_WAIT_INFINITE)
bool PushCall(R(C::*fn)(A0), typename SelfType< A0 >::Type a0, bool wait=false)
virtual void OnPushNonEmpty_Locked()
bool PushCommand(const ThreadCommand &command)
void PushExitCommand(bool wait)
bool PushCall(C *p, R(C::*fn)(), bool wait=false)
bool PushCallAndWaitResult(C *p, R(C::*fn)(A0, A1), R *ret, typename SelfType< A0 >::Type a0, typename SelfType< A1 >::Type a1)
virtual ThreadCommand * CopyConstruct(void *p) const
bool PushCallAndWaitResult(C *p, R(C::*fn)(A0), R *ret, typename SelfType< A0 >::Type a0)
virtual ThreadCommand * CopyConstruct(void *p) const
NotifyEvent * GetEvent() const
virtual ThreadCommand * CopyConstruct(void *p) const
bool PopCommand(ThreadCommand::PopBuffer *popBuffer)
void InitFromBuffer(void *data)
bool PushCall(R(C::*fn)(A0, A1), typename SelfType< A0 >::Type a0, typename SelfType< A1 >::Type a1, bool wait=false)
ThreadCommand(UPInt size, bool waitFlag, bool exitFlag=false)
bool PushCallAndWaitResult(R(C::*fn)(A0, A1), R *ret, typename SelfType< A0 >::Type a0, typename SelfType< A1 >::Type a1)
ThreadCommandMF1(C *pclass, FnPtr fn, R *ret, A0 a0, bool needsWait)
bool PushCall(C *p, R(C::*fn)(A0, A1), typename SelfType< A0 >::Type a0, typename SelfType< A1 >::Type a1, bool wait=false)
bool PushCallAndWaitResult(R(C::*fn)(A0), R *ret, typename SelfType< A0 >::Type a0)
CleanType< A0 >::Type AVal0
CleanType< A0 >::Type AVal0
virtual void Execute() const
ThreadCommand * toCommand() const
bool PushCallAndWaitResult(R(C::*fn)(), R *ret)
virtual ThreadCommand * CopyConstruct(void *p) const =0
virtual void OnPopEmpty_Locked()