SF #3559331: Add macros for byte-ordering
This commit is contained in:
Родитель
111fba0481
Коммит
06204c4865
|
@ -313,4 +313,16 @@ extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW;
|
||||||
#define INADDR_MAX_LOCAL_GROUP 0xe00000ff
|
#define INADDR_MAX_LOCAL_GROUP 0xe00000ff
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(POCO_ARCH_BIG_ENDIAN)
|
||||||
|
#define poco_ntoh_16(x) (x)
|
||||||
|
#define poco_ntoh_32(x) (x)
|
||||||
|
#else
|
||||||
|
#define poco_ntoh_16(x) \
|
||||||
|
((((x) >> 8) & 0x00ff) | (((x) << 8) & 0xff00))
|
||||||
|
#define poco_ntoh_32(x) \
|
||||||
|
((((x) >> 24) & 0x000000ff) | (((x) >> 8) & 0x0000ff00) | (((x) << 8) & 0x00ff0000) | (((x) << 24) & 0xff000000))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // Net_SocketDefs_INCLUDED
|
#endif // Net_SocketDefs_INCLUDED
|
||||||
|
|
|
@ -630,6 +630,15 @@ void IPAddressTest::testRelationals6()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void IPAddressTest::testByteOrderMacros()
|
||||||
|
{
|
||||||
|
Poco::UInt16 a16 = 0xDEAD;
|
||||||
|
assert (poco_ntoh_16(a16) == ntohs(a16));
|
||||||
|
Poco::UInt32 a32 = 0xDEADBEEF;
|
||||||
|
assert (poco_ntoh_32(a32) == ntohl(a32));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void IPAddressTest::setUp()
|
void IPAddressTest::setUp()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -658,6 +667,7 @@ CppUnit::Test* IPAddressTest::suite()
|
||||||
CppUnit_addTest(pSuite, IPAddressTest, testPrefixCons);
|
CppUnit_addTest(pSuite, IPAddressTest, testPrefixCons);
|
||||||
CppUnit_addTest(pSuite, IPAddressTest, testPrefixLen);
|
CppUnit_addTest(pSuite, IPAddressTest, testPrefixLen);
|
||||||
CppUnit_addTest(pSuite, IPAddressTest, testOperators);
|
CppUnit_addTest(pSuite, IPAddressTest, testOperators);
|
||||||
|
CppUnit_addTest(pSuite, IPAddressTest, testByteOrderMacros);
|
||||||
|
|
||||||
return pSuite;
|
return pSuite;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ public:
|
||||||
void testPrefixCons();
|
void testPrefixCons();
|
||||||
void testPrefixLen();
|
void testPrefixLen();
|
||||||
void testOperators();
|
void testOperators();
|
||||||
|
void testByteOrderMacros();
|
||||||
|
|
||||||
void setUp();
|
void setUp();
|
||||||
void tearDown();
|
void tearDown();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче