1 #include "otsdaq/NetworkUtilities/NetworkConverters.h"
4 #include "otsdaq/Macros/CoutMacros.h"
5 #include "otsdaq/MessageFacility/MessageFacility.h"
10 NetworkConverters::NetworkConverters() {}
13 NetworkConverters::~NetworkConverters() {}
16 std::string NetworkConverters::nameToStringIP(
const std::string& value)
18 struct sockaddr_in socketAddress;
19 if(inet_aton(value.c_str(), &socketAddress.sin_addr) == 0)
20 std::cout << __COUT_HDR_FL__ <<
"ERROR: Invalid IP address " << value
22 return networkToStringIP(socketAddress.sin_addr.s_addr);
26 std::string NetworkConverters::stringToNameIP(
const std::string& value)
28 struct sockaddr_in socketAddress;
29 socketAddress.sin_addr.s_addr = stringToNetworkIP(value);
30 return std::string(inet_ntoa(socketAddress.sin_addr));
33 uint32_t NetworkConverters::stringToNetworkIP(
const std::string& value)
35 return unsignedToNetworkIP(stringToUnsignedIP(value));
39 std::string NetworkConverters::networkToStringIP(uint32_t value)
41 return unsignedToStringIP(networkToUnsignedIP(value));
45 std::string NetworkConverters::unsignedToStringIP(uint32_t value)
47 std::string returnValue;
48 returnValue += (value >> 24) & 0xff;
49 returnValue += (value >> 16) & 0xff;
50 returnValue += (value >> 8) & 0xff;
51 returnValue += (value) & 0xff;
56 uint32_t NetworkConverters::stringToUnsignedIP(
const std::string& value)
58 return ((((uint32_t)value[0]) & 0xff) << 24) + ((((uint32_t)value[1]) & 0xff) << 16) +
59 ((((uint32_t)value[2]) & 0xff) << 8) + (((uint32_t)value[3]) & 0xff);
63 uint32_t NetworkConverters::unsignedToNetworkIP(uint32_t value) {
return htonl(value); }
66 uint32_t NetworkConverters::networkToUnsignedIP(uint32_t value) {
return ntohl(value); }
69 uint16_t NetworkConverters::stringToNetworkPort(
const std::string& value)
71 return unsignedToNetworkPort(stringToUnsignedPort(value));
75 std::string NetworkConverters::networkToStringPort(uint16_t value)
77 return unsignedToStringPort(networkToUnsignedPort(value));
81 std::string NetworkConverters::unsignedToStringPort(uint16_t value)
83 std::string returnValue;
84 returnValue += (value >> 8) & 0xff;
85 returnValue += (value) & 0xff;
90 uint16_t NetworkConverters::stringToUnsignedPort(
const std::string& value)
92 return ((((uint32_t)value[0]) & 0xff) << 8) + (((uint32_t)value[1]) & 0xff);
96 uint16_t NetworkConverters::unsignedToNetworkPort(uint16_t value) {
return htons(value); }
99 uint16_t NetworkConverters::networkToUnsignedPort(uint16_t value) {
return ntohs(value); }