MRPT
2.0.4
|
CArchive for mrpt::io::CStream classes (use as template argument).
Definition at line 571 of file CArchive.h.
#include <mrpt/serialization/CArchive.h>
Public Types | |
using | Ptr = std::shared_ptr< CArchive > |
using | UniquePtr = std::unique_ptr< CArchive > |
Public Member Functions | |
CArchiveStreamBase (STREAM &s) | |
Serialization API for generic "archives" I/O streams | |
size_t | ReadBuffer (void *Buffer, size_t Count) |
Reads a block of bytes from the stream into Buffer. More... | |
template<typename T > | |
size_t | ReadBufferFixEndianness (T *ptr, size_t ElementCount) |
Reads a sequence of elemental datatypes, taking care of reordering their bytes from the MRPT stream standard (little endianness) to the format of the running architecture. More... | |
void | WriteBuffer (const void *Buffer, size_t Count) |
Writes a block of bytes to the stream from Buffer. More... | |
template<typename T > | |
void | WriteBufferFixEndianness (const T *ptr, size_t ElementCount) |
Writes a sequence of elemental datatypes, taking care of reordering their bytes from the running architecture to MRPT stream standard (little endianness). More... | |
template<typename STORED_TYPE , typename CAST_TO_TYPE > | |
void | ReadAsAndCastTo (CAST_TO_TYPE &read_here) |
Read a value from a stream stored in a type different of the target variable, making the conversion via static_cast. More... | |
template<typename STORED_TYPE > | |
STORED_TYPE | ReadAs () |
De-serialize a variable and returns it by value. More... | |
template<typename TYPE_TO_STORE , typename TYPE_FROM_ACTUAL > | |
CArchive & | WriteAs (const TYPE_FROM_ACTUAL &value) |
void | WriteObject (const CSerializable *o) |
Writes an object to the stream. More... | |
void | WriteObject (const CSerializable &o) |
CSerializable::Ptr | ReadObject () |
Reads an object from stream, its class determined at runtime, and returns a smart pointer to the object. More... | |
template<typename T > | |
T::Ptr | ReadObject () |
Reads an object from stream, its class determined at runtime, and returns a smart pointer to the object. More... | |
void | ReadObject (CSerializable *existingObj) |
Reads an object from stream, where its class must be the same as the supplied object, where the loaded object will be stored in. More... | |
template<typename... T> | |
std::variant< T... > | ReadVariant () |
Reads a variant from stream, its class determined at runtime, and returns a variant to the object. More... | |
template<typename T > | |
void | WriteVariant (T t) |
Writes a Variant to the stream. More... | |
template<typename T > | |
T | ReadPOD () |
Reads a simple POD type and returns by value. More... | |
void | sendMessage (const CMessage &msg) |
Send a message to the device. More... | |
bool | receiveMessage (CMessage &msg) |
Tries to receive a message from the device. More... | |
CArchive & | operator<< (const CSerializable &obj) |
Write a CSerializable object to a stream in the binary MRPT format. More... | |
CArchive & | operator<< (const CSerializable::Ptr &pObj) |
CArchive & | operator>> (CSerializable &obj) |
Reads a CSerializable object from the stream. More... | |
CArchive & | operator>> (CSerializable::Ptr &pObj) |
Protected Member Functions | |
size_t | write (const void *d, size_t n) override |
Writes a block of bytes. More... | |
size_t | read (void *d, size_t n) override |
Reads a block of bytes. More... | |
void | internal_ReadObject (CSerializable *newObj, const std::string &className, bool isOldFormat, int8_t version) |
Read the object. More... | |
void | internal_ReadObjectHeader (std::string &className, bool &isOldFormat, int8_t &version) |
Read the object Header. More... | |
Private Attributes | |
STREAM & | m_s |
|
inherited |
Definition at line 60 of file CArchive.h.
|
inherited |
Definition at line 61 of file CArchive.h.
|
inline |
Definition at line 576 of file CArchive.h.
|
protectedinherited |
Read the object.
Definition at line 428 of file CArchive.cpp.
References mrpt::serialization::CArchive::ReadBuffer(), SERIALIZATION_END_FLAG, mrpt::serialization::CSerializable::serializeFrom(), THROW_EXCEPTION, THROW_EXCEPTION_FMT, and THROW_STACKED_EXCEPTION_CUSTOM_MSG2.
Referenced by mrpt::serialization::CArchive::ReadObject(), and mrpt::serialization::CArchive::ReadVariant().
|
protectedinherited |
Read the object Header.
Definition at line 329 of file CArchive.cpp.
References ASSERT_, mrpt::serialization::CArchive::ReadBuffer(), mrpt::serialization::CArchive::ReadBufferFixEndianness(), THROW_EXCEPTION, THROW_STACKED_EXCEPTION_CUSTOM_MSG2, and THROW_TYPED_EXCEPTION.
Referenced by mrpt::serialization::CArchive::ReadObject(), and mrpt::serialization::CArchive::ReadVariant().
|
inherited |
Write a CSerializable object to a stream in the binary MRPT format.
Write an object to a stream in the binary MRPT format.
Definition at line 146 of file CArchive.cpp.
References mrpt::serialization::CArchive::WriteObject().
|
inherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 139 of file CArchive.cpp.
References mrpt::serialization::CArchive::WriteObject().
|
inherited |
Reads a CSerializable object from the stream.
Definition at line 158 of file CArchive.cpp.
References mrpt::serialization::CArchive::ReadObject().
|
inherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 152 of file CArchive.cpp.
References mrpt::serialization::CArchive::ReadObject().
|
inlineoverrideprotectedvirtual |
Reads a block of bytes.
std::exception | On any error, or if ZERO bytes are read. |
Implements mrpt::serialization::CArchive.
Definition at line 580 of file CArchive.h.
References mrpt::serialization::CArchiveStreamBase< STREAM >::m_s.
|
inlineinherited |
De-serialize a variable and returns it by value.
Definition at line 155 of file CArchive.h.
Referenced by mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::internal_readFromStream(), mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::internal_readFromStream(), mrpt::math::operator>>(), mrpt::opengl::CRenderizableShaderPoints::params_deserialize(), mrpt::math::CMatrixF::serializeFrom(), mrpt::poses::CPoses3DSequence::serializeFrom(), mrpt::poses::CPoses2DSequence::serializeFrom(), mrpt::math::CMatrixD::serializeFrom(), mrpt::poses::CPose3DPDFGrid::serializeFrom(), mrpt::obs::CActionCollection::serializeFrom(), mrpt::obs::CActionRobotMovement2D::serializeFrom(), mrpt::opengl::CMesh3D::serializeFrom(), mrpt::obs::CObservationRotatingScan::serializeFrom(), mrpt::opengl::COpenGLViewport::serializeFrom(), mrpt::obs::CRawlog::serializeFrom(), mrpt::obs::CObservationRGBD360::serializeFrom(), and mrpt::obs::CObservation3DRangeScan::serializeFrom().
|
inlineinherited |
Read a value from a stream stored in a type different of the target variable, making the conversion via static_cast.
Useful for coding backwards compatible de-serialization blocks
Definition at line 147 of file CArchive.h.
Referenced by mrpt::nav::ClearanceDiagram::readFromStream(), mrpt::maps::CPointsMap::TRenderOptions::readFromStream(), mrpt::nav::CLogFileRecord::serializeFrom(), mrpt::maps::COccupancyGridMap3D::serializeFrom(), and mrpt::opengl::CColorBar::serializeFrom().
|
inherited |
Reads a block of bytes from the stream into Buffer.
std::exception | On any error, or if ZERO bytes are read. |
Definition at line 25 of file CArchive.cpp.
References ASSERT_, mrpt::serialization::CArchive::read(), and THROW_EXCEPTION.
Referenced by mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::internal_readFromStream(), mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::internal_readFromStream(), mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::internal_readFromStream(), mrpt::obs::gnss::Message_NV_OEM6_VERSION::internal_readFromStream(), mrpt::serialization::CArchive::internal_ReadObject(), mrpt::serialization::CArchive::internal_ReadObjectHeader(), mrpt::serialization::operator>>(), mrpt::serialization::CArchive::ReadBufferFixEndianness(), mrpt::opengl::CRenderizable::readFromStreamRender(), mrpt::serialization::CArchive::receiveMessage(), mrpt::math::CMatrixB::serializeFrom(), mrpt::obs::CActionRobotMovement2D::serializeFrom(), mrpt::maps::CWirelessPowerGridMap2D::serializeFrom(), mrpt::maps::CGasConcentrationGridMap2D::serializeFrom(), mrpt::maps::CHeightGridMap2D_MRF::serializeFrom(), mrpt::maps::COccupancyGridMap3D::serializeFrom(), mrpt::maps::CReflectivityGridMap2D::serializeFrom(), mrpt::obs::CObservation2DRangeScan::serializeFrom(), mrpt::maps::COccupancyGridMap2D::serializeFrom(), mrpt::obs::CObservationGPS::serializeFrom(), mrpt::maps::CRandomFieldGridMap3D::serializeFrom(), mrpt::obs::CObservationVelodyneScan::serializeFrom(), mrpt::img::CImage::serializeFrom(), mrpt::nav::CLogFileRecord_ND::serializeFrom(), and mrpt::obs::CObservation3DRangeScan::serializeFrom().
|
inlineinherited |
Reads a sequence of elemental datatypes, taking care of reordering their bytes from the MRPT stream standard (little endianness) to the format of the running architecture.
ElementCount | The number of elements (not bytes) to read. |
ptr | A pointer to the first output element in an array (or std::vector<>, etc...). |
std::exception | On any error, or if ZERO bytes are read. |
Definition at line 94 of file CArchive.h.
References mrpt::serialization::CArchive::ReadBuffer(), and mrpt::reverseBytesInPlace().
Referenced by mrpt::serialization::CArchive::internal_ReadObjectHeader(), mrpt::math::operator>>(), mrpt::serialization::CArchive::ReadPOD(), mrpt::serialization::detail::readStdVectorToStream(), mrpt::math::CPolygon::serializeFrom(), mrpt::math::CMatrixF::serializeFrom(), mrpt::math::CMatrixD::serializeFrom(), mrpt::maps::CPointsMapXYZI::serializeFrom(), mrpt::maps::CColouredPointsMap::serializeFrom(), mrpt::maps::CWeightedPointsMap::serializeFrom(), mrpt::nav::CLogFileRecord::serializeFrom(), mrpt::maps::CSimplePointsMap::serializeFrom(), mrpt::maps::COccupancyGridMap3D::serializeFrom(), mrpt::opengl::CMesh3D::serializeFrom(), mrpt::obs::CSensoryFrame::serializeFrom(), mrpt::obs::CObservation2DRangeScan::serializeFrom(), mrpt::maps::COccupancyGridMap2D::serializeFrom(), mrpt::obs::CObservationRotatingScan::serializeFrom(), mrpt::obs::CObservationGPS::serializeFrom(), mrpt::obs::CObservationRGBD360::serializeFrom(), and mrpt::obs::CObservation3DRangeScan::serializeFrom().
|
inlineinherited |
Reads an object from stream, its class determined at runtime, and returns a smart pointer to the object.
std::exception | On I/O error or undefined class. |
CExceptionEOF | On an End-Of-File condition found at a correct place: an EOF that abruptly finishes in the middle of one object raises a plain std::exception instead. |
Definition at line 178 of file CArchive.h.
Referenced by mrpt::math::operator>>(), mrpt::serialization::CArchive::operator>>(), mrpt::serialization::operator>>(), mrpt::nav::CLogFileRecord::serializeFrom(), and mrpt::obs::CRawlog::serializeFrom().
|
inlineinherited |
Reads an object from stream, its class determined at runtime, and returns a smart pointer to the object.
This version is similar to std::make_shared<T>.
std::exception | On I/O error or undefined class. |
CExceptionEOF | On an End-Of-File condition found at a correct place: an EOF that abruptly finishes in the middle of one object raises a plain std::exception instead. |
Definition at line 188 of file CArchive.h.
References mrpt::rtti::TRuntimeClassId::createObject(), mrpt::rtti::findRegisteredClass(), mrpt::ptr_cast< CAST_TO >::from(), mrpt::serialization::CArchive::internal_ReadObject(), mrpt::serialization::CArchive::internal_ReadObjectHeader(), and THROW_EXCEPTION_FMT.
|
inherited |
Reads an object from stream, where its class must be the same as the supplied object, where the loaded object will be stored in.
std::exception | On I/O error or different class found. |
CExceptionEOF | On an End-Of-File condition found at a correct place: an EOF that abruptly finishes in the middle of one object raises a plain std::exception instead. |
Definition at line 473 of file CArchive.cpp.
References ASSERT_, mrpt::rtti::findRegisteredClass(), mrpt::format(), mrpt::serialization::CSerializable::GetRuntimeClass(), mrpt::serialization::CArchive::internal_ReadObject(), mrpt::serialization::CArchive::internal_ReadObjectHeader(), THROW_EXCEPTION, and THROW_EXCEPTION_FMT.
|
inlineinherited |
Reads a simple POD type and returns by value.
Useful when stream >> var;
cannot be used becuase of errors of misaligned reference binding. Use with macro MRPT_READ_POD
to avoid typing the type T yourself.
s << var;
is safe for misaligned variables. Definition at line 303 of file CArchive.h.
References mrpt::serialization::CArchive::ReadBufferFixEndianness().
Referenced by mrpt::obs::CObservationPointCloud::serializeFrom().
|
inlineinherited |
Reads a variant from stream, its class determined at runtime, and returns a variant to the object.
To be compatible with the current polymorphic system this support smart pointer types. For pointer types, This will bind to the first possible pointer type. variant<CSerializable::Ptr, CRenderizable::Ptr>
std::exception | On I/O error or undefined class. |
CExceptionEOF | On an End-Of-File condition found at a correct place: an EOF that abruptly finishes in the middle of one object raises a plain std::exception instead. |
Definition at line 258 of file CArchive.h.
References mrpt::rtti::TRuntimeClassId::createObject(), mrpt::rtti::findRegisteredClass(), mrpt::ptr_cast< CAST_TO >::from(), mrpt::serialization::CArchive::internal_ReadObject(), mrpt::serialization::CArchive::internal_ReadObjectHeader(), mrpt::serialization::CArchive::ReadVariant_helper(), and THROW_EXCEPTION_FMT.
Referenced by mrpt::serialization::operator>>().
|
inherited |
Tries to receive a message from the device.
std::exception | On communication errors |
Definition at line 555 of file CArchive.cpp.
References mrpt::serialization::CMessage::content, MAKEWORD16B, mrpt::system::os::memcpy(), MRPT_END, MRPT_START, mrpt::serialization::CArchive::ReadBuffer(), and mrpt::serialization::CMessage::type.
|
inherited |
Send a message to the device.
Note that only the low byte from the "type" field will be used.
For frames of size < 255 the frame format is an array of bytes in this order:
For frames of size > 255 the frame format is an array of bytes in this order:
std::exception | On communication errors |
Definition at line 521 of file CArchive.cpp.
References mrpt::serialization::CMessage::content, mrpt::system::os::memcpy(), MRPT_END, MRPT_START, mrpt::serialization::CMessage::type, and mrpt::serialization::CArchive::WriteBuffer().
|
inlineoverrideprotectedvirtual |
Writes a block of bytes.
std::exception | On any error |
Implements mrpt::serialization::CArchive.
Definition at line 579 of file CArchive.h.
References mrpt::serialization::CArchiveStreamBase< STREAM >::m_s.
|
inlineinherited |
Definition at line 162 of file CArchive.h.
Referenced by mrpt::math::operator<<().
|
inherited |
Writes a block of bytes to the stream from Buffer.
std::exception | On any error |
Definition at line 49 of file CArchive.cpp.
References ASSERT_, THROW_EXCEPTION, and mrpt::serialization::CArchive::write().
Referenced by mrpt::serialization::CArchive::sendMessage(), mrpt::serialization::CArchive::WriteBufferFixEndianness(), and mrpt::serialization::CArchive::WriteObject().
|
inlineinherited |
Writes a sequence of elemental datatypes, taking care of reordering their bytes from the running architecture to MRPT stream standard (little endianness).
ElementCount | The number of elements (not bytes) to write. |
ptr | A pointer to the first input element in an array (or std::vector<>, etc...). Example of usage: vector<float> vec = ... uint32_t N = vec.size(); s << N if (N) s.WriteBufferFixEndianness<float>(&vec[0],N); |
std::exception | On any error |
Definition at line 133 of file CArchive.h.
References mrpt::serialization::CArchive::WriteBuffer().
Referenced by mrpt::math::operator<<(), and mrpt::serialization::detail::writeStdVectorToStream().
|
inherited |
Writes an object to the stream.
Definition at line 101 of file CArchive.cpp.
References mrpt::rtti::TRuntimeClassId::className, mrpt::serialization::CSerializable::GetRuntimeClass(), MRPT_END, MRPT_START, SERIALIZATION_END_FLAG, mrpt::serialization::CSerializable::serializeGetVersion(), mrpt::serialization::CSerializable::serializeTo(), and mrpt::serialization::CArchive::WriteBuffer().
Referenced by mrpt::serialization::CArchive::operator<<(), and mrpt::serialization::CArchive::WriteVariant().
|
inlineinherited |
Definition at line 170 of file CArchive.h.
References mrpt::serialization::CArchive::WriteObject().
Referenced by mrpt::serialization::CArchive::WriteObject().
|
inlineinherited |
Writes a Variant to the stream.
Definition at line 289 of file CArchive.h.
References mrpt::serialization::CArchive::WriteObject().
|
private |
Definition at line 573 of file CArchive.h.
Referenced by mrpt::serialization::CArchiveStreamBase< std::istream >::read(), mrpt::serialization::CArchiveStreamBase< std::iostream >::read(), mrpt::serialization::CArchiveStreamBase< STREAM >::read(), mrpt::serialization::CArchiveStreamBase< std::ostream >::write(), mrpt::serialization::CArchiveStreamBase< std::iostream >::write(), and mrpt::serialization::CArchiveStreamBase< STREAM >::write().
Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020 |