Scarab  v2.1.1
Project 8 C++ Utility Library
test_param_array.cc
Go to the documentation of this file.
1 /*
2  * test_param_array.cc
3  *
4  * Created on: Jul 17, 2018
5  * Author: N.S. Oblath
6  *
7  * Output should be something like:
8  *
9 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(54): Creating param array
10 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(57): Adding a value
11 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(60): Adding an array
12 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(69): Printing contents:
13 [
14  5
15 
16  {
17  five-hundred : 500
18  }
19 
20 
21  [
22  5000
23  ]
24 
25 ]
26 
27 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(71):
28 {
29  five-hundred : 500
30 }
31 
32 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(72):
33 [
34 ]
35 
36 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(74): Access:
37 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(75): 5
38 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(76): 5
39 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(77): 500
40 2018-07-18 01:33:38 [ INFO] (tid 0x7fff9c9dc380) t_param_array.cc(78): 5000
41 201
42  *
43  */
44 
45 #include "param.hh"
46 
47 #include "logger.hh"
48 
49 LOGGER( testlog, "test_param_array" )
50 
51 using namespace scarab;
52 
53 int main()
54 {
55  LINFO( testlog, "Creating param array" );
56  param_array array;
57 
58  LINFO( testlog, "Adding a value" );
59  array.push_back( param_value(5) );
60 
61  LINFO( testlog, "Adding an array" );
62  param_node subnode;
63  subnode.add( "five-hundred", param_value(500) );
64  array.push_back( subnode );
65 
66  param_array subarray;
67  subarray.push_back( param_value("5000") );
68  array.push_back( std::move(subarray) );
69 
70  LINFO( testlog, "Printing contents:" << array );
71 
72  LINFO( testlog, subnode );
73  LINFO( testlog, subarray );
74 
75  LINFO( testlog, "Access:" );
76  LINFO( testlog, array.get_value< int >(0) );
77  LINFO( testlog, array[0]() );
78  LINFO( testlog, array[1]["five-hundred"]() );
79  LINFO( testlog, array[2][0]() );
80 
81  return 0;
82 }
83 
84 
85 
#define LOGGER(I, K)
Definition: logger.hh:352
std::string get_value(unsigned a_index) const
Definition: param_array.hh:210
Contains the logger class and macros, based on Kasper&#39;s KLogger class.
#define LINFO(...)
Definition: logger.hh:362
int main()
void push_back(const param &a_value)
Definition: param_array.hh:310
bool add(const std::string &a_name, const param &a_value)
Areates a copy of a_value.
Definition: param_node.hh:302