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

E47891-01

coherence/io/AbstractEvolvable.hpp

00001 /*
00002 * AbstractEvolvable.hpp
00003 *
00004 * Copyright (c) 2000, 2014, 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_ABSTRACT_EVOLVABLE_HPP
00017 #define COH_ABSTRACT_EVOLVABLE_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/io/Evolvable.hpp"
00022 #include "coherence/util/Binary.hpp"
00023 
00024 COH_OPEN_NAMESPACE2(coherence,io)
00025 
00026 
00027 using coherence::util::Binary;
00028 
00029 /**
00030 * Abstract base implementation of the Evolvable interface.
00031 *
00032 * @author wl 2010.08.11
00033 */
00034 class COH_EXPORT AbstractEvolvable
00035     : public abstract_spec<AbstractEvolvable,
00036         extends <Object>,
00037         implements<Evolvable> >
00038     {
00039     // ----- constructors ---------------------------------------------------
00040 
00041     protected:
00042         /**
00043         * @internal
00044         */
00045         AbstractEvolvable();
00046 
00047         /**
00048         * @internal
00049         */
00050         AbstractEvolvable(const AbstractEvolvable& that);
00051 
00052 
00053     // ----- Evolvable interface --------------------------------------------
00054 
00055     public:
00056         /**
00057         * {@inheritDoc}
00058         */
00059         virtual int32_t getImplVersion() const = 0;
00060 
00061         /**
00062         * {@inheritDoc}
00063         */
00064         virtual int32_t getDataVersion() const;
00065 
00066         /**
00067         * {@inheritDoc}
00068         */
00069         virtual void setDataVersion(int32_t nVersion);
00070 
00071         /**
00072         * {@inheritDoc}
00073         */
00074         virtual Binary::View getFutureData() const;
00075 
00076         /**
00077         * {@inheritDoc}
00078         */
00079         virtual void setFutureData(Binary::View vBinFuture);
00080 
00081 
00082       // ----- data members -------------------------------------------------
00083 
00084       private:
00085         /**
00086         * The version of the data stream that this object was deserialized from.
00087         */
00088         int32_t m_nDataVersion;
00089 
00090         /**
00091         * The "unknown future data" from the data stream that this object was
00092         * deserialized from.
00093         */
00094         FinalView<Binary> f_vBinFuture;
00095       
00096     };
00097 
00098 COH_CLOSE_NAMESPACE2
00099 
00100 #endif // COH_ABSTRACT_EVOLVABLE_HPP
00101 
Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.