46 if (instance != NULL) {
57 if (instance == NULL) instance =
new converter();
79 return ((p_value / 16 * 10) + (p_value % 16));
89 return ((p_value / 10 * 16) + (p_value % 10));
98 uint16_t
swap(
const uint16_t p_value);
99 inline int16_t
swap(
const int16_t p_value) {
100 return static_cast<short>(
swap(static_cast<uint16_t>(p_value)));
107 uint32_t
swap(
const uint32_t p_value);
108 inline int32_t
swap(
const int32_t p_value) {
109 return static_cast<int>(
swap(static_cast<uint32_t>(p_value)));
123 std::string
bytes_to_hexa(
const std::vector<uint8_t> & p_value);
129 std::vector<uint8_t>
hexa_to_bytes(
const std::string & p_value);
158 std::vector<uint8_t> result(
sizeof(
short), 0x00);
159 for (
int i =
sizeof(
short) - 1; i >= 0; i--) {
160 int offset = (
sizeof(short) - 1 - i) * 8;
161 result[i] =
static_cast<uint8_t
>((p_value >> offset) & 0xFF);
174 if (p_value.size() >
sizeof(short)) {
178 for (
size_t i = 0; i < p_value.size(); i++) {
179 value = (value << 8) + (p_value[i] & 0xff);
198 std::vector<uint8_t> result(
sizeof(
int), 0x00);
199 for (
int i =
sizeof(
int) - 1; i >= 0; i--) {
200 int offset = (
sizeof(int) - 1 - i) * 8;
201 result[i] =
static_cast<uint8_t
>((p_value >> offset) & 0xFF);
214 if (p_value.size() >
sizeof(int)) {
218 for (
size_t i = 0; i < p_value.size(); i++) {
219 value = (value << 8) + (p_value[i] & 0xff);
239 std::vector<uint8_t> result(
sizeof(int64_t), 0x00);
240 for (
int i =
sizeof(int64_t) - 1; i >= 0; i--) {
241 int offset = (
sizeof(int64_t) - 1 - i) * 8;
242 result[i] =
static_cast<uint8_t
>((p_value >> offset) & 0xFF);
255 if (p_value.size() >
sizeof(int64_t)) {
259 for (
size_t i = 0; i < p_value.size(); i++) {
260 value = (value << 8) + (p_value[i] & 0xff);
272 uint8_t bytes[
sizeof(p_value)];
274 static_cast<const uint8_t *>(static_cast<const void *>(&p_value)),
275 static_cast<const uint8_t *>(static_cast<const void *>(&p_value)) +
sizeof(p_value),
278 std::vector<uint8_t> result(bytes, bytes +
sizeof(bytes) /
sizeof(uint8_t));
288 return *((
float *)(&p_value[0]));
297 return std::vector<uint8_t>(p_value.begin(), p_value.end());
306 return std::string(p_value.begin(), p_value.end());
316 return std::stoi(p_value);
326 std::ostringstream ss;
339 std::string
trim(
const std::string& p_value,
const std::string& p_trim_chars =
" \t");
int32_t bytes_to_int(const std::vector< uint8_t > &p_value, const endian_t p_endianess=big_endian) const
Convert a bytes array into a 32-bits integer (int32_t)
Definition: converter.hh:212
uint8_t bcd_to_bin(const uint8_t p_value)
Convert a Binary Coded Decimal value into a binary value.
Definition: converter.hh:78
int32_t string_to_int(const std::string &p_value) const
Convert a string into an integer.
Definition: converter.hh:315
int16_t swap(const int16_t p_value)
Definition: converter.hh:99
endian_t
Endianess style.
Definition: converter.hh:66
Definition: converter.hh:67
std::vector< std::string > split_arguments_line(const std::string &p_value)
Convert the provided string into a list of arguments.
Definition: converter.cc:115
std::string trim(const std::string &p_value, const std::string &p_trim_chars=" \)
Returns a copy of the string, with leading and trailing special characters omitted.
Definition: converter.cc:104
uint8_t bin_to_bcd(const uint8_t p_value)
Convert a binary value into a Binary Coded Decimal value.
Definition: converter.hh:88
~converter()
Default private dtor.
Definition: converter.hh:45
std::vector< uint8_t > int_to_bytes(const int32_t p_value, const endian_t p_endianess=big_endian) const
Convert a 32-bits integer (int32_t) into a bytes array.
Definition: converter.hh:190
converter()
Default private ctor.
Definition: converter.hh:41
std::string time_to_string(const time_t p_time)
Convert a time in time_t format into a string formated according to RFC 822, 1036, 1123, 2822.
Definition: converter.cc:92
std::vector< uint8_t > hexa_to_bytes(const std::string &p_value)
Convert an hexadecimal string into a bytes array.
Definition: converter.cc:54
static converter * instance
Unique static object reference of this class.
Definition: converter.hh:36
std::vector< uint8_t > string_to_bytes(const std::string &p_value) const
Convert a string into a bytes array.
Definition: converter.hh:296
std::string bytes_to_string(const std::vector< uint8_t > &p_value) const
Convert a bytes array into a string.
Definition: converter.hh:305
Definition: converter.hh:68
int16_t bytes_to_short(const std::vector< uint8_t > &p_value, const endian_t p_endianess=big_endian) const
Convert a bytes array into a 16-bits integer (int16_t)
Definition: converter.hh:172
std::vector< uint8_t > float_to_bytes(const float p_value) const
Convert a float value into a bytes array.
Definition: converter.hh:271
int64_t bytes_to_long(const std::vector< uint8_t > &p_value, const endian_t p_endianess=big_endian) const
Convert a bytes array into a 64-bits integer (int64_t)
Definition: converter.hh:253
float bytes_to_float(const std::vector< uint8_t > &p_value) const
Convert a bytes array into a float.
Definition: converter.hh:287
static converter & get_instance()
Public accessor to the single object reference.
Definition: converter.hh:56
int32_t swap(const int32_t p_value)
Definition: converter.hh:108
uint16_t swap(const uint16_t p_value)
Swap two bytes length value (e.g. 0xCAFE becomes 0xFECA)
Definition: converter.cc:5
std::string bytes_to_hexa(const std::vector< uint8_t > &p_value)
Convert a bytes array int32_t an hexadecimal string.
Definition: converter.cc:39
std::vector< uint8_t > long_to_bytes(const int64_t p_value, const endian_t p_endianess=big_endian) const
Convert a 64-bits integer (int64_t) into a bytes array.
Definition: converter.hh:231
This class provide a set of methods for types conversions.
Definition: converter.hh:31
std::string int_to_string(const int32_t &p_value) const
Convert an integer into a string.
Definition: converter.hh:325
std::vector< uint8_t > short_to_bytes(const int16_t p_value, const endian_t p_endianess=big_endian) const
Convert a 16-bits integer (int16_t) into a bytes array.
Definition: converter.hh:157
std::string string_to_hexa(const std::string &p_value)
Convert a string into an hexadecimal string.
Definition: converter.cc:15