Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
blockinghandlerthread.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
13
#include "
messaging/handlerthreadbase.h
"
14
#include "
threading/safequeue.h
"
15
16
//------------------------------------------------------------------------------
17
namespace
Messaging
18
{
19
class
BlockingHandlerThread
:
public
HandlerThreadBase
20
{
21
__DeclareClass
(
BlockingHandlerThread
);
22
public
:
24
BlockingHandlerThread
();
25
27
void
SetWaitTimeout
(
int
milliSec);
29
int
GetWaitTimeout
()
const
;
30
32
virtual
void
AddMessage
(
const
Ptr<Message>
& msg);
34
virtual
void
CancelMessage
(
const
Ptr<Message>
& msg);
35
37
virtual
void
EmitWakeupSignal
();
39
virtual
void
DoWork
();
40
41
private
:
42
int
waitTimeout
;
43
Threading::SafeQueue<Ptr<Message>
>
msgQueue
;
44
};
45
46
//------------------------------------------------------------------------------
49
inline
void
50
BlockingHandlerThread::SetWaitTimeout
(
int
milliSec)
51
{
52
n_assert
(!this->IsRunning());
53
this->
waitTimeout
= milliSec;
54
}
55
56
//------------------------------------------------------------------------------
59
inline
int
60
BlockingHandlerThread::GetWaitTimeout
()
const
61
{
62
return
this->
waitTimeout
;
63
}
64
65
}
// namespace Messaging
66
//------------------------------------------------------------------------------
Messaging::BlockingHandlerThread::SetWaitTimeout
void SetWaitTimeout(int milliSec)
set optional wait timeout (0 if infinite)
Definition
blockinghandlerthread.h:50
Messaging::BlockingHandlerThread::CancelMessage
virtual void CancelMessage(const Ptr< Message > &msg)
cancel a pending message (override in subclass!)
Definition
blockinghandlerthread.cc:39
Messaging::BlockingHandlerThread::DoWork
virtual void DoWork()
this method runs in the thread context
Definition
blockinghandlerthread.cc:62
Messaging::BlockingHandlerThread::BlockingHandlerThread
BlockingHandlerThread()
constructor
Definition
blockinghandlerthread.cc:16
Messaging::BlockingHandlerThread::EmitWakeupSignal
virtual void EmitWakeupSignal()
called if thread needs a wakeup call before stopping
Definition
blockinghandlerthread.cc:51
Messaging::BlockingHandlerThread::GetWaitTimeout
int GetWaitTimeout() const
get wait timeout
Definition
blockinghandlerthread.h:60
Messaging::BlockingHandlerThread::AddMessage
virtual void AddMessage(const Ptr< Message > &msg)
add a message to be handled (override in subclass!)
Definition
blockinghandlerthread.cc:27
Messaging::BlockingHandlerThread::__DeclareClass
__DeclareClass(BlockingHandlerThread)
Messaging::BlockingHandlerThread::waitTimeout
int waitTimeout
Definition
blockinghandlerthread.h:42
Messaging::BlockingHandlerThread::msgQueue
Threading::SafeQueue< Ptr< Message > > msgQueue
Definition
blockinghandlerthread.h:43
Messaging::HandlerThreadBase::HandlerThreadBase
HandlerThreadBase()
constructor
Definition
handlerthreadbase.cc:20
Ptr
Nebula's smart pointer class which manages the life time of RefCounted objects.
Definition
ptr.h:38
Threading::SafeQueue
Thread-safe version of Util::Queue.
Definition
safequeue.h:27
n_assert
#define n_assert(exp)
Definition
debug.h:50
handlerthreadbase.h
Messaging
Definition
asyncport.cc:10
safequeue.h
code
foundation
messaging
blockinghandlerthread.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.