eVision C++ API 26.10.0-beta.2.dev
Loading...
Searching...
No Matches
eVision::EMemorySerializer Class Reference

A type of ESerializer suitable for serialization and deserialization to and from memory buffers. More...

#include <eVision/Easy/EMemorySerializer.h>

Inheritance diagram for eVision::EMemorySerializer:
Collaboration diagram for eVision::EMemorySerializer:

Public Member Functions

 EMemorySerializer (eVision::ESerializerMode mode)
 Initializes an EMemorySerializer object in read or write mode.
 EMemorySerializer (eVision::ESerializerMode mode, const std::vector< uint8_t > &bytes)
 Initializes an EMemorySerializer object in read or write mode.
 EMemorySerializer (eVision::ESerializerMode mode, void *externalBuffer, uint32_t externalBufferSize)
 Initializes an EMemorySerializer object in read or write mode.
virtual ~EMemorySerializer () throw ()
virtual eVision::ESerializerMode GetMode () const
 The current mode of the serializer.
void SetMode (eVision::ESerializerMode mode)
 Sets the current mode of the EMemorySerializer.
virtual void Close ()
 This method has no effect in EMemorySerializer::EMemorySerializer.
virtual bool GetClosed () const
 Always false in EMemorySerializer::EMemorySerializer.
const void * GetBuffer () const
 Address of the internal buffer.
uint32_t GetBufferSize () const
 Size of the internal buffer.
std::vector< uint8_t > GetBufferAsVector () const
 The internal buffer as a vector of bytes.
uint32_t GetCurrentPosition ()
 Current position in the buffer.
void SetCurrentPosition (uint32_t currentPosition)
 Current position in the buffer.
 EMemorySerializer (CppWrapperInternal::InternalConstructor)
Public Member Functions inherited from eVision::ESerializer
virtual ~ESerializer () throw ()
virtual bool GetWriting () const
 Returns true if the ESerializer object has been created for writing and false otherwise.
 ESerializer (CppWrapperInternal::InternalConstructor)

Additional Inherited Members

Static Public Member Functions inherited from eVision::ESerializer
static std::unique_ptr< eVision::ESerializer > CreateFileWriter (const std::string &filePath, eVision::ESerializerFileWriterMode mode)
 Returns an ESerializer object suitable for opening a file and writing into it.
static std::unique_ptr< eVision::ESerializer > CreateFileWriter (const std::string &filePath)
 Returns an ESerializer object suitable for opening a file and writing into it.
static std::unique_ptr< eVision::ESerializer > CreateFileReader (const std::string &filePath)
 Returns an ESerializer object suitable for reading from a file.
static std::unique_ptr< eVision::ESerializer > CreateMemoryWriter ()
 Returns an ESerializer object suitable for serializing into a buffer.
static std::unique_ptr< eVision::ESerializer > CreateMemoryWriter (uint32_t initialBufferSize)
 Returns an ESerializer object suitable for serializing into a buffer.
static std::unique_ptr< eVision::ESerializer > CreateMemoryWriter (void *buffer, uint32_t size)
 Returns an ESerializer object suitable for serializing into a buffer.
static std::unique_ptr< eVision::ESerializer > CreateMemoryReader (void *buffer, uint32_t size)
 Returns an ESerializer object suitable for reading from a buffer.
static std::unique_ptr< eVision::ESerializer > CreateMemoryReader (const std::vector< uint8_t > &bytes)
 Returns an ESerializer object suitable for reading from a buffer.
static std::unique_ptr< eVision::ESerializer > CreateCallbackWriter (void *isEOS, void *setCurrentPos, void *getCurrentPos, void *serializeMemory, void *close, void *cookie)
static std::unique_ptr< eVision::ESerializer > CreateCallbackReader (void *isEOS, void *setCurrentPos, void *getCurrentPos, void *serializeMemory, void *close, void *cookie)
Public Attributes inherited from eVision::ESerializer
CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

