This commit is contained in:
aleks-f 2013-01-31 21:12:13 -06:00
parent 69f5d4e25e
commit 911f22508e
43 changed files with 1345 additions and 572 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|x64"> <ProjectConfiguration Include="debug_shared|x64">
@ -17,39 +17,39 @@
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" /> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">..\bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">..\bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">..\bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">..\bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">mod_poco64d</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">mod_poco64d</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">mod_poco64</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">mod_poco64</TargetName>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -76,7 +76,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -84,7 +84,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|x64"> <ProjectConfiguration Include="debug_shared|x64">
@ -33,89 +33,91 @@
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc> <UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc> <UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc> <UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc> <UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc> <UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc> <UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" /> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">bin64\static_mt\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">bin64\static_mt\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">bin64\static_mt\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">bin64\static_mt\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">false</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">bin64\static_md\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">bin64\static_md\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">bin64\static_md\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">bin64\static_md\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">false</LinkIncremental>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestSuited</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestSuited</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">TestSuite</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestSuite</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">TestSuite</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestSuite</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">TestSuite</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestSuite</TargetName>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">C:\openssl\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">C:\openssl\lib;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -141,7 +143,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -149,7 +151,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
@ -173,11 +175,11 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -204,7 +206,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -212,7 +214,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
@ -237,11 +239,11 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -267,7 +269,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -275,7 +277,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>

View File

@ -6689,6 +6689,10 @@
RelativePath=".\include\Poco\ObjectPool.h" RelativePath=".\include\Poco\ObjectPool.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\Optional.h"
>
</File>
<File <File
RelativePath=".\include\Poco\Platform.h" RelativePath=".\include\Poco\Platform.h"
> >
@ -6721,6 +6725,10 @@
RelativePath=".\include\Poco\SingletonHolder.h" RelativePath=".\include\Poco\SingletonHolder.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\SmallObjectAllocator.h"
>
</File>
<File <File
RelativePath=".\include\Poco\String.h" RelativePath=".\include\Poco\String.h"
> >

View File

@ -1024,6 +1024,7 @@
<ClInclude Include="include\Poco\NumberParser.h" /> <ClInclude Include="include\Poco\NumberParser.h" />
<ClInclude Include="include\Poco\NumericString.h" /> <ClInclude Include="include\Poco\NumericString.h" />
<ClInclude Include="include\Poco\ObjectPool.h" /> <ClInclude Include="include\Poco\ObjectPool.h" />
<ClInclude Include="include\Poco\Optional.h" />
<ClInclude Include="include\Poco\Platform.h" /> <ClInclude Include="include\Poco\Platform.h" />
<ClInclude Include="include\Poco\Platform_POSIX.h" /> <ClInclude Include="include\Poco\Platform_POSIX.h" />
<ClInclude Include="include\Poco\Platform_VMS.h" /> <ClInclude Include="include\Poco\Platform_VMS.h" />
@ -1033,6 +1034,7 @@
<ClInclude Include="include\Poco\RefCountedObject.h" /> <ClInclude Include="include\Poco\RefCountedObject.h" />
<ClInclude Include="include\Poco\SharedPtr.h" /> <ClInclude Include="include\Poco\SharedPtr.h" />
<ClInclude Include="include\Poco\SingletonHolder.h" /> <ClInclude Include="include\Poco\SingletonHolder.h" />
<ClInclude Include="include\Poco\SmallObjectAllocator.h" />
<ClInclude Include="include\Poco\String.h" /> <ClInclude Include="include\Poco\String.h" />
<ClInclude Include="include\Poco\StringTokenizer.h" /> <ClInclude Include="include\Poco\StringTokenizer.h" />
<ClInclude Include="include\Poco\Tuple.h" /> <ClInclude Include="include\Poco\Tuple.h" />

View File

@ -1853,6 +1853,12 @@
<ClInclude Include="include\Poco\Base32Encoder.h"> <ClInclude Include="include\Poco\Base32Encoder.h">
<Filter>Streams\Header Files</Filter> <Filter>Streams\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\SmallObjectAllocator.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Optional.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="src\pocomsg.rc"> <ResourceCompile Include="src\pocomsg.rc">

View File

@ -1027,6 +1027,7 @@
<ClInclude Include="include\Poco\NumberParser.h" /> <ClInclude Include="include\Poco\NumberParser.h" />
<ClInclude Include="include\Poco\NumericString.h" /> <ClInclude Include="include\Poco\NumericString.h" />
<ClInclude Include="include\Poco\ObjectPool.h" /> <ClInclude Include="include\Poco\ObjectPool.h" />
<ClInclude Include="include\Poco\Optional.h" />
<ClInclude Include="include\Poco\Platform.h" /> <ClInclude Include="include\Poco\Platform.h" />
<ClInclude Include="include\Poco\Platform_POSIX.h" /> <ClInclude Include="include\Poco\Platform_POSIX.h" />
<ClInclude Include="include\Poco\Platform_VMS.h" /> <ClInclude Include="include\Poco\Platform_VMS.h" />
@ -1036,6 +1037,7 @@
<ClInclude Include="include\Poco\RefCountedObject.h" /> <ClInclude Include="include\Poco\RefCountedObject.h" />
<ClInclude Include="include\Poco\SharedPtr.h" /> <ClInclude Include="include\Poco\SharedPtr.h" />
<ClInclude Include="include\Poco\SingletonHolder.h" /> <ClInclude Include="include\Poco\SingletonHolder.h" />
<ClInclude Include="include\Poco\SmallObjectAllocator.h" />
<ClInclude Include="include\Poco\String.h" /> <ClInclude Include="include\Poco\String.h" />
<ClInclude Include="include\Poco\StringTokenizer.h" /> <ClInclude Include="include\Poco\StringTokenizer.h" />
<ClInclude Include="include\Poco\Tuple.h" /> <ClInclude Include="include\Poco\Tuple.h" />

View File

@ -1037,6 +1037,9 @@
<ClInclude Include="include\Poco\SingletonHolder.h"> <ClInclude Include="include\Poco\SingletonHolder.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\SmallObjectAllocator.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\String.h"> <ClInclude Include="include\Poco\String.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
@ -1850,6 +1853,9 @@
<ClInclude Include="include\Poco\ObjectPool.h"> <ClInclude Include="include\Poco\ObjectPool.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Optional.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="src\pocomsg.rc"> <ResourceCompile Include="src\pocomsg.rc">

View File

@ -904,6 +904,12 @@
<File <File
RelativePath=".\include\Poco\NumericString.h"> RelativePath=".\include\Poco\NumericString.h">
</File> </File>
<File
RelativePath=".\include\Poco\Optional.h">
</File>
<File
RelativePath=".\include\Poco\ObjectPool.h">
</File>
<File <File
RelativePath=".\include\Poco\Platform.h"> RelativePath=".\include\Poco\Platform.h">
</File> </File>
@ -928,6 +934,9 @@
<File <File
RelativePath=".\include\Poco\SingletonHolder.h"> RelativePath=".\include\Poco\SingletonHolder.h">
</File> </File>
<File
RelativePath=".\include\Poco\SmallObjectAllocator.h">
</File>
<File <File
RelativePath=".\include\Poco\String.h"> RelativePath=".\include\Poco\String.h">
</File> </File>

View File

