diff options
Diffstat (limited to '')
-rw-r--r-- | src/linkmessenger.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/linkmessenger.cpp b/src/linkmessenger.cpp new file mode 100644 index 0000000..3bd401a --- /dev/null +++ b/src/linkmessenger.cpp | |||
@@ -0,0 +1,41 @@ | |||
1 | #include "linkmessenger.h" | ||
2 | |||
3 | LinkMessenger::LinkMessenger() : | ||
4 | pFirst( NULL ), | ||
5 | pLast( NULL ) | ||
6 | { | ||
7 | } | ||
8 | |||
9 | LinkMessenger::~LinkMessenger() | ||
10 | { | ||
11 | } | ||
12 | |||
13 | void LinkMessenger::enqueueMessage( LinkMessage *pMsg ) | ||
14 | { | ||
15 | if( pLast == NULL ) | ||
16 | { | ||
17 | pFirst = pLast = new Link; | ||
18 | pLast->pMsg = pMsg; | ||
19 | pLast->pNext = NULL; | ||
20 | } | ||
21 | else | ||
22 | { | ||
23 | pLast->pNext = new Link; | ||
24 | pLast = pLast->pNext; | ||
25 | pLast->pMsg = pMsg; | ||
26 | pLast->pNext = NULL; | ||
27 | } | ||
28 | } | ||
29 | |||
30 | LinkMessage *LinkMessenger::dequeueMessage() | ||
31 | { | ||
32 | if( pFirst == NULL ) | ||
33 | return NULL; | ||
34 | |||
35 | Link *pTmp = pFirst; | ||
36 | pFirst = pFirst->pNext; | ||
37 | LinkMessage *pRet = pTmp->pMsg; | ||
38 | delete pTmp; | ||
39 | return pRet; | ||
40 | } | ||
41 | |||