PrivAttr.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Local_AEP.hpp"
4 #include "../Attribute.hpp"
5 
6 namespace iv
7 {
8 
9 template< class T >
10 class PrivAttr_I;
11 
14 template< class T >
16 {
17 public:
18  virtual void PrivAttr_Get( PrivAttr_I< T > *, T & out ) = 0;
19  virtual void PrivAttr_Modify( PrivAttr_I< T > *, T const & value ) = 0;
20 
21 protected:
24 };
25 
29 template< class T >
30 class PrivAttr_I : public Attr< T >
31 {
32 public:
33 friend class PrivAttr_Owner< T >;
34 
36 
37 protected:
38  virtual void GetSourceValue( T & out ) const override;
39  virtual void ModifySource( T const & ) const override;
40 
41 private:
42  PrivAttr_Owner< T > * owner;
43 };
44 
47 template< class T >
48 class PrivAttr final : private Local_AEP, public PrivAttr_I< T >
49 {
50 public:
52  ~PrivAttr();
53 };
54 
55 }
56 
57 #include "PrivAttr.inl"