@ -1207,6 +1207,14 @@
RelativePath=".\include\Poco\NumericString.h" RelativePath=".\include\Poco\NumericString.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\ObjectPool.h"
>
</File>
<File
RelativePath=".\include\Poco\Optional.h"
>
</File>
<File <File
RelativePath=".\include\Poco\Platform.h" RelativePath=".\include\Poco\Platform.h"
> >
@ -1239,6 +1247,10 @@
RelativePath=".\include\Poco\SingletonHolder.h" RelativePath=".\include\Poco\SingletonHolder.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\SmallObjectAllocator.h"
>
</File>
<File <File
RelativePath=".\include\Poco\String.h" RelativePath=".\include\Poco\String.h"
> >

View File

@ -1204,6 +1204,14 @@
RelativePath=".\include\Poco\NumericString.h" RelativePath=".\include\Poco\NumericString.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\ObjectPool.h"
>
</File>
<File
RelativePath=".\include\Poco\Optional.h"
>
</File>
<File <File
RelativePath=".\include\Poco\Platform.h" RelativePath=".\include\Poco\Platform.h"
> >
@ -1236,6 +1244,10 @@
RelativePath=".\include\Poco\SingletonHolder.h" RelativePath=".\include\Poco\SingletonHolder.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\SmallObjectAllocator.h"
>
</File>
<File <File
RelativePath=".\include\Poco\String.h" RelativePath=".\include\Poco\String.h"
> >

View File

@ -108,7 +108,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -143,7 +143,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile> <PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<PreprocessKeepComments>false</PreprocessKeepComments> <PreprocessKeepComments>false</PreprocessKeepComments>
@ -183,7 +183,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile> <PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<PreprocessKeepComments>false</PreprocessKeepComments> <PreprocessKeepComments>false</PreprocessKeepComments>
@ -211,7 +211,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -238,7 +238,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -269,7 +269,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile> <PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<PreprocessKeepComments>false</PreprocessKeepComments> <PreprocessKeepComments>false</PreprocessKeepComments>
@ -1025,6 +1025,8 @@
<ClInclude Include="include\Poco\NumberFormatter.h" /> <ClInclude Include="include\Poco\NumberFormatter.h" />
<ClInclude Include="include\Poco\NumberParser.h" /> <ClInclude Include="include\Poco\NumberParser.h" />
<ClInclude Include="include\Poco\NumericString.h" /> <ClInclude Include="include\Poco\NumericString.h" />
<ClInclude Include="include\Poco\ObjectPool.h" />
<ClInclude Include="include\Poco\Optional.h" />
<ClInclude Include="include\Poco\Platform.h" /> <ClInclude Include="include\Poco\Platform.h" />
<ClInclude Include="include\Poco\Platform_POSIX.h" /> <ClInclude Include="include\Poco\Platform_POSIX.h" />
<ClInclude Include="include\Poco\Platform_VMS.h" /> <ClInclude Include="include\Poco\Platform_VMS.h" />
@ -1034,6 +1036,7 @@
<ClInclude Include="include\Poco\RefCountedObject.h" /> <ClInclude Include="include\Poco\RefCountedObject.h" />
<ClInclude Include="include\Poco\SharedPtr.h" /> <ClInclude Include="include\Poco\SharedPtr.h" />
<ClInclude Include="include\Poco\SingletonHolder.h" /> <ClInclude Include="include\Poco\SingletonHolder.h" />
<ClInclude Include="include\Poco\SmallObjectAllocator.h" />
<ClInclude Include="include\Poco\String.h" /> <ClInclude Include="include\Poco\String.h" />
<ClInclude Include="include\Poco\StringTokenizer.h" /> <ClInclude Include="include\Poco\StringTokenizer.h" />
<ClInclude Include="include\Poco\Tuple.h" /> <ClInclude Include="include\Poco\Tuple.h" />

View File

@ -1013,6 +1013,12 @@
<ClInclude Include="include\Poco\NumericString.h"> <ClInclude Include="include\Poco\NumericString.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\ObjectPool.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Optional.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Platform.h"> <ClInclude Include="include\Poco\Platform.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
@ -1841,6 +1847,9 @@
<ClInclude Include="include\Poco\UTF32Encoding.h"> <ClInclude Include="include\Poco\UTF32Encoding.h">
<Filter>Text\Header Files</Filter> <Filter>Text\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\SmallObjectAllocator.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="src\pocomsg.rc"> <ResourceCompile Include="src\pocomsg.rc">

View File

@ -1031,6 +1031,8 @@
<ClInclude Include="include\Poco\NumberFormatter.h" /> <ClInclude Include="include\Poco\NumberFormatter.h" />
<ClInclude Include="include\Poco\NumberParser.h" /> <ClInclude Include="include\Poco\NumberParser.h" />
<ClInclude Include="include\Poco\NumericString.h" /> <ClInclude Include="include\Poco\NumericString.h" />
<ClInclude Include="include\Poco\ObjectPool.h" />
<ClInclude Include="include\Poco\Optional.h" />
<ClInclude Include="include\Poco\Platform.h" /> <ClInclude Include="include\Poco\Platform.h" />
<ClInclude Include="include\Poco\Platform_POSIX.h" /> <ClInclude Include="include\Poco\Platform_POSIX.h" />
<ClInclude Include="include\Poco\Platform_VMS.h" /> <ClInclude Include="include\Poco\Platform_VMS.h" />
@ -1040,6 +1042,7 @@
<ClInclude Include="include\Poco\RefCountedObject.h" /> <ClInclude Include="include\Poco\RefCountedObject.h" />
<ClInclude Include="include\Poco\SharedPtr.h" /> <ClInclude Include="include\Poco\SharedPtr.h" />
<ClInclude Include="include\Poco\SingletonHolder.h" /> <ClInclude Include="include\Poco\SingletonHolder.h" />
<ClInclude Include="include\Poco\SmallObjectAllocator.h" />
<ClInclude Include="include\Poco\String.h" /> <ClInclude Include="include\Poco\String.h" />
<ClInclude Include="include\Poco\StringTokenizer.h" /> <ClInclude Include="include\Poco\StringTokenizer.h" />
<ClInclude Include="include\Poco\Tuple.h" /> <ClInclude Include="include\Poco\Tuple.h" />

View File

@ -1013,6 +1013,12 @@
<ClInclude Include="include\Poco\NumericString.h"> <ClInclude Include="include\Poco\NumericString.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\ObjectPool.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Optional.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Platform.h"> <ClInclude Include="include\Poco\Platform.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
@ -1037,6 +1043,9 @@
<ClInclude Include="include\Poco\SingletonHolder.h"> <ClInclude Include="include\Poco\SingletonHolder.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\SmallObjectAllocator.h">
<Filter>Core\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\String.h"> <ClInclude Include="include\Poco\String.h">
<Filter>Core\Header Files</Filter> <Filter>Core\Header Files</Filter>
</ClInclude> </ClInclude>

View File

@ -1198,6 +1198,14 @@
RelativePath=".\include\Poco\NumberParser.h" RelativePath=".\include\Poco\NumberParser.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\ObjectPool.h"
>
</File>
<File
RelativePath=".\include\Poco\Optional.h"
>
</File>
<File <File
RelativePath=".\include\Poco\NumericString.h" RelativePath=".\include\Poco\NumericString.h"
> >
@ -1234,6 +1242,10 @@
RelativePath=".\include\Poco\SingletonHolder.h" RelativePath=".\include\Poco\SingletonHolder.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\SmallObjectAllocator.h"
>
</File>
<File <File
RelativePath=".\include\Poco\String.h" RelativePath=".\include\Poco\String.h"
> >

View File

