| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //******************************************************************************
- // RCF - Remote Call Framework
- //
- // Copyright (c) 2005 - 2020, Delta V Software. All rights reserved.
- // http://www.deltavsoft.com
- //
- // RCF is distributed under dual licenses - closed source or GPL.
- // Consult your particular license for conditions of use.
- //
- // If you have not purchased a commercial license, you are using RCF
- // under GPL terms.
- //
- // Version: 3.2
- // Contact: support <at> deltavsoft.com
- //
- //******************************************************************************
- #ifndef INCLUDE_SF_SERIALIZEANY_HPP
- #define INCLUDE_SF_SERIALIZEANY_HPP
- #include <boost/any.hpp>
- namespace SF {
- class Archive;
- class I_SerializerAny
- {
- public:
- virtual ~I_SerializerAny()
- {}
- virtual void serialize(
- SF::Archive &ar,
- boost::any &a) = 0;
- };
- template<typename T>
- class SerializerAny : public I_SerializerAny
- {
- public:
- void serialize(SF::Archive &ar, boost::any &a);
- };
- } // namespace SF
- #include <SF/Archive.hpp>
- namespace SF {
- template<typename T>
- void SerializerAny<T>::serialize(SF::Archive &ar, boost::any &a)
- {
- if (ar.isWrite())
- {
- ar & boost::any_cast<T>(a);
- }
- else
- {
- T t;
- ar & t;
- a = t;
- }
- }
- } // namespace SF
- #endif // ! INCLUDE_SF_SERIALIZEANY_HPP
|