【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');}