@ -52,17 +52,198 @@ class Any
/// ///
/// Code taken from the Boost 1.33.1 library. Original copyright by Kevlin Henney. Modified for Poco /// Code taken from the Boost 1.33.1 library. Original copyright by Kevlin Henney. Modified for Poco
/// by Applied Informatics. /// by Applied Informatics.
///
/// Modified for small object optimization support (optionally supported through conditional compilation)
/// by Alex Fabijanic.
{
#ifndef POCO_NO_SOO
public:
Any()
/// Creates an empty any type.
{
}
template<typename ValueType>
Any(const ValueType & value)
/// Creates an any which stores the init parameter inside.
///
/// Example:
/// Any a(13);
/// Any a(string("12345"));
{
construct(value);
}
Any(const Any& other)
/// Copy constructor, works with both empty and initialized Any values.
{
construct(other);
}
~Any()
{
if(!empty())
{
if(flag())
content()->~Placeholder();
else
delete content();
}
}
template<typename ValueType>
Any & operator=(const ValueType& value)
/// Assignment operator for all types != Any.
///
/// Example:
/// Any a = 13;
/// Any a = string("12345");
{
this->~Any();
construct(value);
return *this;
}
Any& operator = (Any value)
/// Assignment operator for Any.
{
this->~Any();
construct(value);
return *this;
}
bool empty() const
/// Returns true if the Any is empty.
{
//return !(flags() & ASSIGNED);
return _placeholder.pHolder == 0;
}
const std::type_info & type() const
/// Returns the type information of the stored content.
/// If the Any is empty typeid(void) is returned.
/// It is recommended to always query an Any for its type info before
/// trying to extract data via an AnyCast/RefAnyCast.
{
return empty() ? typeid(void) : content()->type();
}
private:
class Placeholder
{ {
public: public:
Any():
_content(0) virtual ~Placeholder()
{
}
virtual const std::type_info & type() const = 0;
virtual Placeholder * clone(Placeholder* pMem = 0) const = 0;
};
template<typename ValueType>
class Holder : public Placeholder
{
public:
Holder(const ValueType & value) : _held(value)
{
}
virtual const std::type_info & type() const
{
return typeid(ValueType);
}
virtual Placeholder * clone(Placeholder* pMem = 0) const
{
return pMem && (sizeof(_held) <= POCO_SMALL_OBJECT_SIZE) ?
new (pMem) Holder(_held) :
new Holder(_held);
}
ValueType _held;
private:
Holder & operator = (const Holder &);
};
Placeholder* content() const
{
if (empty()) return 0;
if(flag())
return (Placeholder *) &(_placeholder.holder);
else
return _placeholder.pHolder;
}
template<typename ValueType>
void construct(const ValueType & value)
{
if (sizeof(Holder<ValueType>) <= POCO_SMALL_OBJECT_SIZE)
{
new (_placeholder.holder) Holder<ValueType>(value);
flag() = 1;
}
else
{
_placeholder.pHolder = new Holder<ValueType>(value);
flag() = 0;
}
}
void construct(const Any & other)
{
if(other.flag())
{
other.content()->clone((Placeholder*) &_placeholder.holder);
flag() = 1;
return;
}
else if(!(other.empty()))
_placeholder.pHolder = other._placeholder.pHolder->clone();
flag() = 0;
}
union PH
/// Placeholder union. If Holder<Type> fits into POCO_SMALL_OBJECT_SIZE
/// bytes of storage, it will be placement-new-allocated into the local buffer
/// (i.e. there will be no heap-allocation. The local buffer size is one byte
/// larger - [POCO_SMALL_OBJECT_SIZE + 1], additional byte value indicating
/// where the object was allocated (0 => heap, 1 => local).
{
PH ()
{
std::memset(holder, 0, sizeof(PH));
}
Placeholder* pHolder;
mutable unsigned char holder[POCO_SMALL_OBJECT_SIZE + 1];
} _placeholder;
unsigned char& flag() const
{
return _placeholder.holder[POCO_SMALL_OBJECT_SIZE];
}
#else // if POCO_NO_SOO
public:
Any(): _pHolder(0)
/// Creates an empty any type. /// Creates an empty any type.
{ {
} }
template <typename ValueType> template <typename ValueType>
Any(const ValueType& value): Any(const ValueType& value):
_content(new Holder<ValueType>(value)) _pHolder(new Holder<ValueType>(value))
/// Creates an any which stores the init parameter inside. /// Creates an any which stores the init parameter inside.
/// ///
/// Example: /// Example:
@ -72,20 +253,20 @@ public:
} }
Any(const Any& other): Any(const Any& other):
_content(other._content ? other._content->clone() : 0) _pHolder(other._pHolder ? other._pHolder->clone() : 0)
/// Copy constructor, works with empty Anys and initialized Any values. /// Copy constructor, works with both empty and initialized Any values.
{ {
} }
~Any() ~Any()
{ {
delete _content; delete _pHolder;
} }
Any& swap(Any& rhs) Any& swap(Any& rhs)
/// Swaps the content of the two Anys. /// Swaps the content of the two Anys.
{ {
std::swap(_content, rhs._content); std::swap(_pHolder, rhs._pHolder);
return *this; return *this;
} }
@ -109,18 +290,18 @@ public:
} }
bool empty() const bool empty() const
/// returns true if the Any is empty /// Returns true if the Any is empty.
{ {
return !_content; return !_pHolder;
} }
const std::type_info& type() const const std::type_info& type() const
/// Returns the type information of the stored content. /// Returns the type information of the stored content.
/// If the Any is empty typeid(void) is returned. /// If the Any is empty typeid(void) is returned.
/// It is suggested to always query an Any for its type info before trying to extract /// It is recommended to always query an Any for its type info before
/// data via an AnyCast/RefAnyCast. /// trying to extract data via an AnyCast/RefAnyCast.
{ {
return _content ? _content->type() : typeid(void); return _pHolder ? _pHolder->type() : typeid(void);
} }
private: private:
@ -155,16 +336,27 @@ private:
} }
ValueType _held; ValueType _held;
};
private: private:
Holder & operator=(const Holder &);
};
Placeholder* content() const
{
return _pHolder;
}
private:
Placeholder* _pHolder;
#endif // POCO_NO_SOO
template <typename ValueType> template <typename ValueType>
friend ValueType* AnyCast(Any*); friend ValueType* AnyCast(Any*);
template <typename ValueType> template <typename ValueType>
friend ValueType* UnsafeAnyCast(Any*); friend ValueType* UnsafeAnyCast(Any*);
Placeholder* _content;
}; };
@ -178,7 +370,7 @@ ValueType* AnyCast(Any* operand)
/// Will return NULL if the cast fails, i.e. types don't match. /// Will return NULL if the cast fails, i.e. types don't match.
{ {
return operand && operand->type() == typeid(ValueType) return operand && operand->type() == typeid(ValueType)
? &static_cast<Any::Holder<ValueType>*>(operand->_content)->_held ? &static_cast<Any::Holder<ValueType>*>(operand->content())->_held
: 0; : 0;
} }
@ -264,7 +456,7 @@ ValueType* UnsafeAnyCast(Any* operand)
/// use typeid() comparison, e.g., when our types may travel across /// use typeid() comparison, e.g., when our types may travel across
/// different shared libraries. /// different shared libraries.
{ {
return &static_cast<Any::Holder<ValueType>*>(operand->_content)->_held; return &static_cast<Any::Holder<ValueType>*>(operand->_pHolder)->_held;
} }

View File

@ -86,6 +86,12 @@
// #define POCO_THREAD_PRIORITY_MAX 31 // #define POCO_THREAD_PRIORITY_MAX 31
// Define to disable small object optimization.
// If not defined, Any and Dynamic::Var (and similar
// optimization candidates) will be auto-allocated on the
// stack in cases when value holder fits into .
// #define POCO_NO_SOO
// Following are options to remove certain features // Following are options to remove certain features
// to reduce library/executable size for smaller // to reduce library/executable size for smaller
// embedded platforms. By enabling these options, // embedded platforms. By enabling these options,

View File

@ -0,0 +1,251 @@
//
// SmallObjectAllocator.h
//
// $Id: //poco/1.4/Foundation/include/Poco/SmallObjectAllocator.h#1 $
//
// Library: Foundation
// Package: Core
// Module: SmallObjectAllocator
//
// Definition of the SmallObjectAllocator template.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef Foundation_SmallObjectAllocator_INCLUDED
#define Foundation_SmallObjectAllocator_INCLUDED
#include "Poco/Foundation.h"
#include "Poco/Types.h"
namespace Poco {
template <typename T, std::size_t S = sizeof(T)>
class SmallObjectAllocator
/// SmallObjectAllocator template is a lightweight wrapper implementing
/// small object allocation optimization idiom. Class is statically
/// parameterized on type created and the size threshold, which defaults
/// to the created object size; it follows that the default behavior is
/// use of automatically allocated memory (i.e. the value wrapped is
/// stored in the pre-allocated buffer). To enforce heap allocation,
/// specify S parameter to a value smaller than the size of the type
/// being instantiated.
///
/// The SmallObjectAllocator trade-off is the runtime check for memory
/// location where the value resides. The runtime check occurs at
/// construction/destruction as well as every value access. Value
/// access check can be alleviated by caching the value reference.
///
/// Usage example:
///
/// SmallObjectAllocator<int> s; // on the stack
/// SmallObjectAllocator<int, 1> h; // force heap alloc
/// int& i = s.get(); // no runtime performance penalty after this point
/// i = 5;
///
{
public:
SmallObjectAllocator()
{
if (isOnHeap()) _memory.ptr = new T();
else new (_memory.buf) T;
}
SmallObjectAllocator(const T& val)
{
if (isOnHeap()) _memory.ptr = new T(val);
else new (_memory.buf) T(val);
}
SmallObjectAllocator(const SmallObjectAllocator& other)
{
if (this != &other)
{
if (isOnHeap())
_memory.ptr = new T(*other._memory.ptr);
else
new (_memory.buf) T(*reinterpret_cast<const T*>(other._memory.buf));
}
}
~SmallObjectAllocator()
{
if (isOnHeap()) delete _memory.ptr;
else reinterpret_cast<T*>(_memory.buf)->~T();
}
SmallObjectAllocator& operator =(const SmallObjectAllocator& other)
{
if (this != &other)
{
if (isOnHeap())
_memory.ptr = new T(*other._memory.ptr);
else
new (_memory.buf) T(*reinterpret_cast<const T*>(other._memory.buf));
}
return *this;
}
T& get()
{
if (isOnHeap())
return *_memory.ptr;
else
return reinterpret_cast<T&>(*(_memory.buf));
}
const T& get() const
{
if (isOnHeap())
return *_memory.ptr;
else
return reinterpret_cast<const T&>(*_memory.buf);
}
bool isOnHeap() const
{
return sizeof(T) > S;
}
private:
union
{
unsigned char buf[S];
T* ptr;
} _memory;
};
template <>
class SmallObjectAllocator <char*>
/// SmallObjectAllocator char* specialization.
///
/// The treshold between auto and heap allocation
/// is controlled through POCO_SMALL_OBJECT_SIZE compile
/// time constant, which on 32 or 64 systems defaults
/// to 31 or 63 bytes respectively. This specialization
/// adds an extra byte to indicate the allocation strategy.
///
/// To summarize, e.g. POCO_SMALL_OBJECT_SIZE value of 7 will
/// take up at least 8 bytes of storage (for auto allocation)
/// with 6 bytes as the effective string length:
///
/// +---+---+---+---+---+---+---+---+
/// | c | c | c | c | c | c | 0 | f |
/// +---+---+---+---+---+---+---+---+
///
/// Legend:
/// c - character
/// 0 - terminating zero
/// f - allocation flag
///
{
public:
static const std::size_t Size = POCO_SMALL_OBJECT_SIZE;
SmallObjectAllocator(std::size_t sz)
{
_memory.buf[Size] = (sz > Size) ? 1 : 0;
if (_memory.buf[Size]) _memory.ptr = new char[sz + 1];
}
SmallObjectAllocator(const char* pCh, std::size_t sz)
{
allocateAndAssign(pCh, sz);
}
SmallObjectAllocator(const char* pCh)
{
allocateAndAssign(pCh, strlen(pCh));
}
~SmallObjectAllocator()
{
if (_memory.buf[Size]) delete _memory.ptr;
}
SmallObjectAllocator <char*>& operator = (const char* pCh)
{
allocateAndAssign(pCh, strlen(pCh));
return *this;
}
char* get()
{
if (_memory.buf[Size]) return _memory.ptr;
else return _memory.buf;
}
const char* get() const
{
if (_memory.buf[Size]) return _memory.ptr;
else return _memory.buf;
}
bool isOnHeap() const
{
return _memory.buf[Size] != 0;
}
private:
SmallObjectAllocator();
void allocateAndAssign(const char* pCh, std::size_t sz)
{
_memory.buf[Size] = (sz > Size) ? 1 : 0;
if (_memory.buf[Size])
{
_memory.ptr = new char[sz + 1];
_memory.ptr[sz] = '\0';
std::memcpy(_memory.ptr, pCh, sz);
}
else
{
_memory.buf[sz] = '\0';
std::memcpy(_memory.buf, pCh, sz);
}
}
union
{
char buf[Size + 1];
char* ptr;
} _memory;
};
typedef SmallObjectAllocator<char*> SmallStringAllocator;
} // namespace Poco
#endif // Foundation_SmallObjectAllocator_INCLUDED

View File

@ -220,6 +220,17 @@ namespace Poco {
#endif #endif
// Small object size in bytes. Where applicable (e.g.
// SmallObjectAllocator<char*> specialization of , Any, etc)
// objects longer than this value will be alocated on the heap.
// See Poco/SmallObjectAllocator.h for details.
#if (POCO_PTR_IS_64_BIT == 1)
#define POCO_SMALL_OBJECT_SIZE 63
#else
#define POCO_SMALL_OBJECT_SIZE 31
#endif
} // namespace Poco } // namespace Poco

View File

@ -95,14 +95,14 @@ FIFOBufferStreamBuf::~FIFOBufferStreamBuf()
int FIFOBufferStreamBuf::readFromDevice(char* buffer, std::streamsize length) int FIFOBufferStreamBuf::readFromDevice(char* buffer, std::streamsize length)
{ {
poco_assert (length > 0); poco_assert (length > 0);
return _fifoBuffer.read(buffer, static_cast<std::size_t>(length)); return static_cast<int>(_fifoBuffer.read(buffer, static_cast<std::size_t>(length)));
} }
int FIFOBufferStreamBuf::writeToDevice(const char* buffer, std::streamsize length) int FIFOBufferStreamBuf::writeToDevice(const char* buffer, std::streamsize length)
{ {
poco_assert (length > 0); poco_assert (length > 0);
return _fifoBuffer.write(buffer, static_cast<std::size_t>(length)); return static_cast<int>(_fifoBuffer.write(buffer, static_cast<std::size_t>(length)));
} }

View File

