summaryrefslogtreecommitdiffstats
path: root/lib/libUPnP/Neptune/Source/System/Null/NptNullThreads.cpp
blob: 56ac99f19d5b2d535fceb1917e31e7f77b8e1a32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*****************************************************************
|
|      Neptune - Threads :: Null Implementation
|
|      (c) 2001-2002 Gilles Boccon-Gibod
|      Author: Gilles Boccon-Gibod (bok@bok.net)
|
 ****************************************************************/

/*----------------------------------------------------------------------
|       includes
+---------------------------------------------------------------------*/
#include "NptConfig.h"
#include "NptTypes.h"
#include "NptThreads.h"

/*----------------------------------------------------------------------
|       NPT_NullAtomicVariable
+---------------------------------------------------------------------*/
class NPT_NullAtomicVariable : public NPT_AtomicVariableInterface
{
 public:
    // methods
    NPT_NullAtomicVariable(int value) : m_Value(value) {}
   ~NPT_NullAtomicVariable() {}
    int  Increment() { return ++m_Value; }
    int  Decrement() { return --m_Value; }
    int  GetValue() { return m_Value; }
    void SetValue(int value) { m_Value = value; }

 private:
    // members
    volatile int m_Value;
};

/*----------------------------------------------------------------------
|       NPT_AtomicVariable::NPT_AtomicVariable
+---------------------------------------------------------------------*/
NPT_AtomicVariable::NPT_AtomicVariable(int value)
{
    m_Delegate = new NPT_NullAtomicVariable(value);
}