Main Page   Packages   Class Hierarchy   Alphabetical List   Data Structures   File List   Namespace Members   Data Fields   Globals  

SharedVar.h

Go to the documentation of this file.
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:

SourceForge Logo