Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::BinarySerializer Class Reference
Inheritance diagram for duckdb::BinarySerializer:
Collaboration diagram for duckdb::BinarySerializer:

Classes

struct  DebugState
 

Public Member Functions

 BinarySerializer (WriteStream &stream, SerializationOptions options_p=SerializationOptions())
 
void Begin ()
 
void End ()
 
- Public Member Functions inherited from duckdb::Serializer
bool ShouldSerialize (idx_t version_added)
 
SerializationOptions GetOptions ()
 
SerializationDataGetSerializationData ()
 
void SetSerializationData (const SerializationData &other)
 
template<class T >
void WriteProperty (const field_id_t field_id, const char *tag, const T &value)
 
template<class T >
void WritePropertyWithDefault (const field_id_t field_id, const char *tag, const T &value)
 
template<class T >
void WritePropertyWithDefault (const field_id_t field_id, const char *tag, const T &value, const T &default_value)
 
template<class T >
void WritePropertyWithDefault (const field_id_t field_id, const char *tag, const CSVOption< T > &value, const T &default_value)
 
void WriteProperty (const field_id_t field_id, const char *tag, const_data_ptr_t ptr, idx_t count)
 
template<class FUNC >
void WriteObject (const field_id_t field_id, const char *tag, FUNC f)
 
template<class FUNC >
void WriteList (const field_id_t field_id, const char *tag, idx_t count, FUNC func)
 
template<>
void WriteValue (const vector< bool > &vec)
 
template<>
void WritePropertyWithDefault (const field_id_t field_id, const char *tag, const Value &value, const Value &default_value)
 

Static Public Member Functions

template<class T >
static void Serialize (const T &value, WriteStream &stream, SerializationOptions options=SerializationOptions())
 

Protected Member Functions

void OnPropertyBegin (const field_id_t field_id, const char *tag) final
 
void OnPropertyEnd () final
 
void OnOptionalPropertyBegin (const field_id_t field_id, const char *tag, bool present) final
 
void OnOptionalPropertyEnd (bool present) final
 
void OnListBegin (idx_t count) final
 
void OnListEnd () final
 
void OnObjectBegin () final
 
void OnObjectEnd () final
 
void OnNullableBegin (bool present) final
 
void OnNullableEnd () final
 
void WriteNull () final
 
void WriteValue (char value) final
 
void WriteValue (uint8_t value) final
 
void WriteValue (int8_t value) final
 
void WriteValue (uint16_t value) final
 
void WriteValue (int16_t value) final
 
void WriteValue (uint32_t value) final
 
void WriteValue (int32_t value) final
 
void WriteValue (uint64_t value) final
 
void WriteValue (int64_t value) final
 
void WriteValue (hugeint_t value) final
 
void WriteValue (uhugeint_t value) final
 
void WriteValue (float value) final
 
void WriteValue (double value) final
 
void WriteValue (const string_t value) final
 
void WriteValue (const string &value) final
 
void WriteValue (const char *value) final
 
void WriteValue (bool value) final
 
void WriteDataPtr (const_data_ptr_t ptr, idx_t count) final
 
- Protected Member Functions inherited from duckdb::Serializer
template<typename T >
std::enable_if< std::is_enum< T >::value, void >::type WriteValue (const T value)
 
template<typename T >
void WriteValue (const optionally_owned_ptr< T > &ptr)
 
template<typename T >
void WriteValue (const unique_ptr< T > &ptr)
 
template<typename T >
void WriteValue (const shared_ptr< T > &ptr)
 
template<typename T >
void WriteValue (const T *ptr)
 
template<class K , class V >
void WriteValue (const std::pair< K, V > &pair)
 
template<class T >
void WriteValue (const reference< T > ref)
 
template<class T >
void WriteValue (const vector< T > &vec)
 
template<class T >
void WriteValue (const unsafe_vector< T > &vec)
 
template<class T , class HASH , class CMP >
void WriteValue (const duckdb::unordered_set< T, HASH, CMP > &set)
 
template<class T , class HASH , class CMP >
void WriteValue (const duckdb::set< T, HASH, CMP > &set)
 
template<class K , class V , class HASH , class CMP >
void WriteValue (const duckdb::unordered_map< K, V, HASH, CMP > &map)
 
template<class K , class V , class HASH , class CMP >
void WriteValue (const duckdb::map< K, V, HASH, CMP > &map)
 
template<class V >
void WriteValue (const duckdb::InsertionOrderPreservingMap< V > &map)
 
template<typename T >
void WriteValue (const std::priority_queue< T > &queue)
 
template<typename T >
std::enable_if< has_serialize< T >::value >::type WriteValue (const T &value)
 
void WriteValue (LogicalIndex value)
 
void WriteValue (PhysicalIndex value)
 
void WriteValue (optional_idx value)
 

Protected Attributes

duckdb::SerializationData data
 
- Protected Attributes inherited from duckdb::Serializer
SerializationOptions options
 
SerializationData data
 

Private Member Functions

void WriteData (const_data_ptr_t buffer, idx_t write_size)
 
template<class T >
void Write (T element)
 
void WriteData (const char *ptr, idx_t write_size)
 
template<class T >
void VarIntEncode (T value)
 

