Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkVersionCounter.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 #ifndef _mitkVersionCounter_h
00011 #define _mitkVersionCounter_h
00012 
00013 #include "mitkCommonIncludes.h"
00014 
00015 class MITK_COMMON_API mitkVersionCounter
00016 {
00017 public:
00018     mitkVersionCounter();
00019     ~mitkVersionCounter();
00020     
00021     int GetVersion() const { return m_Version; }
00022     void Modified() { m_Version++; }
00023 
00024 private:
00025     int m_Version;
00026 };
00027 
00028 #define MITK_VERSIONED_OBJECT(UpdateFunc)\
00029     public:\
00030     mitkVersionCounter __versionCounter;\
00031     inline void __Update() {UpdateFunc;}
00032 
00033 #define MITK_MODIFIED __versionCounter.Modified
00034 
00035 class MITK_COMMON_API mitkLocalVersion
00036 {
00037 public:
00038     mitkLocalVersion();
00039     ~mitkLocalVersion();
00040 
00041     int m_Version;
00042 
00043 };
00044 
00045 #define MITK_IS_MODIFIED(objectPtr, localVersion) ((objectPtr)->__Update(),((localVersion).m_Version!=(objectPtr)->__versionCounter.GetVersion()))
00046 #define MITK_UPDATED(objectPtr, localVersion) ((localVersion).m_Version=(objectPtr)->__versionCounter.GetVersion())
00047 
00048 
00049 #endif

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3