【Poco】Poco::BypeOrder的例子

#include "../tmain.hpp"

void test_ByteOrderFilp()
{
	{
		Poco::Int16 norm = (Poco::Int16) 0xAABB;
		Poco::Int16 filp = Poco::ByteOrder::flipBytes(norm);
		assert(Poco::UInt16(filp) == 0xBBAA);
		filp = Poco::ByteOrder::flipBytes(filp);
		assert(filp == norm);
	}
	{
		Poco::UInt16 norm = (Poco::UInt16) 0xAABB;
		Poco::UInt16 flip = Poco::ByteOrder::flipBytes(norm);
		assert (flip == 0xBBAA);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (flip == norm);
	}
	{
		Poco::Int32 norm = 0xAABBCCDD;
		Poco::Int32 flip = Poco::ByteOrder::flipBytes(norm);
		assert (Poco::UInt32(flip) == 0xDDCCBBAA);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (flip == norm);
	}
	{
		Poco::UInt32 norm = 0xAABBCCDD;
		Poco::UInt32 flip = Poco::ByteOrder::flipBytes(norm);
		assert (flip == 0xDDCCBBAA);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (flip == norm);
	}
}

void test_ByteOrderNetwork()
{
// 小端系统中...
#if defined(POCO_ARCH_LITTLE_ENDIAN)
	{
		Poco::Int16 norm = 4;
		Poco::Int16 flip = Poco::ByteOrder::toNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::UInt16 norm = 4;
		Poco::UInt16 flip = Poco::ByteOrder::toNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::Int32 norm = 4;
		Poco::Int32 flip = Poco::ByteOrder::toNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::UInt32 norm = 4;
		Poco::UInt32 flip = Poco::ByteOrder::toNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	// 
	{
		Poco::Int16 norm = 4;
		Poco::Int16 flip = Poco::ByteOrder::fromNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::UInt16 norm = 4;
		Poco::UInt16 flip = Poco::ByteOrder::fromNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::Int32 norm = 4;
		Poco::Int32 flip = Poco::ByteOrder::fromNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
	{
		Poco::UInt32 norm = 4;
		Poco::UInt32 flip = Poco::ByteOrder::fromNetwork(norm);
		assert (norm != flip);
		flip = Poco::ByteOrder::flipBytes(flip);
		assert (norm == flip);
	}
#endif
};


你可能感兴趣的:(【Poco】Poco::BypeOrder的例子)