Private Attributes

vector< DebugStatedebug_stack
 
WriteStreamstream
 

Constructor & Destructor Documentation

◆ BinarySerializer()

duckdb::BinarySerializer::BinarySerializer ( WriteStream stream,
SerializationOptions  options_p = SerializationOptions() 
)
inlineexplicit
21926 : stream(stream) {
21927 options = std::move(options_p);
21928 // Override the value set by the passed in SerializationOptions
21929 options.serialize_enum_as_string = false;
21930 }

Member Function Documentation

◆ WriteData() [1/2]

void duckdb::BinarySerializer::WriteData ( const_data_ptr_t  buffer,
idx_t  write_size 
)
inlineprivate
21939 {
21940 stream.WriteData(buffer, write_size);
21941 }

◆ Write()

template<class T >
void duckdb::BinarySerializer::Write ( element)
inlineprivate
21944 {
21945 static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
21946 WriteData(const_data_ptr_cast(&element), sizeof(T));
21947 }

◆ WriteData() [2/2]

void duckdb::BinarySerializer::WriteData ( const char ptr,
idx_t  write_size 
)
inlineprivate
21948 {
21949 WriteData(const_data_ptr_cast(ptr), write_size);
21950 }

◆ VarIntEncode()

template<class T >
void duckdb::BinarySerializer::VarIntEncode ( value)
inlineprivate
21953 {
21954 uint8_t buffer[16] = {};
21955 auto write_size = EncodingUtil::EncodeLEB128<T>(buffer, value);
21956 D_ASSERT(write_size <= sizeof(buffer));
21957 WriteData(buffer, write_size);
21958 }
::uint8_t uint8_t

◆ Serialize()

template<class T >
static void duckdb::BinarySerializer::Serialize ( const T &  value,
WriteStream stream,
SerializationOptions  options = SerializationOptions() 
)
inlinestatic
21962 {
21963 BinarySerializer serializer(stream, std::move(options));
21964 serializer.OnObjectBegin();
21965 value.Serialize(serializer);
21966 serializer.OnObjectEnd();
21967 }

◆ Begin()

void duckdb::BinarySerializer::Begin ( )
inline
21969 {
21970 OnObjectBegin();
21971 }

◆ End()

void duckdb::BinarySerializer::End ( )
inline
21972 {
21973 OnObjectEnd();
21974 }

◆ OnPropertyBegin()

void duckdb::BinarySerializer::OnPropertyBegin ( const field_id_t  field_id,
const char tag 
)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnPropertyEnd()

void duckdb::BinarySerializer::OnPropertyEnd ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnOptionalPropertyBegin()

void duckdb::BinarySerializer::OnOptionalPropertyBegin ( const field_id_t  field_id,
const char tag,
bool  present 
)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnOptionalPropertyEnd()

void duckdb::BinarySerializer::OnOptionalPropertyEnd ( bool  present)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnListBegin()

void duckdb::BinarySerializer::OnListBegin ( idx_t  count)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnListEnd()

void duckdb::BinarySerializer::OnListEnd ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnObjectBegin()

void duckdb::BinarySerializer::OnObjectBegin ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnObjectEnd()

void duckdb::BinarySerializer::OnObjectEnd ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnNullableBegin()

void duckdb::BinarySerializer::OnNullableBegin ( bool  present)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ OnNullableEnd()

void duckdb::BinarySerializer::OnNullableEnd ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteNull()

void duckdb::BinarySerializer::WriteNull ( )
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [1/17]

void duckdb::BinarySerializer::WriteValue ( char  value)
finalprotectedvirtual

Reimplemented from duckdb::Serializer.

◆ WriteValue() [2/17]

void duckdb::BinarySerializer::WriteValue ( uint8_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [3/17]

void duckdb::BinarySerializer::WriteValue ( int8_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [4/17]

void duckdb::BinarySerializer::WriteValue ( uint16_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [5/17]

void duckdb::BinarySerializer::WriteValue ( int16_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [6/17]

void duckdb::BinarySerializer::WriteValue ( uint32_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [7/17]

void duckdb::BinarySerializer::WriteValue ( int32_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [8/17]

void duckdb::BinarySerializer::WriteValue ( uint64_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [9/17]

void duckdb::BinarySerializer::WriteValue ( int64_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [10/17]

void duckdb::BinarySerializer::WriteValue ( hugeint_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [11/17]

void duckdb::BinarySerializer::WriteValue ( uhugeint_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [12/17]

void duckdb::BinarySerializer::WriteValue ( float  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [13/17]

void duckdb::BinarySerializer::WriteValue ( double  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [14/17]

void duckdb::BinarySerializer::WriteValue ( const string_t  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [15/17]

void duckdb::BinarySerializer::WriteValue ( const string &  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [16/17]

void duckdb::BinarySerializer::WriteValue ( const char value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteValue() [17/17]

void duckdb::BinarySerializer::WriteValue ( bool  value)
finalprotectedvirtual

Implements duckdb::Serializer.

◆ WriteDataPtr()

void duckdb::BinarySerializer::WriteDataPtr ( const_data_ptr_t  ptr,
idx_t  count 
)
finalprotectedvirtual

Implements duckdb::Serializer.


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