00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 #ifndef COH_SIMPLE_EVOLVABLE_HPP
00017 #define COH_SIMPLE_EVOLVABLE_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/io/Evolvable.hpp"
00022 
00023 #include "coherence/util/Binary.hpp"
00024 
00025 COH_OPEN_NAMESPACE2(coherence,io)
00026 
00027 using coherence::util::Binary;
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 class COH_EXPORT SimpleEvolvable
00038     : public class_spec<SimpleEvolvable,
00039         extends<Object>,
00040         implements<Evolvable> >
00041     {
00042     friend class factory<SimpleEvolvable>;
00043 
00044     
00045 
00046     protected:
00047 
00048 
00049 
00050 
00051 
00052 
00053         SimpleEvolvable(int32_t nImplVersion);
00054 
00055     
00056 
00057     public:
00058 
00059 
00060 
00061         virtual int32_t getImplVersion() const;
00062 
00063 
00064 
00065 
00066         virtual int32_t getDataVersion() const;
00067 
00068 
00069 
00070 
00071         virtual void setDataVersion(int32_t nDataVersion);
00072 
00073 
00074 
00075 
00076         virtual Binary::View getFutureData() const;
00077 
00078 
00079 
00080 
00081         virtual void setFutureData(Binary::View vBinFutureData);
00082 
00083     
00084 
00085     private:
00086 
00087 
00088 
00089         int32_t m_nImplVersion;
00090 
00091 
00092 
00093 
00094         int32_t m_nDataVersion;
00095 
00096 
00097 
00098 
00099         MemberView<Binary> m_vBinFutureData;
00100     };
00101 
00102 COH_CLOSE_NAMESPACE2
00103 
00104 #endif // COH_SIMPLE_EVOLVABLE_HPP