@ -122,7 +122,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -152,7 +152,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
@ -185,7 +185,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
@ -214,7 +214,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -240,7 +240,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -270,7 +270,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>

View File

@ -51,7 +51,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -85,7 +85,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>

View File

@ -115,7 +115,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -146,7 +146,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
@ -180,7 +180,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks> <BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -211,7 +211,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -238,7 +238,7 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -270,7 +270,7 @@
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks> <BasicRuntimeChecks>Default</BasicRuntimeChecks>

View File

@ -72,6 +72,9 @@ AnyTest::~AnyTest()
void AnyTest::testInt() void AnyTest::testInt()
{ {
Any e;
assert (e.empty());
Any a = 13; Any a = 13;
assert (a.type() == typeid(int)); assert (a.type() == typeid(int));
int* i = AnyCast<int>(&a); int* i = AnyCast<int>(&a);

View File

@ -45,6 +45,7 @@
#include "Poco/Ascii.h" #include "Poco/Ascii.h"
#include "Poco/BasicEvent.h" #include "Poco/BasicEvent.h"
#include "Poco/Delegate.h" #include "Poco/Delegate.h"
#include "Poco/SmallObjectAllocator.h"
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
@ -64,6 +65,7 @@ using Poco::AtomicCounter;
using Poco::Nullable; using Poco::Nullable;
using Poco::Ascii; using Poco::Ascii;
using Poco::BasicEvent; using Poco::BasicEvent;
using Poco::SmallObjectAllocator;
using Poco::delegate; using Poco::delegate;
using Poco::NullType; using Poco::NullType;
using Poco::InvalidAccessException; using Poco::InvalidAccessException;
@ -96,6 +98,37 @@ namespace
} }
class Small
{
};
struct Parent
{
Parent() { i = -1; }
virtual ~Parent() { i= -2; }
static int i;
};
int Parent::i = 0;
struct Medium : public Parent
{
};
struct Large
{
Large() : i(1), j(2), k(3), l(4) { }
long i,j,k;
const long l;
};
// //
// The bugcheck test is normally disabled, as it // The bugcheck test is normally disabled, as it
// causes a break into the debugger. // causes a break into the debugger.
@ -1031,6 +1064,137 @@ void CoreTest::testAscii()
} }
void CoreTest::testSmallObjectAllocator()
{
{
SmallObjectAllocator<int> soa1;
assert (!soa1.isOnHeap());
int& i = soa1.get();
i = 42;
int j = i;
assert (j == 42);
int* pi = &i;
assert (*pi == 42);
*pi = 24;
assert (i == 24);
SmallObjectAllocator<int> soa2(soa1);
assert (soa1.get() == soa2.get());
assert (soa2.get() == 24);
SmallObjectAllocator<int> soa3;
soa3 = soa2;
assert (soa3.get() == soa2.get());
assert (soa3.get() == 24);
}
{
// force heap alloc
SmallObjectAllocator<int, 1> soa1;
assert (soa1.isOnHeap());
int& i = soa1.get();
i = 42;
int j = i;
assert (j == 42);
int* pi = &i;
assert (*pi == 42);
*pi = 24;
assert (i == 24);
SmallObjectAllocator<int, 1> soa2(soa1);
assert (soa1.get() == soa2.get());
assert (soa2.get() == 24);
SmallObjectAllocator<int, 1> soa3;
soa3 = soa2;
assert (soa3.get() == soa2.get());
assert (soa3.get() == 24);
}
SmallObjectAllocator<Small> soa2;
assert (!soa2.isOnHeap());
{
assert (Parent::i == 0);
SmallObjectAllocator<Medium> soa3;
assert (!soa3.isOnHeap());
assert (Parent::i == -1);
}
assert (Parent::i == -2);
{
typedef SmallObjectAllocator<Large, 4> LargeType;
LargeType soa4;
assert (soa4.isOnHeap());
Large large = soa4.get();
assert (large.i == 1);
assert (large.j == 2);
assert (large.k == 3);
const LargeType soa5;
assert (soa5.get().l == 4);
}
Parent::i = 0; // only to make sure subsequent runs don't fail
SmallObjectAllocator<char*> soa6(2);
assert (!soa6.isOnHeap());
char* pC2 = soa6.get();
pC2[0] = 'x';
pC2[1] = '\0';
std::string str2(pC2);
assert (str2 == "x");
std::size_t sz = POCO_SMALL_OBJECT_SIZE + 1;
Poco::SmallStringAllocator soa7(sz);
assert (soa7.isOnHeap());
char* pC = soa7.get();
char c = '0';
int i = 0;
// test this only for default values
if (POCO_SMALL_OBJECT_SIZE == 15)
{
for (i = 0; i < sz - 1; ++i)
pC[i] = c++;
pC[i] = '\0';
std::string str(pC);
assert (str == "0123456789:;<=>");
Poco::SmallStringAllocator soa7("0123456789:;<=>");
assert (str == soa7.get());
soa7 = "";
assert (soa7.get()[0] == '\0');
soa7 = "0123456789:;<=>";
assert (str == soa7.get());
}
else if (POCO_SMALL_OBJECT_SIZE == 7)
{
for (i = 0; i < sz - 1; ++i)
pC[i] = c++;
pC[i] = '\0';
std::string str(pC);
assert (str == "0123456");
Poco::SmallStringAllocator soa7("0123456");
assert (str == soa7.get());
soa7 = "";
assert (soa7.get()[0] == '\0');
soa7 = "0123456";
assert (str == soa7.get());
}
std::string str("0123456789");
Poco::SmallObjectAllocator<std::string> soa8(str);
assert (!soa8.isOnHeap());
assert(soa8.get() == str);
Poco::SmallObjectAllocator<std::string, 1> soa9;
assert (soa9.isOnHeap());
soa9 = str;
assert(soa9.get() == str);
}
void CoreTest::onReadable(bool& b) void CoreTest::onReadable(bool& b)
{ {
if (b) ++_notToReadable; if (b) ++_notToReadable;
@ -1074,6 +1238,7 @@ CppUnit::Test* CoreTest::suite()
CppUnit_addTest(pSuite, CoreTest, testAtomicCounter); CppUnit_addTest(pSuite, CoreTest, testAtomicCounter);
CppUnit_addTest(pSuite, CoreTest, testNullable); CppUnit_addTest(pSuite, CoreTest, testNullable);
CppUnit_addTest(pSuite, CoreTest, testAscii); CppUnit_addTest(pSuite, CoreTest, testAscii);
CppUnit_addTest(pSuite, CoreTest, testSmallObjectAllocator);
return pSuite; return pSuite;
} }

View File

@ -58,6 +58,7 @@ public:
void testAtomicCounter(); void testAtomicCounter();
void testNullable(); void testNullable();
void testAscii(); void testAscii();
void testSmallObjectAllocator();
void setUp(); void setUp();
void tearDown(); void tearDown();

View File

@ -438,6 +438,8 @@
RelativePath=".\include\Poco\Net\HostEntry.h"/> RelativePath=".\include\Poco\Net\HostEntry.h"/>
<File <File
RelativePath=".\include\Poco\Net\IPAddress.h"/> RelativePath=".\include\Poco\Net\IPAddress.h"/>
<File
RelativePath=".\include\Poco\Net\IPAddressImpl.h"/>
<File <File
RelativePath=".\include\Poco\Net\Net.h"/> RelativePath=".\include\Poco\Net\Net.h"/>
<File <File
@ -457,6 +459,8 @@
RelativePath=".\src\HostEntry.cpp"/> RelativePath=".\src\HostEntry.cpp"/>
<File <File
RelativePath=".\src\IPAddress.cpp"/> RelativePath=".\src\IPAddress.cpp"/>
<File
RelativePath=".\src\IPAddressImpl.cpp"/>
<File <File
RelativePath=".\src\Net.cpp"/> RelativePath=".\src\Net.cpp"/>
<File <File

