tue_config
binary_reader.cpp
Go to the documentation of this file.
2 
3 #include <iostream>
4 #include <string.h>
5 
6 namespace tue
7 {
8 namespace config
9 {
10 
11 // ----------------------------------------------------------------------------------------------------
12 
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 
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 
43 {
44  if (data_[idx_] == 'E')
45  {
46  ++idx_;
47  return true;
48  }
49 
50  error_ = true;
51  return false;
52 }
53 
54 // ----------------------------------------------------------------------------------------------------
55 
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