gloox 1.0.27
atomicrefcount.h
1/*
2 Copyright (c) 2007-2023 by Jakob Schröter <js@camaya.net>
3 This file is part of the gloox library. http://camaya.net/gloox
4
5 This software is distributed under a license. The full license
6 agreement can be found in the file LICENSE in this distribution.
7 This software may not be copied, modified, sold or distributed
8 other than expressed in the named license agreement.
9
10 This software is distributed without any warranty.
11*/
12
13
14#ifndef ATOMICREFCOUNT_H__
15#define ATOMICREFCOUNT_H__
16
17#include "macros.h"
18#include "mutex.h"
19
20namespace gloox
21{
22
23 namespace util
24 {
34 class GLOOX_API AtomicRefCount
35 {
36 public:
41
46 int increment();
47
52 int decrement();
53
58 void reset();
59
60 private:
61 AtomicRefCount& operator=( const AtomicRefCount& );
62
63 volatile int m_count;
64
65 // The mutex is only used if a native function is unavailable.
66 Mutex m_lock;
67
68 };
69
70 }
71
72}
73
74#endif // ATOMICREFCOUNT_H__
75
A simple implementation of a thread safe 32-bit reference count. Native functions are used where poss...
A simple implementation of mutex as a wrapper around a pthread mutex or a win32 critical section.
Definition mutex.h:34
The namespace for the gloox library.
Definition adhoc.cpp:28