Index: src/libchcore/TModificationTracker.h =================================================================== diff -u -N -r95a466ca0a4f95851dcacf2b80e2084e0168b7e4 -re96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3 --- src/libchcore/TModificationTracker.h (.../TModificationTracker.h) (revision 95a466ca0a4f95851dcacf2b80e2084e0168b7e4) +++ src/libchcore/TModificationTracker.h (.../TModificationTracker.h) (revision e96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3) @@ -21,94 +21,93 @@ #include "libchcore.h" -BEGIN_CHCORE_NAMESPACE - -template -class TModificationTracker +namespace chcore { -public: - TModificationTracker() : - m_tValue(), - m_chModified(eMod_Modified) + template + class TModificationTracker { - } + public: + TModificationTracker() : + m_tValue(), + m_chModified(eMod_Modified) + { + } - template - TModificationTracker(const V& rValue, bool bAdded) : - m_tValue(rValue), - m_chModified((char)eMod_Modified | (bAdded ? (char)eMod_Added : (char)eMod_None)) - { - } + template + TModificationTracker(const V& rValue, bool bAdded) : + m_tValue(rValue), + m_chModified((char)eMod_Modified | (bAdded ? (char)eMod_Added : (char)eMod_None)) + { + } - TModificationTracker(const TModificationTracker& rSrc) : - m_chModified(rSrc.m_chModified), - m_tValue(rSrc.m_tValue) - { - } + TModificationTracker(const TModificationTracker& rSrc) : + m_chModified(rSrc.m_chModified), + m_tValue(rSrc.m_tValue) + { + } - TModificationTracker& operator=(const TModificationTracker& rSrc) - { - m_chModified = rSrc.m_chModified; - m_tValue = rSrc.m_tValue; + TModificationTracker& operator=(const TModificationTracker& rSrc) + { + m_chModified = rSrc.m_chModified; + m_tValue = rSrc.m_tValue; - return *this; - } + return *this; + } - template - TModificationTracker& operator=(const V& rValue) - { - if(m_tValue != rValue) + template + TModificationTracker& operator=(const V& rValue) { - m_tValue = rValue; - m_chModified |= eMod_Modified; + if (m_tValue != rValue) + { + m_tValue = rValue; + m_chModified |= eMod_Modified; + } + + return *this; } - return *this; - } + operator const T&() const + { + return m_tValue; + } - operator const T&() const - { - return m_tValue; - } + const T& Get() const + { + return m_tValue; + } - const T& Get() const - { - return m_tValue; - } + T& Modify() + { + m_chModified |= eMod_Modified; + return m_tValue; + } - T& Modify() - { - m_chModified |= eMod_Modified; - return m_tValue; - } + void ClearModifications() const + { + m_chModified = eMod_None; + } - void ClearModifications() const - { - m_chModified = eMod_None; - } + bool IsModified() const + { + return m_chModified != 0; // must also include 'Added' status! + } - bool IsModified() const - { - return m_chModified != 0; // must also include 'Added' status! - } + bool IsAdded() const + { + return (m_chModified & eMod_Added) != 0; + } - bool IsAdded() const - { - return (m_chModified & eMod_Added) != 0; - } + private: + enum EModifiedFlags + { + eMod_None = 0, + eMod_Added = 1, + eMod_Modified = 2 + }; -private: - enum EModifiedFlags - { - eMod_None = 0, - eMod_Added = 1, - eMod_Modified = 2 + T m_tValue; + mutable char m_chModified; }; +} - T m_tValue; - mutable char m_chModified; -}; - -END_CHCORE_NAMESPACE - #endif