View File

@ -276,6 +276,7 @@
<ClInclude Include="include\Poco\Net\DNS.h"/> <ClInclude Include="include\Poco\Net\DNS.h"/>
<ClInclude Include="include\Poco\Net\HostEntry.h"/> <ClInclude Include="include\Poco\Net\HostEntry.h"/>
<ClInclude Include="include\Poco\Net\IPAddress.h"/> <ClInclude Include="include\Poco\Net\IPAddress.h"/>
<ClInclude Include="include\Poco\Net\IPAddressImpl.h"/>
<ClInclude Include="include\Poco\Net\Net.h"/> <ClInclude Include="include\Poco\Net\Net.h"/>
<ClInclude Include="include\Poco\Net\NetException.h"/> <ClInclude Include="include\Poco\Net\NetException.h"/>
<ClInclude Include="include\Poco\Net\NetworkInterface.h"/> <ClInclude Include="include\Poco\Net\NetworkInterface.h"/>
@ -375,6 +376,7 @@
<ClCompile Include="src\DNS.cpp"/> <ClCompile Include="src\DNS.cpp"/>
<ClCompile Include="src\HostEntry.cpp"/> <ClCompile Include="src\HostEntry.cpp"/>
<ClCompile Include="src\IPAddress.cpp"/> <ClCompile Include="src\IPAddress.cpp"/>
<ClCompile Include="src\IPAddressImpl.cpp"/>
<ClCompile Include="src\Net.cpp"/> <ClCompile Include="src\Net.cpp"/>
<ClCompile Include="src\NetException.cpp"/> <ClCompile Include="src\NetException.cpp"/>
<ClCompile Include="src\NetworkInterface.cpp"/> <ClCompile Include="src\NetworkInterface.cpp"/>

View File

@ -138,6 +138,9 @@
<ClInclude Include="include\Poco\Net\IPAddress.h"> <ClInclude Include="include\Poco\Net\IPAddress.h">
<Filter>NetCore\Header Files</Filter> <Filter>NetCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Net\IPAddressImpl.h">
<Filter>NetCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Net\Net.h"> <ClInclude Include="include\Poco\Net\Net.h">
<Filter>NetCore\Header Files</Filter> <Filter>NetCore\Header Files</Filter>
</ClInclude> </ClInclude>
@ -431,6 +434,9 @@
<ClCompile Include="src\IPAddress.cpp"> <ClCompile Include="src\IPAddress.cpp">
<Filter>NetCore\Source Files</Filter> <Filter>NetCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\IPAddressimpl.cpp">
<Filter>NetCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Net.cpp"> <ClCompile Include="src\Net.cpp">
<Filter>NetCore\Source Files</Filter> <Filter>NetCore\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@ -370,6 +370,8 @@
RelativePath=".\include\Poco\Net\HostEntry.h"/> RelativePath=".\include\Poco\Net\HostEntry.h"/>
<File <File
RelativePath=".\include\Poco\Net\IPAddress.h"/> RelativePath=".\include\Poco\Net\IPAddress.h"/>
<File
RelativePath=".\include\Poco\Net\IPAddressImpl.h"/>
<File <File
RelativePath=".\include\Poco\Net\Net.h"/> RelativePath=".\include\Poco\Net\Net.h"/>
<File <File
@ -389,6 +391,8 @@
RelativePath=".\src\HostEntry.cpp"/> RelativePath=".\src\HostEntry.cpp"/>
<File <File
RelativePath=".\src\IPAddress.cpp"/> RelativePath=".\src\IPAddress.cpp"/>
<File
RelativePath=".\src\IPAddressImpl.cpp"/>
<File <File
RelativePath=".\src\Net.cpp"/> RelativePath=".\src\Net.cpp"/>
<File <File

View File

@ -391,6 +391,8 @@
RelativePath=".\include\Poco\Net\HostEntry.h"/> RelativePath=".\include\Poco\Net\HostEntry.h"/>
<File <File
RelativePath=".\include\Poco\Net\IPAddress.h"/> RelativePath=".\include\Poco\Net\IPAddress.h"/>
<File
RelativePath=".\include\Poco\Net\IPAddressImpl.h"/>
<File <File
RelativePath=".\include\Poco\Net\Net.h"/> RelativePath=".\include\Poco\Net\Net.h"/>
<File <File
@ -410,6 +412,8 @@
RelativePath=".\src\HostEntry.cpp"/> RelativePath=".\src\HostEntry.cpp"/>
<File <File
RelativePath=".\src\IPAddress.cpp"/> RelativePath=".\src\IPAddress.cpp"/>
<File
RelativePath=".\src\IPAddressImpl.cpp"/>
<File <File
RelativePath=".\src\Net.cpp"/> RelativePath=".\src\Net.cpp"/>
<File <File

View File

@ -390,6 +390,8 @@
RelativePath=".\include\Poco\Net\HostEntry.h"/> RelativePath=".\include\Poco\Net\HostEntry.h"/>
<File <File
RelativePath=".\include\Poco\Net\IPAddress.h"/> RelativePath=".\include\Poco\Net\IPAddress.h"/>
<File
RelativePath=".\include\Poco\Net\IPAddressImpl.h"/>
<File <File
RelativePath=".\include\Poco\Net\Net.h"/> RelativePath=".\include\Poco\Net\Net.h"/>
<File <File
@ -409,6 +411,8 @@
RelativePath=".\src\HostEntry.cpp"/> RelativePath=".\src\HostEntry.cpp"/>
<File <File
RelativePath=".\src\IPAddress.cpp"/> RelativePath=".\src\IPAddress.cpp"/>
<File
RelativePath=".\src\IPAddressImpl.cpp"/>
<File <File
RelativePath=".\src\Net.cpp"/> RelativePath=".\src\Net.cpp"/>
<File <File

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|x64"> <ProjectConfiguration Include="debug_shared|x64">
@ -33,75 +33,75 @@
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" /> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">..\bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">..\bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">..\bin64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">..\bin64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">obj64\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">..\lib64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">..\lib64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">obj64\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">..\lib64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">..\lib64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">obj64\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">..\lib64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">..\lib64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">obj64\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">..\lib64\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">..\lib64\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">obj64\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">obj64\$(Configuration)\</IntDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">PocoNet64d</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">PocoNet64d</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">PocoNetmdd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">PocoNetmdd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">PocoNetmtd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">PocoNetmtd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">PocoNet64</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">PocoNet64</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">PocoNetmd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">PocoNetmd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">PocoNetmt</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">PocoNetmt</TargetName>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -132,7 +132,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -166,7 +166,7 @@
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -190,7 +190,7 @@
<OutputFile>..\lib64\PocoNetmtd.lib</OutputFile> <OutputFile>..\lib64\PocoNetmtd.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -215,7 +215,7 @@
<OutputFile>..\lib64\PocoNetmt.lib</OutputFile> <OutputFile>..\lib64\PocoNetmt.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -239,7 +239,7 @@
<OutputFile>..\lib64\PocoNetmdd.lib</OutputFile> <OutputFile>..\lib64\PocoNetmdd.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -268,6 +268,7 @@
<ClInclude Include="include\Poco\Net\DNS.h" /> <ClInclude Include="include\Poco\Net\DNS.h" />
<ClInclude Include="include\Poco\Net\HostEntry.h" /> <ClInclude Include="include\Poco\Net\HostEntry.h" />
<ClInclude Include="include\Poco\Net\IPAddress.h" /> <ClInclude Include="include\Poco\Net\IPAddress.h" />
<ClInclude Include="include\Poco\Net\IPAddressImpl.h" />
<ClInclude Include="include\Poco\Net\Net.h" /> <ClInclude Include="include\Poco\Net\Net.h" />
<ClInclude Include="include\Poco\Net\NetException.h" /> <ClInclude Include="include\Poco\Net\NetException.h" />
<ClInclude Include="include\Poco\Net\NetworkInterface.h" /> <ClInclude Include="include\Poco\Net\NetworkInterface.h" />
@ -367,6 +368,7 @@
<ClCompile Include="src\DNS.cpp" /> <ClCompile Include="src\DNS.cpp" />
<ClCompile Include="src\HostEntry.cpp" /> <ClCompile Include="src\HostEntry.cpp" />
<ClCompile Include="src\IPAddress.cpp" /> <ClCompile Include="src\IPAddress.cpp" />
<ClCompile Include="src\IPAddressImpl.cpp" />
<ClCompile Include="src\Net.cpp" /> <ClCompile Include="src\Net.cpp" />
<ClCompile Include="src\NetException.cpp" /> <ClCompile Include="src\NetException.cpp" />
<ClCompile Include="src\NetworkInterface.cpp" /> <ClCompile Include="src\NetworkInterface.cpp" />
@ -458,12 +460,12 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc"> <ResourceCompile Include="..\DLLVersion.rc">
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|x64&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">true</ExcludedFromBuild>
</ResourceCompile> </ResourceCompile>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -420,6 +420,9 @@
<ClInclude Include="include\Poco\Net\WebSocketImpl.h"> <ClInclude Include="include\Poco\Net\WebSocketImpl.h">
<Filter>WebSocket\Header Files</Filter> <Filter>WebSocket\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Net\IPAddressImpl.h">
<Filter>NetCore\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\DNS.cpp"> <ClCompile Include="src\DNS.cpp">
@ -695,6 +698,9 @@
<ClCompile Include="src\WebSocketImpl.cpp"> <ClCompile Include="src\WebSocketImpl.cpp">
<Filter>WebSocket\Source Files</Filter> <Filter>WebSocket\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\IPAddressImpl.cpp">
<Filter>NetCore\Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc" /> <ResourceCompile Include="..\DLLVersion.rc" />

View File

@ -274,6 +274,7 @@
<ClInclude Include="include\Poco\Net\DNS.h"/> <ClInclude Include="include\Poco\Net\DNS.h"/>
<ClInclude Include="include\Poco\Net\HostEntry.h"/> <ClInclude Include="include\Poco\Net\HostEntry.h"/>
<ClInclude Include="include\Poco\Net\IPAddress.h"/> <ClInclude Include="include\Poco\Net\IPAddress.h"/>
<ClInclude Include="include\Poco\Net\IPAddressImpl.h"/>
<ClInclude Include="include\Poco\Net\Net.h"/> <ClInclude Include="include\Poco\Net\Net.h"/>
<ClInclude Include="include\Poco\Net\NetException.h"/> <ClInclude Include="include\Poco\Net\NetException.h"/>
<ClInclude Include="include\Poco\Net\NetworkInterface.h"/> <ClInclude Include="include\Poco\Net\NetworkInterface.h"/>
@ -373,6 +374,7 @@
<ClCompile Include="src\DNS.cpp"/> <ClCompile Include="src\DNS.cpp"/>
<ClCompile Include="src\HostEntry.cpp"/> <ClCompile Include="src\HostEntry.cpp"/>
<ClCompile Include="src\IPAddress.cpp"/> <ClCompile Include="src\IPAddress.cpp"/>
<ClCompile Include="src\IPAddressImpl.cpp"/>
<ClCompile Include="src\Net.cpp"/> <ClCompile Include="src\Net.cpp"/>
<ClCompile Include="src\NetException.cpp"/> <ClCompile Include="src\NetException.cpp"/>
<ClCompile Include="src\NetworkInterface.cpp"/> <ClCompile Include="src\NetworkInterface.cpp"/>

View File

@ -138,6 +138,9 @@
<ClInclude Include="include\Poco\Net\IPAddress.h"> <ClInclude Include="include\Poco\Net\IPAddress.h">
<Filter>NetCore\Header Files</Filter> <Filter>NetCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Net\IPAddressImpl.h">
<Filter>NetCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Net\Net.h"> <ClInclude Include="include\Poco\Net\Net.h">
<Filter>NetCore\Header Files</Filter> <Filter>NetCore\Header Files</Filter>
</ClInclude> </ClInclude>
@ -431,6 +434,9 @@
<ClCompile Include="src\IPAddress.cpp"> <ClCompile Include="src\IPAddress.cpp">
<Filter>NetCore\Source Files</Filter> <Filter>NetCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\IPAddressImpl.cpp">
<Filter>NetCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Net.cpp"> <ClCompile Include="src\Net.cpp">
<Filter>NetCore\Source Files</Filter> <Filter>NetCore\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@ -395,6 +395,8 @@
RelativePath=".\include\Poco\Net\HostEntry.h"/> RelativePath=".\include\Poco\Net\HostEntry.h"/>
<File <File
RelativePath=".\include\Poco\Net\IPAddress.h"/> RelativePath=".\include\Poco\Net\IPAddress.h"/>
<File
RelativePath=".\include\Poco\Net\IPAddressImpl.h"/>
<File <File
RelativePath=".\include\Poco\Net\Net.h"/> RelativePath=".\include\Poco\Net\Net.h"/>
<File <File
@ -414,6 +416,8 @@
RelativePath=".\src\HostEntry.cpp"/> RelativePath=".\src\HostEntry.cpp"/>
<File <File
RelativePath=".\src\IPAddress.cpp"/> RelativePath=".\src\IPAddress.cpp"/>
<File
RelativePath=".\src\IPAddressImpl.cpp"/>
<File <File
RelativePath=".\src\Net.cpp"/> RelativePath=".\src\Net.cpp"/>
<File <File

View File

