Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.2.1.3.0)

E80355-01

coherence/io/SimpleEvolvable.hpp

00001 /*
00002 * SimpleEvolvable.hpp
00003 *
00004 * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
00005 *
00006 * Oracle is a registered trademarks of Oracle Corporation and/or its
00007 * affiliates.
00008 *
00009 * This software is the confidential and proprietary information of Oracle
00010 * Corporation. You shall not disclose such confidential and proprietary
00011 * information and shall use it only in accordance with the terms of the
00012 * license agreement you entered into with Oracle.
00013 *
00014 * This notice may not be removed or altered.
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  * Simple implementation of Evolvable interface.
00032  *
00033  * @author as  2013.04.19
00034  *
00035  * @since Coherence 12.1.3
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     // ----- constructors ---------------------------------------------------
00045 
00046     protected:
00047         /**
00048          * Create SimpleEvolvable instance.
00049          *
00050          * @param nImplVersion  the implementation version of the class this
00051          *                      Evolvable is for
00052          */
00053         SimpleEvolvable(int32_t nImplVersion);
00054 
00055     // ---- Evolvable implementation ----------------------------------------
00056 
00057     public:
00058         /**
00059          * {@inheritDoc}
00060          */
00061         virtual int32_t getImplVersion() const;
00062 
00063         /**
00064          * {@inheritDoc}
00065          */
00066         virtual int32_t getDataVersion() const;
00067 
00068         /**
00069          * {@inheritDoc}
00070          */
00071         virtual void setDataVersion(int32_t nDataVersion);
00072 
00073         /**
00074          * {@inheritDoc}
00075          */
00076         virtual Binary::View getFutureData() const;
00077 
00078         /**
00079          * {@inheritDoc}
00080          */
00081         virtual void setFutureData(Binary::View vBinFutureData);
00082 
00083     // ---- data members ----------------------------------------------------
00084 
00085     private:
00086         /**
00087          * Implementation version.
00088          */
00089         int32_t m_nImplVersion;
00090 
00091         /**
00092          * Data version.
00093          */
00094         int32_t m_nDataVersion;
00095 
00096         /**
00097          * Future data.
00098          */
00099         MemberView<Binary> m_vBinFutureData;
00100     };
00101 
00102 COH_CLOSE_NAMESPACE2
00103 
00104 #endif // COH_SIMPLE_EVOLVABLE_HPP
Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.