otsdaq  v1_01_04
 All Classes Namespaces Functions
NetworkConverters.cc
1 #include "otsdaq-core/NetworkUtilities/NetworkConverters.h"
2 #include "otsdaq-core/MessageFacility/MessageFacility.h"
3 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
4 #include <arpa/inet.h>
5 #include <iostream>
6 
7 using namespace ots;
8 
9 
10 //========================================================================================================================
11 NetworkConverters::NetworkConverters()
12 {}
13 
14 //========================================================================================================================
15 NetworkConverters::~NetworkConverters()
16 {}
17 
18 //========================================================================================================================
19 std::string NetworkConverters::nameToStringIP(const std::string& value)
20 {
21  struct sockaddr_in socketAddress;
22  if(inet_aton(value.c_str(), &socketAddress.sin_addr) == 0)
23  std::cout << __COUT_HDR_FL__ << "ERROR: Invalid IP address " << value << std::endl;
24  return networkToStringIP(socketAddress.sin_addr.s_addr);
25 }
26 
27 //========================================================================================================================
28 std::string NetworkConverters::stringToNameIP(const std::string& value)
29 {
30  struct sockaddr_in socketAddress;
31  socketAddress.sin_addr.s_addr = stringToNetworkIP(value);
32  return std::string(inet_ntoa(socketAddress.sin_addr));
33 }
34 //========================================================================================================================
35 uint32_t NetworkConverters::stringToNetworkIP(const std::string& value)
36 {
37  return unsignedToNetworkIP(stringToUnsignedIP(value));
38 }
39 
40 //========================================================================================================================
41 std::string NetworkConverters::networkToStringIP(uint32_t value)
42 {
43  return unsignedToStringIP(networkToUnsignedIP(value));
44 }
45 
46 //========================================================================================================================
47 std::string NetworkConverters::unsignedToStringIP(uint32_t value)
48 {
49  std::string returnValue;
50  returnValue += (value>>24)&0xff;
51  returnValue += (value>>16)&0xff;
52  returnValue += (value>>8 )&0xff;
53  returnValue += (value )&0xff;
54  return returnValue;
55 }
56 
57 //========================================================================================================================
58 uint32_t NetworkConverters::stringToUnsignedIP(const std::string& value)
59 {
60  return ((((uint32_t)value[0])&0xff)<<24) + ((((uint32_t)value[1])&0xff)<<16) + ((((uint32_t)value[2])&0xff)<<8) + (((uint32_t)value[3])&0xff);
61 }
62 
63 //========================================================================================================================
64 uint32_t NetworkConverters::unsignedToNetworkIP(uint32_t value)
65 {
66  return htonl(value);
67 }
68 
69 //========================================================================================================================
70 uint32_t NetworkConverters::networkToUnsignedIP(uint32_t value)
71 {
72  return ntohl(value);
73 }
74 
75 //========================================================================================================================
76 uint16_t NetworkConverters::stringToNetworkPort(const std::string& value)
77 {
78  return unsignedToNetworkPort(stringToUnsignedPort(value));
79 }
80 
81 //========================================================================================================================
82 std::string NetworkConverters::networkToStringPort(uint16_t value)
83 {
84  return unsignedToStringPort(networkToUnsignedPort(value));
85 }
86 
87 //========================================================================================================================
88 std::string NetworkConverters::unsignedToStringPort(uint16_t value)
89 {
90  std::string returnValue;
91  returnValue += (value>>8 )&0xff;
92  returnValue += (value )&0xff;
93  return returnValue;
94 }
95 
96 //========================================================================================================================
97 uint16_t NetworkConverters::stringToUnsignedPort(const std::string& value)
98 {
99  return ((((uint32_t)value[0])&0xff)<<8) + (((uint32_t)value[1])&0xff);
100 }
101 
102 //========================================================================================================================
103 uint16_t NetworkConverters::unsignedToNetworkPort(uint16_t value)
104 {
105  return htons(value);
106 }
107 
108 //========================================================================================================================
109 uint16_t NetworkConverters::networkToUnsignedPort(uint16_t value)
110 {
111  return ntohs(value);
112 }