Jpp
examples
JLang
JCSV.cc
Go to the documentation of this file.
1
2
#include <iostream>
3
#include <iomanip>
4
#include <vector>
5
#include <deque>
6
#include <set>
7
#include <map>
8
#include <iterator>
9
#include <algorithm>
10
11
#include "
JLang/JCSV.hh
"
12
#include "
Jeep/JParser.hh
"
13
#include "
Jeep/JMessage.hh
"
14
15
namespace
{
16
17
/**
18
* Get element in buffer at given index.
19
*
20
* \param buffer buffer
21
* \param index index
22
* \return element
23
*/
24
template
<
class
T>
25
inline
typename
T::value_type
get
(
const
T& buffer,
int
index)
26
{
27
typename
T::const_iterator p = buffer.begin();
28
29
advance
(p, index);
30
31
return
*p;
32
}
33
}
34
35
36
/**
37
* \file
38
*
39
* Example program to test assignment of comma separated values (see JCSV.hh).
40
* \author mdejong
41
*/
42
int
main
(
int
argc,
char
**argv)
43
{
44
using namespace
std
;
45
using namespace
JPP
;
46
47
int
debug
;
48
49
try
{
50
51
JParser<>
zap(
"Example program to test assignment of comma separated values."
);
52
53
zap[
'd'
] =
make_field
(
debug
) = 0;
54
55
zap(argc, argv);
56
}
57
catch
(
const
exception &error) {
58
FATAL
(error.what() << endl);
59
}
60
61
const
int
a = 7;
62
const
int
b = 8;
63
const
int
c = 9;
64
const
int
d = 10;
65
66
{
67
vector<int>
buffer;
68
69
assign
(buffer) = a, b, c, d;
70
71
ASSERT
(
get
(buffer,0) == a);
72
ASSERT
(
get
(buffer,1) == b);
73
ASSERT
(
get
(buffer,2) == c);
74
ASSERT
(
get
(buffer,3) == d);
75
}
76
77
{
78
set<int>
buffer;
79
80
assign
(buffer) = d, c, b, a;
81
82
ASSERT
(
get
(buffer,0) == a);
83
ASSERT
(
get
(buffer,1) == b);
84
ASSERT
(
get
(buffer,2) == c);
85
ASSERT
(
get
(buffer,3) == d);
86
}
87
88
{
89
map<int, int>
buffer;
90
91
assign
(buffer) = make_pair(1,-1), make_pair(2,-2), make_pair(3,-3), make_pair(4,-4);
92
93
ASSERT
(buffer[1] == -1);
94
ASSERT
(buffer[2] == -2);
95
ASSERT
(buffer[3] == -3);
96
ASSERT
(buffer[4] == -4);
97
}
98
99
{
100
deque<int> buffer;
101
102
assign
(front_inserter(buffer)) = b, a;
103
assign
(back_inserter (buffer)) = c, d;
104
105
ASSERT
(
get
(buffer,0) == a);
106
ASSERT
(
get
(buffer,1) == b);
107
ASSERT
(
get
(buffer,2) == c);
108
ASSERT
(
get
(buffer,3) == d);
109
}
110
111
return
0;
112
}
JMessage.hh
ASSERT
#define ASSERT(A,...)
Assert macro.
Definition:
JMessage.hh:90
JROOT::advance
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
Definition:
JCounter.hh:35
JLANG::assign
JAssignSequence< typename JContainer_t::value_type > assign(JContainer_t &out)
Helper method to assign sequence of Comma Separated Values to output container.
Definition:
JCSV.hh:129
std::vector< int >
JPARSER::JParser
Utility class to parse command line options.
Definition:
JParser.hh:1493
std::set< int >
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition:
JAAnetToolkit.hh:37
debug
int debug
debug level
Definition:
JSirene.cc:59
JCSV.hh
std::map
Definition:
JSTDTypes.hh:16
JParser.hh
main
int main(int argc, char **argv)
Definition:
JCSV.cc:42
make_field
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition:
JParser.hh:1954
std
Definition:
jaanetDictionary.h:36
JAANET::get
T get(const JHead &header)
Get object from header.
Definition:
JHeadToolkit.hh:295
FATAL
#define FATAL(A)
Definition:
JMessage.hh:67
Generated by
1.8.16