diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2016-05-10 22:34:27 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2016-05-10 22:34:27 +0200 |
commit | 268ef2d8e904db5068dbdc0fdc7ce3940d6452ea (patch) | |
tree | b1afa687c97fbf5e1ba2c92c5a10479ae5f832f5 /src/Platform/SharedVal.h | |
parent | 6d61f06a5348aebe7dbc0bf44d3e2729c20f7fd0 (diff) | |
parent | 5f47d8b6f11cdb3c4c2f43e04e5acfc6ffcb3035 (diff) | |
download | VeraCrypt-268ef2d8e904db5068dbdc0fdc7ce3940d6452ea.tar.gz VeraCrypt-268ef2d8e904db5068dbdc0fdc7ce3940d6452ea.zip |
Merge pull request #61 from davidfoerster/normalize-line-terminators
Normalize line terminators
Diffstat (limited to 'src/Platform/SharedVal.h')
-rw-r--r-- | src/Platform/SharedVal.h | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/src/Platform/SharedVal.h b/src/Platform/SharedVal.h index 1a1e98cc..b66deaeb 100644 --- a/src/Platform/SharedVal.h +++ b/src/Platform/SharedVal.h @@ -3,73 +3,73 @@ Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed by the TrueCrypt License 3.0. - Modifications and additions to the original source code (contained in this file) + Modifications and additions to the original source code (contained in this file) and all other portions of this file are Copyright (c) 2013-2016 IDRIX and are governed by the Apache License 2.0 the full text of which is contained in the file License.txt included in VeraCrypt binary and source code distribution packages. -*/
-
-#ifndef TC_HEADER_Platform_SharedVal
-#define TC_HEADER_Platform_SharedVal
-
-#include "PlatformBase.h"
-#include "Mutex.h"
-
-namespace VeraCrypt
-{
- template <class T>
- class SharedVal
- {
- public:
- SharedVal () { }
- explicit SharedVal (T value) : Value (value) { }
- virtual ~SharedVal () { }
-
- operator T ()
- {
- return Get ();
- }
-
- T Decrement ()
- {
- ValMutex.Lock();
- T r = --Value;
- ValMutex.Unlock();
- return r;
- }
-
- T Get ()
- {
- ValMutex.Lock();
- T r = Value;
- ValMutex.Unlock();
- return r;
- }
-
- T Increment ()
- {
- ValMutex.Lock();
- T r = ++Value;
- ValMutex.Unlock();
- return r;
- }
-
- void Set (T value)
- {
- ValMutex.Lock();
- Value = value;
- ValMutex.Unlock();
- }
-
- protected:
- volatile T Value;
- Mutex ValMutex;
-
- private:
- SharedVal (const SharedVal &);
- SharedVal &operator= (const SharedVal &);
- };
-}
-
-#endif // TC_HEADER_Platform_SharedVal
+*/ + +#ifndef TC_HEADER_Platform_SharedVal +#define TC_HEADER_Platform_SharedVal + +#include "PlatformBase.h" +#include "Mutex.h" + +namespace VeraCrypt +{ + template <class T> + class SharedVal + { + public: + SharedVal () { } + explicit SharedVal (T value) : Value (value) { } + virtual ~SharedVal () { } + + operator T () + { + return Get (); + } + + T Decrement () + { + ValMutex.Lock(); + T r = --Value; + ValMutex.Unlock(); + return r; + } + + T Get () + { + ValMutex.Lock(); + T r = Value; + ValMutex.Unlock(); + return r; + } + + T Increment () + { + ValMutex.Lock(); + T r = ++Value; + ValMutex.Unlock(); + return r; + } + + void Set (T value) + { + ValMutex.Lock(); + Value = value; + ValMutex.Unlock(); + } + + protected: + volatile T Value; + Mutex ValMutex; + + private: + SharedVal (const SharedVal &); + SharedVal &operator= (const SharedVal &); + }; +} + +#endif // TC_HEADER_Platform_SharedVal |