Main MRPT website > C++ reference for MRPT 1.4.0
metaprogramming_serialization.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2016, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 #pragma once
10 
11 namespace mrpt
12 {
13  namespace utils
14  {
15  class CStream;
16 
17  namespace metaprogramming
18  {
19  /** \addtogroup stlext_grp
20  * @{ */
21 
22  /** An object for reading objects from a stream, intended for being used in STL algorithms. */
24  {
25  private:
27  public:
28  inline ObjectReadFromStream(mrpt::utils::CStream *stream) : m_stream(stream) { }
29 
30  // T can be CSerializablePtr, CSerializable, or any other class implementing ">>"
31  template <typename T>
32  inline void operator()(T &obj) {
33  (*m_stream) >> obj;
34  }
35  };
36 
37  /** An object for writing objects to a stream, intended for being used in STL algorithms. */
39  {
40  private:
42  public:
43  inline ObjectWriteToStream(mrpt::utils::CStream *stream) : m_stream(stream) { }
44 
45  // T can be CSerializablePtr, CSerializable, or any other class implementing "<<"
46  template <typename T>
47  inline void operator()(const T &ptr) {
48  (*m_stream) << ptr;
49  }
50  };
51 
52  /** @} */ // end of grouping
53  }
54  }
55 }
56 
mrpt::utils::metaprogramming::ObjectWriteToStream::ObjectWriteToStream
ObjectWriteToStream(mrpt::utils::CStream *stream)
Definition: metaprogramming_serialization.h:43
mrpt::utils::metaprogramming::ObjectWriteToStream::operator()
void operator()(const T &ptr)
Definition: metaprogramming_serialization.h:47
mrpt::utils::metaprogramming::ObjectReadFromStream::m_stream
CStream * m_stream
Definition: metaprogramming_serialization.h:26
mrpt
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Definition: CParticleFilter.h:16
mrpt::utils::CStream
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
Definition: CStream.h:38
mrpt::utils::metaprogramming::ObjectReadFromStream
An object for reading objects from a stream, intended for being used in STL algorithms.
Definition: metaprogramming_serialization.h:23
mrpt::utils::metaprogramming::ObjectWriteToStream::m_stream
CStream * m_stream
Definition: metaprogramming_serialization.h:41
mrpt::utils::metaprogramming::ObjectWriteToStream
An object for writing objects to a stream, intended for being used in STL algorithms.
Definition: metaprogramming_serialization.h:38
mrpt::utils::metaprogramming::ObjectReadFromStream::ObjectReadFromStream
ObjectReadFromStream(mrpt::utils::CStream *stream)
Definition: metaprogramming_serialization.h:28
mrpt::utils::metaprogramming::ObjectReadFromStream::operator()
void operator()(T &obj)
Definition: metaprogramming_serialization.h:32



Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 23:11:08 UTC 2019