GALib-Parallel
Header-only C++ library for parallel evolutionary algorithms
Loading...
Searching...
No Matches
Public Member Functions | List of all members
galib::internal::Serializer< GeneType > Class Template Referenceabstract

Interface for converting individuals to/from byte streams for network transport. More...

#include <Serializer.h>

Inheritance diagram for galib::internal::Serializer< GeneType >:
[legend]

Public Member Functions

virtual ~Serializer ()=default
 
virtual std::vector< std::uint8_t > serialize (const std::vector< Individual< GeneType > > &individuals) const =0
 Serializes multiple individuals into a byte vector.
 
virtual std::vector< std::uint8_t > serialize (const Individual< GeneType > &individual) const =0
 Serializes a single individual.
 
virtual std::vector< Individual< GeneType > > deserialize (const std::vector< std::uint8_t > &individuals_serialized) const =0
 Deserializes a byte vector into individuals.
 
virtual std::vector< Individual< GeneType > > deserialize (const std::uint8_t *data, std::size_t size) const =0
 Deserializes from a raw pointer.
 
virtual std::size_t getSerializedSize (std::size_t individuals_count, std::size_t genes_count) const =0
 Calculates the exact size required to serialize a specific number of individuals.
 

Detailed Description

template<typename GeneType>
class galib::internal::Serializer< GeneType >

Interface for converting individuals to/from byte streams for network transport.

Implementations define the binary wire format used during migration.

Template Parameters
GeneTypeThe gene type of the individuals.

Definition at line 19 of file Serializer.h.

Constructor & Destructor Documentation

◆ ~Serializer()

template<typename GeneType >
virtual galib::internal::Serializer< GeneType >::~Serializer ( )
virtualdefault

Member Function Documentation

◆ deserialize() [1/2]

template<typename GeneType >
virtual std::vector< Individual< GeneType > > galib::internal::Serializer< GeneType >::deserialize ( const std::uint8_t *  data,
std::size_t  size 
) const
pure virtual

Deserializes from a raw pointer.

Parameters
dataPointer to the start of the data.
sizeNumber of bytes to read.
Returns
A vector of reconstructed individuals.

Implemented in galib::internal::BinarySerializer< GeneType >.

◆ deserialize() [2/2]

template<typename GeneType >
virtual std::vector< Individual< GeneType > > galib::internal::Serializer< GeneType >::deserialize ( const std::vector< std::uint8_t > &  individuals_serialized) const
pure virtual

Deserializes a byte vector into individuals.

Parameters
individuals_serializedThe byte stream to read.
Returns
A vector of reconstructed individuals.

Implemented in galib::internal::BinarySerializer< GeneType >.

Referenced by galib::internal::MpiCommunicator< GeneType >::allReduceBest(), and galib::internal::MpiCommunicator< GeneType >::update().

◆ getSerializedSize()

template<typename GeneType >
virtual std::size_t galib::internal::Serializer< GeneType >::getSerializedSize ( std::size_t  individuals_count,
std::size_t  genes_count 
) const
pure virtual

Calculates the exact size required to serialize a specific number of individuals.

Parameters
individuals_countNumber of individuals.
genes_countNumber of genes per individual.
Returns
Size in bytes.

Implemented in galib::internal::BinarySerializer< GeneType >.

◆ serialize() [1/2]

template<typename GeneType >
virtual std::vector< std::uint8_t > galib::internal::Serializer< GeneType >::serialize ( const Individual< GeneType > &  individual) const
pure virtual

Serializes a single individual.

Parameters
individualThe individual to serialize.
Returns
A vector of bytes.

Implemented in galib::internal::BinarySerializer< GeneType >.

◆ serialize() [2/2]

template<typename GeneType >
virtual std::vector< std::uint8_t > galib::internal::Serializer< GeneType >::serialize ( const std::vector< Individual< GeneType > > &  individuals) const
pure virtual

Serializes multiple individuals into a byte vector.

Parameters
individualsThe individuals to serialize.
Returns
A vector of bytes representing the individuals.

Implemented in galib::internal::BinarySerializer< GeneType >.

Referenced by galib::internal::MpiCommunicator< GeneType >::allReduceBest(), galib::internal::MpiCommunicator< GeneType >::broadcast(), and galib::internal::MpiCommunicator< GeneType >::send().


The documentation for this class was generated from the following file: