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

E80355-01

coherence/io/ConfigurableSerializerFactory.hpp

00001 /*
00002 * ConfigurableSerializerFactory.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_CONFIGURABLE_SERIALIZER_FACTORY_HPP
00017 #define COH_CONFIGURABLE_SERIALIZER_FACTORY_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/io/Serializer.hpp"
00022 #include "coherence/io/SerializerFactory.hpp"
00023 #include "coherence/run/xml/XmlConfigurable.hpp"
00024 #include "coherence/run/xml/XmlElement.hpp"
00025 
00026 COH_OPEN_NAMESPACE2(coherence,io)
00027 
00028 using coherence::run::xml::XmlConfigurable;
00029 using coherence::run::xml::XmlElement;
00030 
00031 
00032 /**
00033 * A factory for Serializer objects.
00034 *
00035 * @author wl  2011.11.07
00036 *
00037 * @since Coherence 12.1.2
00038 */
00039 class COH_EXPORT ConfigurableSerializerFactory
00040     : public class_spec<ConfigurableSerializerFactory,
00041         extends<Object>,
00042         implements<SerializerFactory, XmlConfigurable> >
00043     {
00044     friend class factory<ConfigurableSerializerFactory>;
00045 
00046     // ----- constructors ---------------------------------------------------
00047 
00048     protected:
00049         /**
00050         * Create a new ConfigurableSerializerFactory.
00051         *
00052         * @param vXmlConfig  the XML configuration for this
00053         *                    ConfigurableSerializerFactory.
00054         */
00055         ConfigurableSerializerFactory();
00056 
00057 
00058     // ----- ConfigurableSerializerFactory interface ------------------------
00059 
00060     public:
00061         /**
00062         * {@inheritDoc}
00063         */
00064         virtual Serializer::View createSerializer(ClassLoader::View vLoader) const;
00065     
00066 
00067     // ----- XmlConfigurable interface---------------------------------------
00068 
00069     public:
00070         /**
00071         * {@inheritDoc}
00072         */
00073         virtual void setConfig(XmlElement::View xml);
00074 
00075         /**
00076         * {@inheritDoc}
00077         */
00078         virtual XmlElement::View getConfig() const;
00079 
00080 
00081     // ----- Object interface -----------------------------------------------
00082 
00083     public:
00084         /**
00085         * {@inheritDoc}
00086         */
00087         virtual TypedHandle<const String> toString() const;
00088 
00089 
00090     // ---- data members ----------------------------------------------------
00091 
00092     protected:
00093         /**
00094         * XML configuration for this ConfigurableSerializerFactory.
00095         */
00096         FinalView<XmlElement> f_vXmlConfig;
00097     };
00098 
00099 COH_CLOSE_NAMESPACE2
00100 
00101 #endif // COH_CONFIGURABLE_SERIALIZER_FACTORY_HPP
Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.