【Poco】Poco::Core中的例子

来源:互联网 发布:windows汇编语言 编辑:程序博客网 时间:2024/04/28 06:19
#include "../tmain.hpp"/* 操作系统#define POCO_OS_FREE_BSD      0x0001#define POCO_OS_AIX           0x0002#define POCO_OS_HPUX          0x0003#define POCO_OS_TRU64         0x0004#define POCO_OS_LINUX         0x0005#define POCO_OS_MAC_OS_X      0x0006#define POCO_OS_NET_BSD       0x0007#define POCO_OS_OPEN_BSD      0x0008#define POCO_OS_IRIX          0x0009#define POCO_OS_SOLARIS       0x000a#define POCO_OS_QNX           0x000b#define POCO_OS_VXWORKS       0x000c#define POCO_OS_CYGWIN        0x000d#define POCO_OS_UNKNOWN_UNIX  0x00ff#define POCO_OS_WINDOWS_NT    0x1001#define POCO_OS_WINDOWS_CE    0x1011#define POCO_OS_VMS           0x2001*//* 硬件架构#define POCO_ARCH_ALPHA   0x01#define POCO_ARCH_IA32    0x02#define POCO_ARCH_IA64    0x03#define POCO_ARCH_MIPS    0x04#define POCO_ARCH_HPPA    0x05#define POCO_ARCH_PPC     0x06#define POCO_ARCH_POWER   0x07#define POCO_ARCH_SPARC   0x08#define POCO_ARCH_AMD64   0x09#define POCO_ARCH_ARM     0x0a#define POCO_ARCH_M68K    0x0b#define POCO_ARCH_S390    0x0c#define POCO_ARCH_SH      0x0d#define POCO_ARCH_NIOS2   0x0e*/void test_CorePlatForm(){std::cout << "POCO_OS  : " << POCO_OS << std::endl;std::cout << "POCO_ARCH: " << POCO_ARCH << std::endl;assert(POCO_OS == POCO_OS_WINDOWS_NT);assert(POCO_ARCH == POCO_ARCH_IA32);}void test_Environment(){// 获取环境变量if (Poco::Environment::has("JAVA_HOME"))std::cout << Poco::Environment::get("JAVA_HOME") << std::endl;// 另一种方法, 没有时会抛异常...try{std::string v = Poco::Environment::get("JAVA_HOME");}catch (...){}std::cout << "OS Name:            " << Poco::Environment::osName() << std::endl;std::cout << "OS Display Name:    " << Poco::Environment::osDisplayName() << std::endl;std::cout << "OS Version:         " << Poco::Environment::osVersion() << std::endl;std::cout << "OS Architecture:    " << Poco::Environment::osArchitecture() << std::endl;std::cout << "Node Name:          " << Poco::Environment::nodeName() << std::endl;std::cout << "Node ID:            " << Poco::Environment::nodeId() << std::endl;std::cout << "Number of CPUs:     " << Poco::Environment::processorCount() << std::endl;std::cout << "Libraries version:  " << Poco::Environment::libraryVersion() << std::endl;}void test_CoreBuffer(){size_t s = 10;Poco::Buffer<int> bf(s);std::vector<int> vect;for (int i = 0; i < s; ++i)vect.push_back(i);std::memcpy(bf.begin(), &vect[0], sizeof(int) * vect.size());assert(bf.size() == s);for(int i = 0; i < s; ++i)assert(bf[i] == i);}void test_CoreNullable(){// Poco::Nullable是一个简单的包装类, 这个类引用了Null值.// 初始值是NullPoco::Nullable<int> n1;assert(n1.isNull());assert(n1.value(42) == 42);Poco::Nullable<std::string> nstr;assert(nstr.isNull());assert(nstr.value("Nullable Test") == "Nullable Test");try{int tmp = n1.value();}catch (...){}n1 = 1;assert (!n1.isNull());assert (n1.value() == 1);Poco::Nullable<int> n2(42);assert (!n2.isNull());assert (n2.value() == 42);assert (n2.value(99) == 42);n1 = n2;assert (!n1.isNull());assert (n1.value() == 42);n1.clear();assert (n1.isNull());}void test_CoreAscii(){// POCO中提供的ASCII与C标准库中的函数类似.assert (Ascii::isAscii('A'));assert (!Ascii::isAscii(-1));assert (!Ascii::isAscii(128));assert (!Ascii::isAscii(222));assert (Ascii::isSpace(' '));assert (Ascii::isSpace('\t'));assert (Ascii::isSpace('\r'));assert (Ascii::isSpace('\n'));assert (!Ascii::isSpace('A'));assert (!Ascii::isSpace(-1));assert (!Ascii::isSpace(222));assert (Ascii::isDigit('0'));assert (Ascii::isDigit('1'));assert (Ascii::isDigit('2'));assert (Ascii::isDigit('3'));assert (Ascii::isDigit('4'));assert (Ascii::isDigit('5'));assert (Ascii::isDigit('6'));assert (Ascii::isDigit('7'));assert (Ascii::isDigit('8'));assert (Ascii::isDigit('9'));assert (!Ascii::isDigit('a'));assert (Ascii::isHexDigit('0'));assert (Ascii::isHexDigit('1'));assert (Ascii::isHexDigit('2'));assert (Ascii::isHexDigit('3'));assert (Ascii::isHexDigit('4'));assert (Ascii::isHexDigit('5'));assert (Ascii::isHexDigit('6'));assert (Ascii::isHexDigit('7'));assert (Ascii::isHexDigit('8'));assert (Ascii::isHexDigit('9'));assert (Ascii::isHexDigit('a'));assert (Ascii::isHexDigit('b'));assert (Ascii::isHexDigit('c'));assert (Ascii::isHexDigit('d'));assert (Ascii::isHexDigit('e'));assert (Ascii::isHexDigit('f'));assert (Ascii::isHexDigit('A'));assert (Ascii::isHexDigit('B'));assert (Ascii::isHexDigit('C'));assert (Ascii::isHexDigit('D'));assert (Ascii::isHexDigit('E'));assert (Ascii::isHexDigit('F'));assert (!Ascii::isHexDigit('G'));assert (Ascii::isPunct('.'));assert (Ascii::isPunct(','));assert (!Ascii::isPunct('A'));assert (Ascii::isAlpha('a'));assert (Ascii::isAlpha('Z'));assert (!Ascii::isAlpha('0'));assert (Ascii::isLower('a'));assert (!Ascii::isLower('A'));assert (Ascii::isUpper('A'));assert (!Ascii::isUpper('a'));assert (Ascii::toLower('A') == 'a');assert (Ascii::toLower('z') == 'z');assert (Ascii::toLower('0') == '0');assert (Ascii::toUpper('a') == 'A');assert (Ascii::toUpper('0') == '0');assert (Ascii::toUpper('Z') == 'Z');}


原创粉丝点击