$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #include "otsdaq-core/NetworkUtilities/NetworkConverters.h" 00002 #include <arpa/inet.h> 00003 #include <iostream> 00004 #include "otsdaq-core/Macros/CoutMacros.h" 00005 #include "otsdaq-core/MessageFacility/MessageFacility.h" 00006 00007 using namespace ots; 00008 00009 //======================================================================================================================== 00010 NetworkConverters::NetworkConverters() {} 00011 00012 //======================================================================================================================== 00013 NetworkConverters::~NetworkConverters() {} 00014 00015 //======================================================================================================================== 00016 std::string NetworkConverters::nameToStringIP(const std::string& value) 00017 { 00018 struct sockaddr_in socketAddress; 00019 if(inet_aton(value.c_str(), &socketAddress.sin_addr) == 0) 00020 std::cout << __COUT_HDR_FL__ << "ERROR: Invalid IP address " << value 00021 << std::endl; 00022 return networkToStringIP(socketAddress.sin_addr.s_addr); 00023 } 00024 00025 //======================================================================================================================== 00026 std::string NetworkConverters::stringToNameIP(const std::string& value) 00027 { 00028 struct sockaddr_in socketAddress; 00029 socketAddress.sin_addr.s_addr = stringToNetworkIP(value); 00030 return std::string(inet_ntoa(socketAddress.sin_addr)); 00031 } 00032 //======================================================================================================================== 00033 uint32_t NetworkConverters::stringToNetworkIP(const std::string& value) 00034 { 00035 return unsignedToNetworkIP(stringToUnsignedIP(value)); 00036 } 00037 00038 //======================================================================================================================== 00039 std::string NetworkConverters::networkToStringIP(uint32_t value) 00040 { 00041 return unsignedToStringIP(networkToUnsignedIP(value)); 00042 } 00043 00044 //======================================================================================================================== 00045 std::string NetworkConverters::unsignedToStringIP(uint32_t value) 00046 { 00047 std::string returnValue; 00048 returnValue += (value >> 24) & 0xff; 00049 returnValue += (value >> 16) & 0xff; 00050 returnValue += (value >> 8) & 0xff; 00051 returnValue += (value)&0xff; 00052 return returnValue; 00053 } 00054 00055 //======================================================================================================================== 00056 uint32_t NetworkConverters::stringToUnsignedIP(const std::string& value) 00057 { 00058 return ((((uint32_t)value[0]) & 0xff) << 24) + ((((uint32_t)value[1]) & 0xff) << 16) + 00059 ((((uint32_t)value[2]) & 0xff) << 8) + (((uint32_t)value[3]) & 0xff); 00060 } 00061 00062 //======================================================================================================================== 00063 uint32_t NetworkConverters::unsignedToNetworkIP(uint32_t value) { return htonl(value); } 00064 00065 //======================================================================================================================== 00066 uint32_t NetworkConverters::networkToUnsignedIP(uint32_t value) { return ntohl(value); } 00067 00068 //======================================================================================================================== 00069 uint16_t NetworkConverters::stringToNetworkPort(const std::string& value) 00070 { 00071 return unsignedToNetworkPort(stringToUnsignedPort(value)); 00072 } 00073 00074 //======================================================================================================================== 00075 std::string NetworkConverters::networkToStringPort(uint16_t value) 00076 { 00077 return unsignedToStringPort(networkToUnsignedPort(value)); 00078 } 00079 00080 //======================================================================================================================== 00081 std::string NetworkConverters::unsignedToStringPort(uint16_t value) 00082 { 00083 std::string returnValue; 00084 returnValue += (value >> 8) & 0xff; 00085 returnValue += (value)&0xff; 00086 return returnValue; 00087 } 00088 00089 //======================================================================================================================== 00090 uint16_t NetworkConverters::stringToUnsignedPort(const std::string& value) 00091 { 00092 return ((((uint32_t)value[0]) & 0xff) << 8) + (((uint32_t)value[1]) & 0xff); 00093 } 00094 00095 //======================================================================================================================== 00096 uint16_t NetworkConverters::unsignedToNetworkPort(uint16_t value) { return htons(value); } 00097 00098 //======================================================================================================================== 00099 uint16_t NetworkConverters::networkToUnsignedPort(uint16_t value) { return ntohs(value); }