Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
format_utils.hxx
Go to the documentation of this file.
1
35#ifndef _UTILS_FORMAT_UTILS_HXX_
36#define _UTILS_FORMAT_UTILS_HXX_
37
38#include <string>
39#include <string.h>
40#include <stdint.h>
41
42using std::string;
43
49char* integer_to_buffer(int value, char* buffer);
50
56char* unsigned_integer_to_buffer(int value, char* buffer);
57
63char* uint64_integer_to_buffer(uint64_t value, char* buffer);
64
70char* int64_integer_to_buffer(int64_t value, char* buffer);
71
77char* unsigned_integer_to_buffer_hex(unsigned int value, char* buffer);
78
84char* uint64_integer_to_buffer_hex(uint64_t value, char* buffer);
85
91char* int64_integer_to_buffer_hex(int64_t value, char* buffer);
92
98string integer_to_string(int value, unsigned padding = 0);
99
105string uint64_to_string(uint64_t value, unsigned padding = 0);
106
112string int64_to_string(int64_t value, unsigned padding = 0);
113
119string uint64_to_string_hex(uint64_t value, unsigned padding = 0);
120
126string int64_to_string_hex(int64_t value, unsigned padding = 0);
127
132string string_to_hex(const string& arg);
133
146size_t hex_to_string(
147 const char *input, size_t len, string *output, bool ignore_nonhex = false);
148
161string mac_to_string(uint8_t mac[6], char colon = ':');
162
171string ipv4_to_string(uint8_t ip[4]);
172
181inline string ipv4_to_string(uint32_t ip)
182{
183 return ipv4_to_string((uint8_t*)&ip);
184}
185
192template <unsigned int N>
193inline void str_populate(char (&dst)[N], const char *src)
194{
195 strncpy(dst, src, N - 1);
196 dst[N - 1] = 0;
197}
198
199#endif // _UTILS_FORMAT_UTILS_HXX_
char * unsigned_integer_to_buffer(int value, char *buffer)
Renders an unsigned integer to string, left-justified.
char * int64_integer_to_buffer(int64_t value, char *buffer)
Renders an int64_t to string, left-justified.
string int64_to_string_hex(int64_t value, unsigned padding=0)
Renders an int64_t to std::string, left-justified.
string integer_to_string(int value, unsigned padding=0)
Renders an integer to std::string, left-justified.
size_t hex_to_string(const char *input, size_t len, string *output, bool ignore_nonhex=false)
Converts hex bytes to binary representation.
string uint64_to_string_hex(uint64_t value, unsigned padding=0)
Renders an uint64_t to std::string, left-justified.
char * integer_to_buffer(int value, char *buffer)
Renders an integer to string, left-justified.
char * uint64_integer_to_buffer_hex(uint64_t value, char *buffer)
Renders an uint64_t to string, left-justified.
string int64_to_string(int64_t value, unsigned padding=0)
Renders an int64_t to std::string, left-justified.
char * unsigned_integer_to_buffer_hex(unsigned int value, char *buffer)
Renders an unsigned integer to string, left-justified.
string uint64_to_string(uint64_t value, unsigned padding=0)
Renders an uint64_t to std::string, left-justified.
char * int64_integer_to_buffer_hex(int64_t value, char *buffer)
Renders an int64_t to string, left-justified.
char * uint64_integer_to_buffer(uint64_t value, char *buffer)
Renders an uint64_t to string, left-justified.
string string_to_hex(const string &arg)
Converts a (binary) string into a sequence of hex digits.
string ipv4_to_string(uint8_t ip[4])
Formats an IPv4 address to string.
void str_populate(char(&dst)[N], const char *src)
Populates a character array with a C string.
string mac_to_string(uint8_t mac[6], char colon=':')
Formats a MAC address to string.