A type of ESerializer suitable for serialization and deserialization to and from memory buffers.

License(s): None

Constructor & Destructor Documentation

◆ EMemorySerializer() [1/4]

eVision::EMemorySerializer::EMemorySerializer ( eVision::ESerializerMode mode)

Initializes an EMemorySerializer object in read or write mode.

Parameters
modeThe serializer mode, read or write.

In read mode:

A buffer should be provided, either using a vector of bytes or an external buffer, in order to read the bytes from it.

In write mode:

If an external buffer is not provided, a internal buffer will be automatically created. In the case where an internal buffer is used that buffer will automatically be resized as needed during serialization operations.

◆ EMemorySerializer() [2/4]

eVision::EMemorySerializer::EMemorySerializer ( eVision::ESerializerMode mode,
const std::vector< uint8_t > & bytes )

Initializes an EMemorySerializer object in read or write mode.

Parameters
modeThe serializer mode, read or write.
bytesA vector containing bytes to read. Can only be used in read mode.

Those bytes will be copied into EMemorySerializer's internal buffer.

In read mode:

A buffer should be provided, either using a vector of bytes or an external buffer, in order to read the bytes from it.

In write mode:

If an external buffer is not provided, a internal buffer will be automatically created. In the case where an internal buffer is used that buffer will automatically be resized as needed during serialization operations.

◆ EMemorySerializer() [3/4]

eVision::EMemorySerializer::EMemorySerializer ( eVision::ESerializerMode mode,
void * externalBuffer,
uint32_t externalBufferSize )

Initializes an EMemorySerializer object in read or write mode.

Parameters
modeThe serializer mode, read or write.
externalBufferAddress of an external buffer to be used by the memory serializer.

Can be used in both read and write mode. When using an external buffer that buffer is not managed by EMemorySerializer. It is the responsability of the user to ensure this buffer is available during read and write operations.

Parameters
externalBufferSizeMust be specified if the buffer parameter is used. Size of the external memory buffer.

In read mode:

A buffer should be provided, either using a vector of bytes or an external buffer, in order to read the bytes from it.

In write mode:

If an external buffer is not provided, a internal buffer will be automatically created. In the case where an internal buffer is used that buffer will automatically be resized as needed during serialization operations.

◆ ~EMemorySerializer()

eVision::EMemorySerializer::~EMemorySerializer ( )
throw ( )
virtual

◆ EMemorySerializer() [4/4]

eVision::EMemorySerializer::EMemorySerializer ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ Close()

void eVision::EMemorySerializer::Close ( )
virtual

This method has no effect in EMemorySerializer::EMemorySerializer.

Reimplemented from eVision::ESerializer.

◆ GetBuffer()

const void * eVision::EMemorySerializer::GetBuffer ( ) const

Address of the internal buffer.

◆ GetBufferAsVector()

std::vector< uint8_t > eVision::EMemorySerializer::GetBufferAsVector ( ) const

The internal buffer as a vector of bytes.

◆ GetBufferSize()

uint32_t eVision::EMemorySerializer::GetBufferSize ( ) const

Size of the internal buffer.

◆ GetClosed()

bool eVision::EMemorySerializer::GetClosed ( ) const
virtual

◆ GetCurrentPosition()

uint32_t eVision::EMemorySerializer::GetCurrentPosition ( )

Current position in the buffer.

◆ GetMode()

eVision::ESerializerMode eVision::EMemorySerializer::GetMode ( ) const
virtual

The current mode of the serializer.

Implements eVision::ESerializer.

◆ SetCurrentPosition()

void eVision::EMemorySerializer::SetCurrentPosition ( uint32_t currentPosition)

Current position in the buffer.

◆ SetMode()

void eVision::EMemorySerializer::SetMode ( eVision::ESerializerMode mode)

Sets the current mode of the EMemorySerializer.

Calling this method also resets the position of the cursor in the serializer.

Parameters
modeThe mode