Vowpal Wabbit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
VW::config::options_serializer_boost_po Struct Reference

#include <options_serializer_boost_po.h>

Inheritance diagram for VW::config::options_serializer_boost_po:
VW::config::options_serializer_i

Public Member Functions

 options_serializer_boost_po ()
 
virtual void add (base_option &option) override
 
virtual std::string str () override
 
virtual const char * data () override
 
virtual size_t size () override
 

Private Member Functions

template<typename T >
bool serialize_if_t (base_option &base_option)
 
template<typename T >
void serialize (typed_option< T > &typed_option)
 
template<typename T >
void serialize (typed_option< std::vector< T >> &typed_option)
 
template<typename TTypes >
void add_impl (base_option &options)
 
template<>
void serialize (typed_option< bool > &typed_option)
 
template<>
void add_impl (base_option &)
 
template<>
void serialize (typed_option< bool > &typed_argument)
 
template<>
void add_impl (base_option &options)
 

Private Attributes

std::stringstream m_output_stream
 

Detailed Description

Definition at line 15 of file options_serializer_boost_po.h.

Constructor & Destructor Documentation

◆ options_serializer_boost_po()

VW::config::options_serializer_boost_po::options_serializer_boost_po ( )
inline

Definition at line 17 of file options_serializer_boost_po.h.

References add(), data(), m_output_stream, size(), and str().

17 { m_output_stream.precision(15); }

Member Function Documentation

◆ add()

void options_serializer_boost_po::add ( base_option option)
overridevirtual

Implements VW::config::options_serializer_i.

Definition at line 11 of file options_serializer_boost_po.cc.

Referenced by options_serializer_boost_po(), save_load_header(), and VW::seed_vw_model().

11 { add_impl<supported_options_types>(option); }

◆ add_impl() [1/3]

template<>
void VW::config::options_serializer_boost_po::add_impl ( base_option )
private

Definition at line 23 of file options_serializer_boost_po.cc.

References THROW.

24 {
25  THROW("That is an unsupported option type.");
26 }
#define THROW(args)
Definition: vw_exception.h:181

◆ add_impl() [2/3]

template<typename TTypes >
void VW::config::options_serializer_boost_po::add_impl ( base_option options)
inlineprivate

Definition at line 59 of file options_serializer_boost_po.h.

60  {
61  if (serialize_if_t<typename TTypes::head>(options))
62  {
63  return;
64  }
65  add_impl<typename TTypes::tail>(options);
66  }

◆ add_impl() [3/3]

template<>
void VW::config::options_serializer_boost_po::add_impl ( base_option options)
private

◆ data()

const char * options_serializer_boost_po::data ( )
overridevirtual

Implements VW::config::options_serializer_i.

Definition at line 7 of file options_serializer_boost_po.cc.

References m_output_stream.

Referenced by options_serializer_boost_po().

7 { return m_output_stream.str().c_str(); }

◆ serialize() [1/4]

template<>
void VW::config::options_serializer_boost_po::serialize ( typed_option< bool > &  typed_option)
private

Definition at line 14 of file options_serializer_boost_po.cc.

References VW::config::base_option::m_name, m_output_stream, and VW::config::typed_option< T >::value().

15 {
16  if (typed_option.value())
17  {
18  m_output_stream << " --" << typed_option.m_name;
19  }
20 }
std::string m_name
Definition: options.h:17
typed_option & value(T value)
Definition: options.h:63

◆ serialize() [2/4]

template<typename T >
void VW::config::options_serializer_boost_po::serialize ( typed_option< T > &  typed_option)
inlineprivate

Definition at line 39 of file options_serializer_boost_po.h.

References VW::config::base_option::m_name, m_output_stream, and VW::config::typed_option< T >::value().

Referenced by serialize_if_t().

40  {
41  m_output_stream << " --" << typed_option.m_name << " " << typed_option.value();
42  }

◆ serialize() [3/4]

template<typename T >
void VW::config::options_serializer_boost_po::serialize ( typed_option< std::vector< T >> &  typed_option)
inlineprivate

Definition at line 45 of file options_serializer_boost_po.h.

References VW::config::base_option::m_name, m_output_stream, and VW::config::typed_option< T >::value().

46  {
47  auto vec = typed_option.value();
48  if (vec.size() > 0)
49  {
50  for (auto const& value : vec)
51  {
52  m_output_stream << " --" << typed_option.m_name;
53  m_output_stream << " " << value;
54  }
55  }
56  }

◆ serialize() [4/4]

template<>
void VW::config::options_serializer_boost_po::serialize ( typed_option< bool > &  typed_argument)
private

◆ serialize_if_t()

template<typename T >
bool VW::config::options_serializer_boost_po::serialize_if_t ( base_option base_option)
inlineprivate

Definition at line 26 of file options_serializer_boost_po.h.

References VW::config::base_option::m_type_hash, and serialize().

27  {
28  if (base_option.m_type_hash == typeid(T).hash_code())
29  {
30  auto typed = dynamic_cast<typed_option<T>&>(base_option);
31  serialize(typed);
32  return true;
33  }
34 
35  return false;
36  }
void serialize(typed_option< T > &typed_option)

◆ size()

size_t options_serializer_boost_po::size ( )
overridevirtual

Implements VW::config::options_serializer_i.

Definition at line 9 of file options_serializer_boost_po.cc.

References m_output_stream.

Referenced by options_serializer_boost_po().

9 { return m_output_stream.str().size(); }

◆ str()

std::string options_serializer_boost_po::str ( )
overridevirtual

Member Data Documentation

◆ m_output_stream

std::stringstream VW::config::options_serializer_boost_po::m_output_stream
private

Definition at line 68 of file options_serializer_boost_po.h.

Referenced by data(), options_serializer_boost_po(), serialize(), size(), and str().


The documentation for this struct was generated from the following files: