00001 /* 00002 * $Id: SharedVar.h,v 1.2 2002/07/14 04:19:08 mindstorm2600 Exp $ 00003 */ 00004 #ifndef __SHARED_VAR_H__ 00005 #define __SHARED_VAR_H__ 00006 #include<Mutex.h> 00007 00008 00009 namespace clawsoft{ 00010 00013 template <class T> 00014 class SharedVar:protected Mutex{ 00015 private: 00017 T var; 00018 public: 00020 T getValue(T v = 0){ 00021 lock(); 00022 v = var; 00023 unlock(); 00024 return v; 00025 } 00027 void setValue(T v = 0){ 00028 lock(); 00029 var = v; 00030 unlock(); 00031 } 00033 SharedVar(){;} 00035 SharedVar(T v){ 00036 setValue(v); 00037 } 00039 T operator++(T u= 0){ 00040 lock(); 00041 u = var++; 00042 unlock(); 00043 return u; 00044 } 00046 T operator--(T u = 0){ 00047 lock(); 00048 u = var--; 00049 unlock(); 00050 return u; 00051 } 00052 }; 00053 }; 00054 00055 #endif 00056
Powered by: