00001 #ifndef BLINKABLE_H 00002 #define BLINKABLE_H 00003 00023 #include "ValidityOwner.hh" // contains 00024 #include "BLinkableFWD.hh" 00025 00026 namespace MangoPtr 00027 { 00028 00036 template <ForOwnedBy::ID> 00037 class BLinkable 00038 { 00039 public: 00042 const ValidityOwner& getValidityOwner() const 00043 { 00044 validity.setValid(true); 00045 return validity; 00046 } 00047 00048 protected: 00050 ~BLinkable() {invalidateSelf();} 00052 BLinkable() {} 00054 BLinkable(const BLinkable&) {} 00056 void operator=(const BLinkable&) {} 00058 void invalidateSelf() {validity.setValid(false);} 00059 00060 private: 00062 mutable ValidityOwner validity; 00063 }; 00064 00065 } // namespace 00066 00067 00068 #endif // BLINKABLE_H 00069