tue_config
src
binary_reader.cpp
Go to the documentation of this file.
1
#include "
tue/config/binary_reader.h
"
2
3
#include <
iostream
>
4
#include <string.h>
5
6
namespace
tue
7
{
8
namespace
config
9
{
10
11
// ----------------------------------------------------------------------------------------------------
12
13
BinaryReader::BinaryReader
(
const
std::vector<char>
& data)
14
: data_(&data[0]), byte_size_(data.size()), idx_(0), error_(false)
15
{}
16
17
BinaryReader::BinaryReader
(
const
char
* data,
unsigned
int
byte_size)
18
: data_(data), byte_size_(byte_size), idx_(0), error_(false)
19
{}
20
21
// ----------------------------------------------------------------------------------------------------
22
23
bool
BinaryReader::read
(
const
std::string
& name)
24
{
25
char
t =
data_
[
idx_
];
26
if
(t ==
'G'
|| t ==
'A'
)
27
{
28
++
idx_
;
29
if
(strcmp(&
data_
[
idx_
], name.
c_str
()) == 0)
30
{
31
idx_
+= name.
size
() + 1;
32
return
true
;
33
}
34
}
35
36
error_
=
true
;
37
return
false
;
38
}
39
40
// ----------------------------------------------------------------------------------------------------
41
42
bool
BinaryReader::end
()
43
{
44
if
(
data_
[
idx_
] ==
'E'
)
45
{
46
++
idx_
;
47
return
true
;
48
}
49
50
error_
=
true
;
51
return
false
;
52
}
53
54
// ----------------------------------------------------------------------------------------------------
55
56
bool
BinaryReader::next
()
57
{
58
if
(
data_
[
idx_
] ==
'I'
)
59
{
60
++
idx_
;
61
return
true
;
62
}
63
64
error_
=
true
;
65
return
false
;
66
}
67
68
// ----------------------------------------------------------------------------------------------------
69
70
bool
BinaryReader::value
(
const
std::string
& name,
int
& value)
71
{
72
if
(
data_
[
idx_
] ==
'V'
&& strcmp(&
data_
[++
idx_
], name.
c_str
()) == 0)
73
{
74
idx_
+= name.
size
() + 1;
75
memcpy((
char
*)&
value
, &
data_
[
idx_
],
sizeof
(
value
));
76
idx_
+=
sizeof
(
value
);
77
78
return
true
;
79
}
80
81
error_
=
true
;
82
return
false
;
83
84
}
85
86
}
// end namespace tue
87
88
}
// end namespace config
89
std::string
binary_reader.h
std::vector< char >
std::string::size
T size(T... args)
tue::config::BinaryReader::value
bool value(const std::string &name, int &value)
Definition:
binary_reader.cpp:70
tue::config::BinaryReader::idx_
unsigned int idx_
Definition:
binary_reader.h:35
iostream
std::string::c_str
T c_str(T... args)
tue::config::BinaryReader::data_
const char * data_
Definition:
binary_reader.h:31
tue::config::BinaryReader::end
bool end()
Definition:
binary_reader.cpp:42
tue::config::BinaryReader::error_
bool error_
Definition:
binary_reader.h:37
tue::config::BinaryReader::next
bool next()
Definition:
binary_reader.cpp:56
tue::config::BinaryReader::read
bool read(const std::string &name)
Definition:
binary_reader.cpp:23
tue::config::BinaryReader::BinaryReader
BinaryReader(const std::vector< char > &data)
Definition:
binary_reader.cpp:13
tue
config
tue::config::ReaderWriter config
Definition:
sdf_gtest.cpp:9
Generated on Sun Feb 23 2025 04:34:23 for tue_config by
1.8.17