Scarab  v3.3.0
Project 8 C++ Utility Library
param_yaml.hh
Go to the documentation of this file.
1 /*
2  * param_yaml.hh
3  *
4  * Created on: Jan 19, 2016
5  * Author: bidishasen97
6  */
7 
8 #ifndef PARAM_YAML_HH_
9 #define PARAM_YAML_HH_
10 
11 #include "yaml-cpp/yaml.h"
12 
13 #include "param_codec.hh"
14 
15 
16 namespace scarab
17 {
18  class param_array;
19  class param_value;
20 
21  //***************************************
22  //************** INPUT ******************
23  //***************************************
24 
35  {
36  public:
38  virtual ~param_input_yaml();
39 
40  virtual param_ptr_t read_file( const std::string& a_filename, const param_node& a_options = param_node() );
41  virtual param_ptr_t read_string( const std::string& a_string, const param_node& a_options = param_node() );
42 
43  param_ptr_t read_node_type( const YAML::Node& a_node );
44  std::unique_ptr< param_array > sequence_handler( const YAML::Node& a_node );
45  std::unique_ptr< param_node > map_handler( const YAML::Node& a_node );
46  std::unique_ptr< param_value > scalar_handler( const YAML::Node& a_node );
47  };
48 
49  //***************************************
50  //************** OUTPUT *****************
51  //***************************************
52 
63  {
64  public:
66  virtual ~param_output_yaml();
67 
68  virtual bool write_file( const param& a_to_write, const std::string& a_filename, const param_node& a_options = param_node() );
69  virtual bool write_string( const param& a_to_write, std::string& a_string, const param_node& a_options = param_node() );
70 
71  YAML::Node check_param_type( const param& a_to_write );
72  YAML::Node param_node_handler( const param& a_to_write );
73  YAML::Node param_array_handler( const param& a_to_write );
74  YAML::Node param_value_handler( const param& a_to_write );
75  };
76 
77 } /* namespace scarab */
78 
79 #endif /* PARAM_YAML_HH_ */
#define SCARAB_API
Definition: scarab_api.hh:24
Convert Param to YAML.
Definition: param_yaml.hh:62
Convert YAML to Param.
Definition: param_yaml.hh:34
std::unique_ptr< param > param_ptr_t
Definition: param_base.hh:23