SharedAttr.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../Attribute.hpp"
4 
5 namespace iv
6 {
7 
12 template< class T >
13 class SharedAttr_I : public Attr< T >
14 {
15 public:
16  SharedAttr_I( ClientMarker * cm, AttributeEventProcessor *, T const & initial_value = T() );
17 
18 protected:
19  virtual void GetSourceValue( T & out ) const override;
20  virtual void ModifySource( T const & ) override;
21 
22 private:
23  T value;
24 };
25 
29 template< class T >
30 class SharedAttr final : private Local_AEP, public SharedAttr_I< T >
31 {
32 public:
33  SharedAttr( ClientMarker * cm, T const & initial_value = T() );
34  ~SharedAttr();
35 };
36 
37 }
38 
39 #include "SharedAttr.inl"