@ -89,26 +89,6 @@
#endif // POCO_NET_NO_IPv6, POCO_HAVE_IPv6 #endif // POCO_NET_NO_IPv6, POCO_HAVE_IPv6
#if !defined(s6_addr16)
#if defined(POCO_OS_FAMILY_WINDOWS)
#define s6_addr16 u.Word
#else
#define s6_addr16 __u6_addr.__u6_addr16
#endif
#endif
#if !defined(s6_addr32)
#if defined(POCO_OS_FAMILY_UNIX)
#if (POCO_OS == POCO_OS_SOLARIS)
#define s6_addr32 _S6_un._S6_u32
#else
#define s6_addr32 __u6_addr.__u6_addr32
#endif
#endif
#endif
namespace Poco { namespace Poco {
namespace Net { namespace Net {

View File

@ -331,4 +331,25 @@
#define poco_hton_16(x) poco_ntoh_16(x) #define poco_hton_16(x) poco_ntoh_16(x)
#define poco_hton_32(x) poco_ntoh_32(x) #define poco_hton_32(x) poco_ntoh_32(x)
#if !defined(s6_addr16)
#if defined(POCO_OS_FAMILY_WINDOWS)
#define s6_addr16 u.Word
#else
#define s6_addr16 __u6_addr.__u6_addr16
#endif
#endif
#if !defined(s6_addr32)
#if defined(POCO_OS_FAMILY_UNIX)
#if (POCO_OS == POCO_OS_SOLARIS)
#define s6_addr32 _S6_un._S6_u32
#else
#define s6_addr32 __u6_addr.__u6_addr32
#endif
#endif
#endif
#endif // Net_SocketDefs_INCLUDED #endif // Net_SocketDefs_INCLUDED

View File

@ -136,7 +136,7 @@ int StreamSocket::sendBytes(const void* buffer, int length, int flags)
int StreamSocket::sendBytes(FIFOBuffer& fifoBuf) int StreamSocket::sendBytes(FIFOBuffer& fifoBuf)
{ {
int ret = impl()->sendBytes(&fifoBuf.buffer()[0], fifoBuf.used()); int ret = impl()->sendBytes(&fifoBuf.buffer()[0], (int) fifoBuf.used());
if (ret > 0) fifoBuf.drain(ret); if (ret > 0) fifoBuf.drain(ret);
return ret; return ret;
} }
@ -150,7 +150,7 @@ int StreamSocket::receiveBytes(void* buffer, int length, int flags)
int StreamSocket::receiveBytes(FIFOBuffer& fifoBuf) int StreamSocket::receiveBytes(FIFOBuffer& fifoBuf)
{ {
int ret = impl()->receiveBytes(fifoBuf.next(), fifoBuf.available()); int ret = impl()->receiveBytes(fifoBuf.next(), (int) fifoBuf.available());
if (ret > 0) fifoBuf.advance(ret); if (ret > 0) fifoBuf.advance(ret);
return ret; return ret;
} }

View File

@ -129,7 +129,7 @@ void WebSocketTest::testWebSocket()
WebSocket ws(cs, request, response); WebSocket ws(cs, request, response);
std::string payload("x"); std::string payload("x");
ws.sendFrame(payload.data(), payload.size()); ws.sendFrame(payload.data(), (int) payload.size());
char buffer[1024]; char buffer[1024];
int flags; int flags;
int n = ws.receiveFrame(buffer, sizeof(buffer), flags); int n = ws.receiveFrame(buffer, sizeof(buffer), flags);
@ -140,7 +140,7 @@ void WebSocketTest::testWebSocket()
for (int i = 2; i < 20; i++) for (int i = 2; i < 20; i++)
{ {
payload.assign(i, 'x'); payload.assign(i, 'x');
ws.sendFrame(payload.data(), payload.size()); ws.sendFrame(payload.data(), (int) payload.size());
n = ws.receiveFrame(buffer, sizeof(buffer), flags); n = ws.receiveFrame(buffer, sizeof(buffer), flags);
assert (n == payload.size()); assert (n == payload.size());
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0); assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);
@ -150,7 +150,7 @@ void WebSocketTest::testWebSocket()
for (int i = 125; i < 129; i++) for (int i = 125; i < 129; i++)
{ {
payload.assign(i, 'x'); payload.assign(i, 'x');
ws.sendFrame(payload.data(), payload.size()); ws.sendFrame(payload.data(), (int) payload.size());
n = ws.receiveFrame(buffer, sizeof(buffer), flags); n = ws.receiveFrame(buffer, sizeof(buffer), flags);
assert (n == payload.size()); assert (n == payload.size());
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0); assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);
@ -158,14 +158,14 @@ void WebSocketTest::testWebSocket()
} }
payload = "Hello, world!"; payload = "Hello, world!";
ws.sendFrame(payload.data(), payload.size()); ws.sendFrame(payload.data(), (int) payload.size());
n = ws.receiveFrame(buffer, sizeof(buffer), flags); n = ws.receiveFrame(buffer, sizeof(buffer), flags);
assert (n == payload.size()); assert (n == payload.size());
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0); assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);
assert (flags == WebSocket::FRAME_TEXT); assert (flags == WebSocket::FRAME_TEXT);
payload = "Hello, universe!"; payload = "Hello, universe!";
ws.sendFrame(payload.data(), payload.size(), WebSocket::FRAME_BINARY); ws.sendFrame(payload.data(), (int) payload.size(), WebSocket::FRAME_BINARY);
n = ws.receiveFrame(buffer, sizeof(buffer), flags); n = ws.receiveFrame(buffer, sizeof(buffer), flags);
assert (n == payload.size()); assert (n == payload.size());
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0); assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32"> <ProjectConfiguration Include="debug_shared|Win32">
@ -33,75 +33,75 @@
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" /> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;">..\bin\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">..\bin\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;">..\bin\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">..\bin\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\$(Configuration)\</IntDir>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;">..\lib\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">..\lib\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">obj\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;">..\lib\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">..\lib\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">obj\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;">..\lib\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">..\lib\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">obj\$(Configuration)\</IntDir>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;">..\lib\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">..\lib\</OutDir>
<IntDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;">obj\$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">obj\$(Configuration)\</IntDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;">PocoUtild</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">PocoUtild</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;">PocoUtilmdd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">PocoUtilmdd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;">PocoUtilmtd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">PocoUtilmtd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;">PocoUtil</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">PocoUtil</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;">PocoUtilmd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">PocoUtilmd</TargetName>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;">PocoUtilmt</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">PocoUtilmt</TargetName>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_shared|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -132,7 +132,7 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_shared|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -166,7 +166,7 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -190,7 +190,7 @@
<OutputFile>..\lib\PocoUtilmtd.lib</OutputFile> <OutputFile>..\lib\PocoUtilmtd.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -215,7 +215,7 @@
<OutputFile>..\lib\PocoUtilmt.lib</OutputFile> <OutputFile>..\lib\PocoUtilmt.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -239,7 +239,7 @@
<OutputFile>..\lib\PocoUtilmdd.lib</OutputFile> <OutputFile>..\lib\PocoUtilmdd.lib</OutputFile>
</Lib> </Lib>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
@ -282,6 +282,7 @@
<ClInclude Include="include\Poco\Util\MapConfiguration.h" /> <ClInclude Include="include\Poco\Util\MapConfiguration.h" />
<ClInclude Include="include\Poco\Util\PropertyFileConfiguration.h" /> <ClInclude Include="include\Poco\Util\PropertyFileConfiguration.h" />
<ClInclude Include="include\Poco\Util\SystemConfiguration.h" /> <ClInclude Include="include\Poco\Util\SystemConfiguration.h" />
<ClInclude Include="include\Poco\Util\Units.h" />
<ClInclude Include="include\Poco\Util\XMLConfiguration.h" /> <ClInclude Include="include\Poco\Util\XMLConfiguration.h" />
<ClInclude Include="include\Poco\Util\HelpFormatter.h" /> <ClInclude Include="include\Poco\Util\HelpFormatter.h" />
<ClInclude Include="include\Poco\Util\IntValidator.h" /> <ClInclude Include="include\Poco\Util\IntValidator.h" />
@ -334,10 +335,10 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc"> <ResourceCompile Include="..\DLLVersion.rc">
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_md|Win32&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;debug_static_mt|Win32&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_md|Win32&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;release_static_mt|Win32&apos;">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">true</ExcludedFromBuild>
</ResourceCompile> </ResourceCompile>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -153,6 +153,9 @@
<ClInclude Include="include\Poco\Util\TimerTaskAdapter.h"> <ClInclude Include="include\Poco\Util\TimerTaskAdapter.h">
<Filter>Timer\Header Files</Filter> <Filter>Timer\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Util\Units.h">
<Filter>Util\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Application.cpp"> <ClCompile Include="src\Application.cpp">