data_version.cc
Go to the documentation of this file.
2 
3 #include <sstream>
4 
5 namespace point_one {
6 namespace fusion_engine {
7 namespace messages {
8 
9 std::ostream& operator<<(std::ostream& stream, const DataVersion& ver) {
10  if (ver.IsValid()) {
11  return stream << (int)ver.major_version << "." << ver.minor_version;
12  } else {
13  return stream << "<invalid>";
14  }
15 }
16 
17 std::string ToString(const DataVersion& ver) {
18  std::stringstream ss;
19  ss << ver;
20  return ss.str();
21 }
22 
23 DataVersion FromString(const char* str) {
24  char* end_c = nullptr;
25  long tmp = 0;
26  DataVersion version;
27 
28  tmp = strtol(str, &end_c, 10);
29  if (end_c == str || tmp > 0xFF || tmp < 0) {
30  return INVALID_DATA_VERSION;
31  }
32  version.major_version = (uint8_t)tmp;
33 
34  const char* minor_str = end_c + 1;
35 
36  tmp = strtol(minor_str, &end_c, 10);
37  if (end_c == minor_str || tmp > 0xFFFF || tmp < 0) {
38  return INVALID_DATA_VERSION;
39  }
40  version.minor_version = (uint16_t)tmp;
41 
42  return version;
43 }
44 
45 } // namespace messages
46 } // namespace fusion_engine
47 } // namespace point_one
std::string ToString(const DataVersion &ver)
Definition: data_version.cc:17
uint16_t minor_version
Definition: data_version.h:26
GNSS signal and frequency type definitions.
Definition: logging.h:36
uint8_t major_version
Definition: data_version.h:25
bool IsValid() const
Returns whether the stored version is valid.
Definition: data_version.h:37
DataVersion FromString(const char *str)
Definition: data_version.cc:23
std::ostream & operator<<(std::ostream &stream, ConfigType type)
ConfigType stream operator.
A struct representing the version of a data object.
Definition: data_version.h:22
constexpr DataVersion INVALID_DATA_VERSION
Definition: data_version.h:44