diff options
-rw-r--r-- | cpp/src/Makefile.am | 2 | ||||
-rw-r--r-- | cpp/src/common.vcproj | 1695 | ||||
-rw-r--r-- | cpp/src/qpid/sys/PollableCondition.h | 54 | ||||
-rw-r--r-- | cpp/src/qpid/sys/PollableQueue.h | 46 | ||||
-rw-r--r-- | cpp/src/qpid/sys/posix/PollableCondition.cpp | 119 | ||||
-rw-r--r-- | cpp/src/qpid/sys/posix/PollableCondition.h | 56 | ||||
-rw-r--r-- | cpp/src/qpid/sys/windows/PollableCondition.cpp | 125 | ||||
-rw-r--r-- | cpp/src/tests/QueueEvents.cpp | 1 |
8 files changed, 1401 insertions, 697 deletions
diff --git a/cpp/src/Makefile.am b/cpp/src/Makefile.am index d5b53dc502..5d50756ec1 100644 --- a/cpp/src/Makefile.am +++ b/cpp/src/Makefile.am @@ -41,6 +41,7 @@ windows_dist = \ qpid/sys/windows/IOHandle.cpp \ qpid/sys/windows/IoHandlePrivate.h \ qpid/sys/windows/LockFile.cpp \ + qpid/sys/windows/PollableCondition.cpp \ qpid/sys/windows/Mutex.h \ qpid/sys/windows/Shlib.cpp \ qpid/sys/windows/Socket.cpp \ @@ -139,7 +140,6 @@ posix_plat_hdr = \ qpid/sys/posix/PrivatePosix.h \ qpid/sys/posix/Mutex.h \ qpid/sys/posix/Fork.h \ - qpid/sys/posix/PollableCondition.h \ qpid/sys/posix/IntegerTypes.h \ qpid/sys/posix/Time.h diff --git a/cpp/src/common.vcproj b/cpp/src/common.vcproj index e8c40da426..c074afad53 100644 --- a/cpp/src/common.vcproj +++ b/cpp/src/common.vcproj @@ -1,25 +1,4 @@ <?xml version="1.0" encoding="Windows-1252"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
@@ -27,7 +6,7 @@ ProjectGUID="{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}"
RootNamespace="common"
Keyword="Win32Proj"
- SignManifests="true"
+ TargetFrameworkVersion="0"
>
<Platforms>
<Platform
@@ -46,7 +25,6 @@ IntermediateDirectory="Static_Debug\common\I386"
ConfigurationType="4"
CharacterSet="0"
-
>
<Tool
Name="VCPreBuildEventTool"
@@ -73,7 +51,7 @@ Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
- PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -116,12 +94,11 @@ />
</Configuration>
<Configuration
- Name="Release|Win32"
+ Name="Debug|x64"
OutputDirectory="."
- IntermediateDirectory="Static_Release\common\I386"
+ IntermediateDirectory="Static_Debug\common\AMD64"
ConfigurationType="4"
CharacterSet="0"
-
>
<Tool
Name="VCPreBuildEventTool"
@@ -146,13 +123,16 @@ />
<Tool
Name="VCCLCompilerTool"
- Optimization="2"
+ Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
- PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ MinimalRebuild="false"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
DisableSpecificWarnings="4244;4800;4355"
/>
<Tool
@@ -160,7 +140,7 @@ />
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_WIN64"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
/>
@@ -169,7 +149,7 @@ />
<Tool
Name="VCLibrarianTool"
- OutputFile=".\qpidcommons.lib"
+ OutputFile=".\qpidcommonsd.lib"
/>
<Tool
Name="VCALinkTool"
@@ -188,12 +168,11 @@ />
</Configuration>
<Configuration
- Name="Debug|x64"
+ Name="Release|Win32"
OutputDirectory="."
- IntermediateDirectory="Static_Debug\common\AMD64"
+ IntermediateDirectory="Static_Release\common\I386"
ConfigurationType="4"
CharacterSet="0"
-
>
<Tool
Name="VCPreBuildEventTool"
@@ -218,16 +197,13 @@ />
<Tool
Name="VCCLCompilerTool"
- Optimization="0"
+ Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
- PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- MinimalRebuild="false"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ RuntimeLibrary="0"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
- DebugInformationFormat="3"
DisableSpecificWarnings="4244;4800;4355"
/>
<Tool
@@ -235,7 +211,7 @@ />
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_WIN64"
+ PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
/>
@@ -244,7 +220,7 @@ />
<Tool
Name="VCLibrarianTool"
- OutputFile=".\qpidcommonsd.lib"
+ OutputFile=".\qpidcommons.lib"
/>
<Tool
Name="VCALinkTool"
@@ -268,7 +244,6 @@ IntermediateDirectory="Static_Release\common\AMD64"
ConfigurationType="4"
CharacterSet="0"
-
>
<Tool
Name="VCPreBuildEventTool"
@@ -295,7 +270,7 @@ Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,.,gen"
- PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
RuntimeLibrary="0"
RuntimeTypeInfo="true"
WarningLevel="3"
@@ -340,1534 +315,2048 @@ <Files>
<Filter
Name="Source Files"
- Filter="cpp;cxx;cc;C;c">
+ Filter="cpp;cxx;cc;C;c"
+ >
+ <File
+ RelativePath="qpid\framing\AccumulatedAck.cpp"
+ >
+ </File>
<File
- RelativePath="gen\qpid\framing\AllInvoker.cpp">
+ RelativePath="qpid\Address.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_AllProxy.cpp">
+ RelativePath="qpid\sys\AggregateOutput.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ClientProxy.cpp">
+ RelativePath="gen\qpid\framing\AllInvoker.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ServerProxy.cpp">
+ RelativePath="qpid\framing\AMQBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClientInvoker.cpp">
+ RelativePath="qpid\framing\AMQContentBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConfigChangeBody.cpp">
+ RelativePath="qpid\framing\AMQFrame.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionAccumulatedAckBody.cpp">
+ RelativePath="qpid\framing\AMQHeaderBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionConsumerStateBody.cpp">
+ RelativePath="qpid\framing\AMQHeartbeatBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliverCloseBody.cpp">
+ RelativePath="qpid\framing\AMQMethodBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliverDoOutputBody.cpp">
+ RelativePath="gen\qpid\framing\AMQP_AllProxy.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliveryRecordBody.cpp">
+ RelativePath="gen\qpid\framing\AMQP_ClientProxy.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionExchangeBody.cpp">
+ RelativePath="qpid\framing\AMQP_HighestVersion.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionMembershipBody.cpp">
+ RelativePath="gen\qpid\framing\AMQP_ServerProxy.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionQueueBody.cpp">
+ RelativePath="qpid\framing\Array.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionQueuePositionBody.cpp">
+ RelativePath="qpid\assert.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionSessionStateBody.cpp">
+ RelativePath="qpid\assert.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionShadowReadyBody.cpp">
+ RelativePath="qpid\sys\windows\AsynchIO.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxAcceptBody.cpp">
+ RelativePath="qpid\sys\AsynchIOHandler.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxDequeueBody.cpp">
+ RelativePath="qpid\framing\BodyHandler.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxEndBody.cpp">
+ RelativePath="qpid\framing\Buffer.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxEnqueueBody.cpp">
+ RelativePath="gen\qpid\framing\ClientInvoker.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxPublishBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConfigChangeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxStartBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionAccumulatedAckBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterMessageExpiredBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionConsumerStateBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterReadyBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliverCloseBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterShutdownBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliverDoOutputBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterUpdateOfferBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliveryRecordBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterUpdateRequestBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionExchangeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionCloseBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionMembershipBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionCloseOkBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionQueueBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionHeartbeatBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionQueuePositionBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionOpenBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionSessionStateBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionOpenOkBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionShadowReadyBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionRedirectBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxAcceptBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionSecureBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxDequeueBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionSecureOkBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxEndBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionStartBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxEnqueueBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionStartOkBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxPublishBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionTuneBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxStartBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionTuneOkBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterMessageExpiredBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DeliveryProperties.cpp">
+ RelativePath="gen\qpid\framing\ClusterReadyBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxCommitBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterShutdownBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxEndBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterUpdateOfferBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxForgetBody.cpp">
+ RelativePath="gen\qpid\framing\ClusterUpdateRequestBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxGetTimeoutBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionCloseBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxGetTimeoutResult.cpp">
+ RelativePath="gen\qpid\framing\ConnectionCloseOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxPrepareBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionHeartbeatBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRecoverBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionOpenBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRecoverResult.cpp">
+ RelativePath="gen\qpid\framing\ConnectionOpenOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRollbackBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionRedirectBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxSelectBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionSecureBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxSetTimeoutBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionSecureOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxStartBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionStartBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBindBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionStartOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBoundBody.cpp">
+ RelativePath="gen\qpid\framing\ConnectionTuneBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBoundResult.cpp">
+ RelativePath="gen\qpid\framing\ConnectionTuneOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeDeclareBody.cpp">
+ RelativePath="qpid\DataDir.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeDeleteBody.cpp">
+ RelativePath="gen\qpid\framing\DeliveryProperties.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeQueryBody.cpp">
+ RelativePath="qpid\sys\Dispatcher.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeQueryResult.cpp">
+ RelativePath="gen\qpid\framing\DtxCommitBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeUnbindBody.cpp">
+ RelativePath="gen\qpid\framing\DtxEndBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionExceptionBody.cpp">
+ RelativePath="gen\qpid\framing\DtxForgetBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionResultBody.cpp">
+ RelativePath="gen\qpid\framing\DtxGetTimeoutBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionSyncBody.cpp">
+ RelativePath="gen\qpid\framing\DtxGetTimeoutResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileAckBody.cpp">
+ RelativePath="gen\qpid\framing\DtxPrepareBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileCancelBody.cpp">
+ RelativePath="gen\qpid\framing\DtxRecoverBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileConsumeBody.cpp">
+ RelativePath="gen\qpid\framing\DtxRecoverResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileConsumeOkBody.cpp">
+ RelativePath="gen\qpid\framing\DtxRollbackBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileDeliverBody.cpp">
+ RelativePath="gen\qpid\framing\DtxSelectBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileOpenBody.cpp">
+ RelativePath="gen\qpid\framing\DtxSetTimeoutBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileOpenOkBody.cpp">
+ RelativePath="gen\qpid\framing\DtxStartBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileProperties.cpp">
+ RelativePath="qpid\framing\Endian.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FilePublishBody.cpp">
+ RelativePath="qpid\Exception.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileQosBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeBindBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileQosOkBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeBoundBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileRejectBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeBoundResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileReturnBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeDeclareBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileStageBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeDeleteBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FragmentProperties.cpp">
+ RelativePath="gen\qpid\framing\ExchangeQueryBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\Header.cpp">
+ RelativePath="gen\qpid\framing\ExchangeQueryResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcceptBody.cpp">
+ RelativePath="gen\qpid\framing\ExchangeUnbindBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcquireBody.cpp">
+ RelativePath="gen\qpid\framing\ExecutionExceptionBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcquireResult.cpp">
+ RelativePath="gen\qpid\framing\ExecutionResultBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageCancelBody.cpp">
+ RelativePath="gen\qpid\framing\ExecutionSyncBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageFlowBody.cpp">
+ RelativePath="qpid\framing\FieldTable.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageFlushBody.cpp">
+ RelativePath="qpid\framing\FieldValue.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageProperties.cpp">
+ RelativePath="gen\qpid\framing\FileAckBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageRejectBody.cpp">
+ RelativePath="gen\qpid\framing\FileCancelBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageReleaseBody.cpp">
+ RelativePath="gen\qpid\framing\FileConsumeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageResumeBody.cpp">
+ RelativePath="gen\qpid\framing\FileConsumeOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageResumeResult.cpp">
+ RelativePath="gen\qpid\framing\FileDeliverBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageSetFlowModeBody.cpp">
+ RelativePath="gen\qpid\framing\FileOpenBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageStopBody.cpp">
+ RelativePath="gen\qpid\framing\FileOpenOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageSubscribeBody.cpp">
+ RelativePath="gen\qpid\framing\FileProperties.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageTransferBody.cpp">
+ RelativePath="gen\qpid\framing\FilePublishBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MethodBodyDefaultVisitor.cpp">
+ RelativePath="gen\qpid\framing\FileQosBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MethodBodyFactory.cpp">
+ RelativePath="gen\qpid\framing\FileQosOkBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueDeclareBody.cpp">
+ RelativePath="gen\qpid\framing\FileRejectBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueDeleteBody.cpp">
+ RelativePath="gen\qpid\framing\FileReturnBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueuePurgeBody.cpp">
+ RelativePath="gen\qpid\framing\FileStageBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueQueryBody.cpp">
+ RelativePath="qpid\sys\windows\FileSysDir.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueQueryResult.cpp">
+ RelativePath="gen\qpid\framing\FragmentProperties.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\reply_exceptions.cpp">
+ RelativePath="qpid\framing\FrameDecoder.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ReplyTo.cpp">
+ RelativePath="qpid\framing\FrameSet.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ServerInvoker.cpp">
+ RelativePath="gen\qpid\framing\Header.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionAttachBody.cpp">
+ RelativePath="qpid\sys\windows\IocpPoller.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionAttachedBody.cpp">
+ RelativePath="qpid\sys\windows\IOHandle.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionCommandPointBody.cpp">
+ RelativePath="qpid\sys\LatencyMetric.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionCompletedBody.cpp">
+ RelativePath="qpid\sys\windows\LockFile.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionConfirmedBody.cpp">
+ RelativePath="qpid\log\Logger.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionDetachBody.cpp">
+ RelativePath="qpid\management\Manageable.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionDetachedBody.cpp">
+ RelativePath="qpid\management\ManagementObject.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionExpectedBody.cpp">
+ RelativePath="gen\qpid\framing\MessageAcceptBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionFlushBody.cpp">
+ RelativePath="gen\qpid\framing\MessageAcquireBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionGapBody.cpp">
+ RelativePath="gen\qpid\framing\MessageAcquireResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionKnownCompletedBody.cpp">
+ RelativePath="gen\qpid\framing\MessageCancelBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionRequestTimeoutBody.cpp">
+ RelativePath="gen\qpid\framing\MessageFlowBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionTimeoutBody.cpp">
+ RelativePath="gen\qpid\framing\MessageFlushBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamCancelBody.cpp">
+ RelativePath="gen\qpid\framing\MessageProperties.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamConsumeBody.cpp">
+ RelativePath="gen\qpid\framing\MessageRejectBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamConsumeOkBody.cpp">
+ RelativePath="gen\qpid\framing\MessageReleaseBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamDeliverBody.cpp">
+ RelativePath="gen\qpid\framing\MessageResumeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamProperties.cpp">
+ RelativePath="gen\qpid\framing\MessageResumeResult.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamPublishBody.cpp">
+ RelativePath="gen\qpid\framing\MessageSetFlowModeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamQosBody.cpp">
+ RelativePath="gen\qpid\framing\MessageStopBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamQosOkBody.cpp">
+ RelativePath="gen\qpid\framing\MessageSubscribeBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamReturnBody.cpp">
+ RelativePath="gen\qpid\framing\MessageTransferBody.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxCommitBody.cpp">
+ RelativePath="gen\qpid\framing\MethodBodyDefaultVisitor.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxRollbackBody.cpp">
+ RelativePath="gen\qpid\framing\MethodBodyFactory.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxSelectBody.cpp">
+ RelativePath="qpid\Modules.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TypeCode.cpp">
+ RelativePath="qpid\Options.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
</File>
<File
- RelativePath="gen\qpid\framing\XaResult.cpp">
+ RelativePath="qpid\log\Options.cpp"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\Xid.cpp">
+ RelativePath="qpid\log\OstreamOutput.cpp"
+ >
</File>
<File
- RelativePath="qpid\Address.cpp">
+ RelativePath="qpid\Plugin.cpp"
+ >
</File>
<File
- RelativePath="qpid\amqp_0_10\SessionHandler.cpp">
+ RelativePath="qpid\pointer_to_other.h"
+ >
</File>
<File
- RelativePath="qpid\amqp_0_10\SessionHandler.h">
+ RelativePath="qpid\sys\windows\PollableCondition.cpp"
+ >
</File>
<File
- RelativePath="qpid\assert.cpp">
+ RelativePath="qpid\framing\ProtocolInitiation.cpp"
+ >
</File>
<File
- RelativePath="qpid\assert.h">
+ RelativePath="qpid\framing\ProtocolVersion.cpp"
+ >
</File>
<File
- RelativePath="qpid\DataDir.cpp">
+ RelativePath="qpid\framing\Proxy.cpp"
+ >
</File>
<File
- RelativePath="qpid\Exception.cpp">
+ RelativePath="gen\qpid\framing\QueueDeclareBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AccumulatedAck.cpp">
+ RelativePath="gen\qpid\framing\QueueDeleteBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQBody.cpp">
+ RelativePath="gen\qpid\framing\QueuePurgeBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQContentBody.cpp">
+ RelativePath="gen\qpid\framing\QueueQueryBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQFrame.cpp">
+ RelativePath="gen\qpid\framing\QueueQueryResult.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQHeaderBody.cpp">
+ RelativePath="qpid\RefCountedBuffer.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQHeartbeatBody.cpp">
+ RelativePath="qpid\RefCountedBuffer.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQMethodBody.cpp">
+ RelativePath="gen\qpid\framing\reply_exceptions.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQP_HighestVersion.h">
+ RelativePath="gen\qpid\framing\ReplyTo.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\Array.cpp">
+ RelativePath="qpid\sys\Runnable.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\BodyHandler.cpp">
+ RelativePath="qpid\log\Selector.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\Buffer.cpp">
+ RelativePath="qpid\framing\SendContent.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\Endian.cpp">
+ RelativePath="qpid\framing\SequenceNumber.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\FieldTable.cpp">
+ RelativePath="qpid\framing\SequenceNumberSet.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\FieldValue.cpp">
+ RelativePath="qpid\framing\SequenceSet.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameDecoder.cpp">
+ RelativePath="qpid\Serializer.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameSet.cpp">
+ RelativePath="gen\qpid\framing\ServerInvoker.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\ProtocolInitiation.cpp">
+ RelativePath="gen\qpid\framing\SessionAttachBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\ProtocolVersion.cpp">
+ RelativePath="gen\qpid\framing\SessionAttachedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\Proxy.cpp">
+ RelativePath="gen\qpid\framing\SessionCommandPointBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\SendContent.cpp">
+ RelativePath="gen\qpid\framing\SessionCompletedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceNumber.cpp">
+ RelativePath="gen\qpid\framing\SessionConfirmedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceNumberSet.cpp">
+ RelativePath="gen\qpid\framing\SessionDetachBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceSet.cpp">
+ RelativePath="gen\qpid\framing\SessionDetachedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\TransferContent.cpp">
+ RelativePath="gen\qpid\framing\SessionExpectedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\framing\Uuid.cpp">
+ RelativePath="gen\qpid\framing\SessionFlushBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\log\Logger.cpp">
+ RelativePath="gen\qpid\framing\SessionGapBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\log\Options.cpp">
+ RelativePath="qpid\amqp_0_10\SessionHandler.cpp"
+ >
</File>
<File
- RelativePath="qpid\log\OstreamOutput.cpp">
+ RelativePath="qpid\amqp_0_10\SessionHandler.h"
+ >
</File>
<File
- RelativePath="qpid\log\Selector.cpp">
+ RelativePath="qpid\SessionId.cpp"
+ >
</File>
<File
- RelativePath="qpid\log\Statement.cpp">
+ RelativePath="gen\qpid\framing\SessionKnownCompletedBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\log\windows\SinkOptions.cpp">
+ RelativePath="gen\qpid\framing\SessionRequestTimeoutBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\management\Manageable.cpp">
+ RelativePath="qpid\SessionState.cpp"
+ >
</File>
<File
- RelativePath="qpid\management\ManagementObject.cpp">
+ RelativePath="qpid\SessionState.h"
+ >
</File>
<File
- RelativePath="qpid\Modules.cpp">
+ RelativePath="gen\qpid\framing\SessionTimeoutBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\Options.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
+ RelativePath="qpid\sys\windows\Shlib.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
</File>
<File
- RelativePath="qpid\Plugin.cpp">
+ RelativePath="qpid\sys\Shlib.cpp"
+ >
</File>
<File
- RelativePath="qpid\pointer_to_other.h">
+ RelativePath="qpid\log\windows\SinkOptions.cpp"
+ >
</File>
<File
- RelativePath="qpid\RefCountedBuffer.cpp">
+ RelativePath="qpid\sys\windows\Socket.cpp"
+ >
</File>
<File
- RelativePath="qpid\RefCountedBuffer.h">
+ RelativePath="qpid\log\Statement.cpp"
+ >
</File>
<File
- RelativePath="qpid\Serializer.h">
+ RelativePath="gen\qpid\framing\StreamCancelBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\SessionId.cpp">
+ RelativePath="gen\qpid\framing\StreamConsumeBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\SessionState.cpp">
+ RelativePath="gen\qpid\framing\StreamConsumeOkBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\SessionState.h">
+ RelativePath="gen\qpid\framing\StreamDeliverBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\StringUtils.cpp">
+ RelativePath="gen\qpid\framing\StreamProperties.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\AggregateOutput.cpp">
+ RelativePath="gen\qpid\framing\StreamPublishBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\AsynchIOHandler.cpp">
+ RelativePath="gen\qpid\framing\StreamQosBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\Dispatcher.cpp">
+ RelativePath="gen\qpid\framing\StreamQosOkBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\LatencyMetric.cpp">
+ RelativePath="gen\qpid\framing\StreamReturnBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\Runnable.cpp">
+ RelativePath="qpid\sys\windows\StrError.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\Shlib.cpp">
+ RelativePath="qpid\StringUtils.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\Timer.cpp">
+ RelativePath="qpid\sys\windows\SystemInfo.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\AsynchIO.cpp">
+ RelativePath="qpid\sys\windows\Thread.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\FileSysDir.cpp">
+ RelativePath="qpid\sys\windows\Time.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\IocpPoller.cpp">
+ RelativePath="qpid\sys\Timer.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\IOHandle.cpp">
+ RelativePath="qpid\framing\TransferContent.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\LockFile.cpp">
+ RelativePath="gen\qpid\framing\TxCommitBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Shlib.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
+ RelativePath="gen\qpid\framing\TxRollbackBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Socket.cpp">
+ RelativePath="gen\qpid\framing\TxSelectBody.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\StrError.cpp">
+ RelativePath="gen\qpid\framing\TypeCode.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\SystemInfo.cpp">
+ RelativePath="qpid\Url.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Thread.cpp">
+ RelativePath="qpid\sys\windows\uuid.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)\$(InputName)2.obj"
+ />
+ </FileConfiguration>
</File>
<File
- RelativePath="qpid\sys\windows\Time.cpp">
+ RelativePath="qpid\framing\Uuid.cpp"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\uuid.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)\$(InputName)2.obj"/>
- </FileConfiguration>
+ RelativePath="gen\qpid\framing\XaResult.cpp"
+ >
</File>
<File
- RelativePath="qpid\Url.cpp">
+ RelativePath="gen\qpid\framing\Xid.cpp"
+ >
</File>
</Filter>
<Filter
Name="Header Files"
- Filter="h;hpp;hxx;hh">
+ Filter="h;hpp;hxx;hh"
+ >
<File
- RelativePath="gen\qpid\framing\all_method_bodies.h">
+ RelativePath="qpid\framing\AccumulatedAck.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AllInvoker.h">
+ RelativePath="qpid\Address.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_AllOperations.h">
+ RelativePath="qpid\sys\AggregateOutput.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_AllProxy.h">
+ RelativePath="gen\qpid\framing\all_method_bodies.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ClientOperations.h">
+ RelativePath="gen\qpid\framing\AllInvoker.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ClientProxy.h">
+ RelativePath="qpid\framing\AMQBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ServerOperations.h">
+ RelativePath="qpid\framing\AMQCommandControlBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\AMQP_ServerProxy.h">
+ RelativePath="qpid\framing\AMQContentBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\amqp_structs.h">
+ RelativePath="qpid\framing\AMQDataBlock.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClientInvoker.h">
+ RelativePath="qpid\framing\AMQFrame.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConfigChangeBody.h">
+ RelativePath="qpid\framing\AMQHeaderBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionAccumulatedAckBody.h">
+ RelativePath="qpid\framing\AMQHeartbeatBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionConsumerStateBody.h">
+ RelativePath="qpid\framing\AMQMethodBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliverCloseBody.h">
+ RelativePath="gen\qpid\framing\AMQP_AllOperations.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliverDoOutputBody.h">
+ RelativePath="gen\qpid\framing\AMQP_AllProxy.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionDeliveryRecordBody.h">
+ RelativePath="gen\qpid\framing\AMQP_ClientOperations.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionExchangeBody.h">
+ RelativePath="gen\qpid\framing\AMQP_ClientProxy.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionMembershipBody.h">
+ RelativePath="qpid\framing\amqp_framing.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionQueueBody.h">
+ RelativePath="qpid\framing\AMQP_HighestVersion.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionQueuePositionBody.h">
+ RelativePath="gen\qpid\framing\AMQP_ServerOperations.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionSessionStateBody.h">
+ RelativePath="gen\qpid\framing\AMQP_ServerProxy.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionShadowReadyBody.h">
+ RelativePath="gen\qpid\framing\amqp_structs.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxAcceptBody.h">
+ RelativePath="qpid\framing\amqp_types.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxDequeueBody.h">
+ RelativePath="qpid\framing\amqp_types_full.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxEndBody.h">
+ RelativePath="qpid\amqp_0_10\apply.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxEnqueueBody.h">
+ RelativePath="qpid\framing\Array.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxPublishBody.h">
+ RelativePath="qpid\assert.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterConnectionTxStartBody.h">
+ RelativePath="qpid\sys\AsynchIO.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterMessageExpiredBody.h">
+ RelativePath="qpid\sys\AsynchIOHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterReadyBody.h">
+ RelativePath="qpid\sys\windows\AsynchIoResult.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterShutdownBody.h">
+ RelativePath="qpid\sys\AtomicCount.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterUpdateOfferBody.h">
+ RelativePath="qpid\sys\AtomicValue.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ClusterUpdateRequestBody.h">
+ RelativePath="qpid\sys\BlockingQueue.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionCloseBody.h">
+ RelativePath="qpid\framing\BodyFactory.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionCloseOkBody.h">
+ RelativePath="qpid\framing\BodyHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionHeartbeatBody.h">
+ RelativePath="qpid\framing\Buffer.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionOpenBody.h">
+ RelativePath="qpid\framing\ChannelHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionOpenOkBody.h">
+ RelativePath="qpid\sys\windows\check.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionRedirectBody.h">
+ RelativePath="gen\qpid\framing\ClientInvoker.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionSecureBody.h">
+ RelativePath="gen\qpid\framing\ClusterConfigChangeBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionSecureOkBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionAccumulatedAckBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionStartBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionConsumerStateBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionStartOkBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliverCloseBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionTuneBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliverDoOutputBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ConnectionTuneOkBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionDeliveryRecordBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\constants.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionExchangeBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DeliveryProperties.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionMembershipBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxCommitBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionQueueBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxEndBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionQueuePositionBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxForgetBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionSessionStateBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxGetTimeoutBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionShadowReadyBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxGetTimeoutResult.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxAcceptBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxPrepareBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxDequeueBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRecoverBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxEndBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRecoverResult.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxEnqueueBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxRollbackBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxPublishBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxSelectBody.h">
+ RelativePath="gen\qpid\framing\ClusterConnectionTxStartBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxSetTimeoutBody.h">
+ RelativePath="gen\qpid\framing\ClusterMessageExpiredBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\DtxStartBody.h">
+ RelativePath="gen\qpid\framing\ClusterReadyBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\enum.h">
+ RelativePath="gen\qpid\framing\ClusterShutdownBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBindBody.h">
+ RelativePath="gen\qpid\framing\ClusterUpdateOfferBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBoundBody.h">
+ RelativePath="gen\qpid\framing\ClusterUpdateRequestBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeBoundResult.h">
+ RelativePath="qpid\sys\Codec.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeDeclareBody.h">
+ RelativePath="qpid\sys\windows\Condition.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeDeleteBody.h">
+ RelativePath="qpid\sys\Condition.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeQueryBody.h">
+ RelativePath="gen\qpid\framing\ConnectionCloseBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeQueryResult.h">
+ RelativePath="gen\qpid\framing\ConnectionCloseOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExchangeUnbindBody.h">
+ RelativePath="qpid\sys\ConnectionCodec.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionExceptionBody.h">
+ RelativePath="gen\qpid\framing\ConnectionHeartbeatBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionResultBody.h">
+ RelativePath="qpid\sys\ConnectionInputHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ExecutionSyncBody.h">
+ RelativePath="qpid\sys\ConnectionInputHandlerFactory.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileAckBody.h">
+ RelativePath="gen\qpid\framing\ConnectionOpenBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileCancelBody.h">
+ RelativePath="gen\qpid\framing\ConnectionOpenOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileConsumeBody.h">
+ RelativePath="qpid\sys\ConnectionOutputHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileConsumeOkBody.h">
+ RelativePath="qpid\sys\ConnectionOutputHandlerPtr.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileDeliverBody.h">
+ RelativePath="gen\qpid\framing\ConnectionRedirectBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileOpenBody.h">
+ RelativePath="gen\qpid\framing\ConnectionSecureBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileOpenOkBody.h">
+ RelativePath="gen\qpid\framing\ConnectionSecureOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileProperties.h">
+ RelativePath="gen\qpid\framing\ConnectionStartBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FilePublishBody.h">
+ RelativePath="gen\qpid\framing\ConnectionStartOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileQosBody.h">
+ RelativePath="gen\qpid\framing\ConnectionTuneBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileQosOkBody.h">
+ RelativePath="gen\qpid\framing\ConnectionTuneOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileRejectBody.h">
+ RelativePath="gen\qpid\framing\constants.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileReturnBody.h">
+ RelativePath="qpid\sys\CopyOnWriteArray.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FileStageBody.h">
+ RelativePath="qpid\DataDir.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\FragmentProperties.h">
+ RelativePath="qpid\sys\DeletionManager.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\frame_body_lists.h">
+ RelativePath="gen\qpid\framing\DeliveryProperties.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\Header.h">
+ RelativePath="qpid\sys\Dispatcher.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcceptBody.h">
+ RelativePath="gen\qpid\framing\DtxCommitBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcquireBody.h">
+ RelativePath="gen\qpid\framing\DtxEndBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageAcquireResult.h">
+ RelativePath="gen\qpid\framing\DtxForgetBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageCancelBody.h">
+ RelativePath="gen\qpid\framing\DtxGetTimeoutBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageFlowBody.h">
+ RelativePath="gen\qpid\framing\DtxGetTimeoutResult.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageFlushBody.h">
+ RelativePath="gen\qpid\framing\DtxPrepareBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageProperties.h">
+ RelativePath="gen\qpid\framing\DtxRecoverBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageRejectBody.h">
+ RelativePath="gen\qpid\framing\DtxRecoverResult.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageReleaseBody.h">
+ RelativePath="gen\qpid\framing\DtxRollbackBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageResumeBody.h">
+ RelativePath="gen\qpid\framing\DtxSelectBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageResumeResult.h">
+ RelativePath="gen\qpid\framing\DtxSetTimeoutBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageSetFlowModeBody.h">
+ RelativePath="gen\qpid\framing\DtxStartBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageStopBody.h">
+ RelativePath="qpid\framing\Endian.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageSubscribeBody.h">
+ RelativePath="gen\qpid\framing\enum.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MessageTransferBody.h">
+ RelativePath="qpid\amqp_0_10\Exception.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MethodBodyConstVisitor.h">
+ RelativePath="qpid\Exception.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\MethodBodyDefaultVisitor.h">
+ RelativePath="qpid\sys\ExceptionHolder.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueDeclareBody.h">
+ RelativePath="gen\qpid\framing\ExchangeBindBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueDeleteBody.h">
+ RelativePath="gen\qpid\framing\ExchangeBoundBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueuePurgeBody.h">
+ RelativePath="gen\qpid\framing\ExchangeBoundResult.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueQueryBody.h">
+ RelativePath="gen\qpid\framing\ExchangeDeclareBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\QueueQueryResult.h">
+ RelativePath="gen\qpid\framing\ExchangeDeleteBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\reply_exceptions.h">
+ RelativePath="gen\qpid\framing\ExchangeQueryBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ReplyTo.h">
+ RelativePath="gen\qpid\framing\ExchangeQueryResult.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\ServerInvoker.h">
+ RelativePath="gen\qpid\framing\ExchangeUnbindBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionAttachBody.h">
+ RelativePath="gen\qpid\framing\ExecutionExceptionBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionAttachedBody.h">
+ RelativePath="gen\qpid\framing\ExecutionResultBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionCommandPointBody.h">
+ RelativePath="gen\qpid\framing\ExecutionSyncBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionCompletedBody.h">
+ RelativePath="qpid\framing\FieldTable.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionConfirmedBody.h">
+ RelativePath="qpid\framing\FieldValue.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionDetachBody.h">
+ RelativePath="gen\qpid\framing\FileAckBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionDetachedBody.h">
+ RelativePath="gen\qpid\framing\FileCancelBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionExpectedBody.h">
+ RelativePath="gen\qpid\framing\FileConsumeBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionFlushBody.h">
+ RelativePath="gen\qpid\framing\FileConsumeOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionGapBody.h">
+ RelativePath="gen\qpid\framing\FileDeliverBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionKnownCompletedBody.h">
+ RelativePath="gen\qpid\framing\FileOpenBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionRequestTimeoutBody.h">
+ RelativePath="gen\qpid\framing\FileOpenOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\SessionTimeoutBody.h">
+ RelativePath="gen\qpid\framing\FileProperties.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamCancelBody.h">
+ RelativePath="gen\qpid\framing\FilePublishBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamConsumeBody.h">
+ RelativePath="gen\qpid\framing\FileQosBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamConsumeOkBody.h">
+ RelativePath="gen\qpid\framing\FileQosOkBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamDeliverBody.h">
+ RelativePath="gen\qpid\framing\FileRejectBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamProperties.h">
+ RelativePath="gen\qpid\framing\FileReturnBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamPublishBody.h">
+ RelativePath="gen\qpid\framing\FileStageBody.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamQosBody.h">
+ RelativePath="qpid\sys\FileSysDir.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamQosOkBody.h">
+ RelativePath="gen\qpid\framing\FragmentProperties.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\StreamReturnBody.h">
+ RelativePath="gen\qpid\framing\frame_body_lists.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxCommitBody.h">
+ RelativePath="qpid\framing\frame_functors.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxRollbackBody.h">
+ RelativePath="qpid\framing\FrameDecoder.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TxSelectBody.h">
+ RelativePath="qpid\framing\FrameDefaultVisitor.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\TypeCode.h">
+ RelativePath="qpid\framing\FrameHandler.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\XaResult.h">
+ RelativePath="qpid\framing\FrameSet.h"
+ >
</File>
<File
- RelativePath="gen\qpid\framing\Xid.h">
+ RelativePath="qpid\framing\Handler.h"
+ >
</File>
<File
- RelativePath="qpid\Address.h">
+ RelativePath="gen\qpid\framing\Header.h"
+ >
</File>
<File
- RelativePath="qpid\amqp_0_10\apply.h">
+ RelativePath="qpid\framing\HeaderProperties.h"
+ >
</File>
<File
- RelativePath="qpid\amqp_0_10\Exception.h">
+ RelativePath="qpid\framing\variant.h qpid\log\Helpers.h"
+ >
</File>
<File
- RelativePath="qpid\amqp_0_10\SessionHandler.h">
+ RelativePath="qpid\framing\InitiationHandler.h"
+ >
</File>
<File
- RelativePath="qpid\assert.h">
+ RelativePath="qpid\InlineAllocator.h"
+ >
</File>
<File
- RelativePath="qpid\DataDir.h">
+ RelativePath="qpid\InlineVector.h"
+ >
</File>
<File
- RelativePath="qpid\Exception.h">
+ RelativePath="qpid\framing\InputHandler.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AccumulatedAck.h">
+ RelativePath="qpid\sys\windows\IntegerTypes.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQBody.h">
+ RelativePath="qpid\sys\IntegerTypes.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQCommandControlBody.h">
+ RelativePath="qpid\framing\Invoker.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQContentBody.h">
+ RelativePath="qpid\sys\IOHandle.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQDataBlock.h">
+ RelativePath="qpid\sys\windows\IoHandlePrivate.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQFrame.h">
+ RelativePath="qpid\sys\LatencyMetric.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQHeaderBody.h">
+ RelativePath="qpid\sys\LockFile.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQHeartbeatBody.h">
+ RelativePath="qpid\sys\LockPtr.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQMethodBody.h">
+ RelativePath="qpid\log\Logger.h"
+ >
</File>
<File
- RelativePath="qpid\framing\amqp_framing.h">
+ RelativePath="qpid\management\Manageable.h"
+ >
</File>
<File
- RelativePath="qpid\framing\AMQP_HighestVersion.h">
+ RelativePath="qpid\management\ManagementObject.h"
+ >
</File>
<File
- RelativePath="qpid\framing\amqp_types.h">
+ RelativePath="qpid\memory.h"
+ >
</File>
<File
- RelativePath="qpid\framing\amqp_types_full.h">
+ RelativePath="gen\qpid\framing\MessageAcceptBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Array.h">
+ RelativePath="gen\qpid\framing\MessageAcquireBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\BodyFactory.h">
+ RelativePath="gen\qpid\framing\MessageAcquireResult.h"
+ >
</File>
<File
- RelativePath="qpid\framing\BodyHandler.h">
+ RelativePath="gen\qpid\framing\MessageCancelBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Buffer.h">
+ RelativePath="gen\qpid\framing\MessageFlowBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\ChannelHandler.h">
+ RelativePath="gen\qpid\framing\MessageFlushBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Endian.h">
+ RelativePath="gen\qpid\framing\MessageProperties.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FieldTable.h">
+ RelativePath="gen\qpid\framing\MessageRejectBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FieldValue.h">
+ RelativePath="gen\qpid\framing\MessageReleaseBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\frame_functors.h">
+ RelativePath="gen\qpid\framing\MessageResumeBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameDecoder.h">
+ RelativePath="gen\qpid\framing\MessageResumeResult.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameDefaultVisitor.h">
+ RelativePath="gen\qpid\framing\MessageSetFlowModeBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameHandler.h">
+ RelativePath="gen\qpid\framing\MessageStopBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\FrameSet.h">
+ RelativePath="gen\qpid\framing\MessageSubscribeBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Handler.h">
+ RelativePath="gen\qpid\framing\MessageTransferBody.h"
+ >
</File>
<File
- RelativePath="qpid\framing\HeaderProperties.h">
+ RelativePath="gen\qpid\framing\MethodBodyConstVisitor.h"
+ >
</File>
<File
- RelativePath="qpid\framing\InitiationHandler.h">
+ RelativePath="gen\qpid\framing\MethodBodyDefaultVisitor.h"
+ >
</File>
<File
- RelativePath="qpid\framing\InputHandler.h">
+ RelativePath="qpid\framing\MethodBodyFactory.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Invoker.h">
+ RelativePath="qpid\framing\MethodContent.h"
+ >
</File>
<File
- RelativePath="qpid\framing\MethodBodyFactory.h">
+ RelativePath="qpid\framing\ModelMethod.h"
+ >
</File>
<File
- RelativePath="qpid\framing\MethodContent.h">
+ RelativePath="qpid\Modules.h"
+ >
</File>
<File
- RelativePath="qpid\framing\ModelMethod.h">
+ RelativePath="qpid\sys\Monitor.h"
+ >
</File>
<File
- RelativePath="qpid\framing\OutputHandler.h">
+ RelativePath="qpid\Msg.h"
+ >
</File>
<File
- RelativePath="qpid\framing\ProtocolInitiation.h">
+ RelativePath="qpid\sys\windows\Mutex.h"
+ >
</File>
<File
- RelativePath="qpid\framing\ProtocolVersion.h">
+ RelativePath="qpid\sys\Mutex.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Proxy.h">
+ RelativePath="qpid\Options.h"
+ >
</File>
<File
- RelativePath="qpid\framing\SendContent.h">
+ RelativePath="qpid\log\Options.h"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceNumber.h">
+ RelativePath="qpid\log\OstreamOutput.h"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceNumberSet.h">
+ RelativePath="qpid\sys\OutputControl.h"
+ >
</File>
<File
- RelativePath="qpid\framing\SequenceSet.h">
+ RelativePath="qpid\framing\OutputHandler.h"
+ >
</File>
<File
- RelativePath="qpid\framing\StructHelper.h">
+ RelativePath="qpid\sys\OutputTask.h"
+ >
</File>
<File
- RelativePath="qpid\framing\TransferContent.h">
+ RelativePath="qpid\Plugin.h"
+ >
</File>
<File
- RelativePath="qpid\framing\TypeFilter.h">
+ RelativePath="qpid\pointer_to_other.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Uuid.h">
+ RelativePath="qpid\sys\PollableCondition.h"
+ >
</File>
<File
- RelativePath="qpid\framing\variant.h qpid\log\Helpers.h">
+ RelativePath="qpid\sys\PollableQueue.h"
+ >
</File>
<File
- RelativePath="qpid\framing\Visitor.h">
+ RelativePath="qpid\sys\Poller.h"
+ >
</File>
<File
- RelativePath="qpid\InlineAllocator.h">
+ RelativePath="qpid\sys\ProtocolFactory.h"
+ >
</File>
<File
- RelativePath="qpid\InlineVector.h">
+ RelativePath="qpid\framing\ProtocolInitiation.h"
+ >
</File>
<File
- RelativePath="qpid\log\Logger.h">
+ RelativePath="qpid\framing\ProtocolVersion.h"
+ >
</File>
<File
- RelativePath="qpid\log\Options.h">
+ RelativePath="qpid\framing\Proxy.h"
+ >
</File>
<File
- RelativePath="qpid\log\OstreamOutput.h">
+ RelativePath="qpid\ptr_map.h"
+ >
</File>
<File
- RelativePath="qpid\log\Selector.h">
+ RelativePath="gen\qpid\framing\QueueDeclareBody.h"
+ >
</File>
<File
- RelativePath="qpid\log\SinkOptions.h">
+ RelativePath="gen\qpid\framing\QueueDeleteBody.h"
+ >
</File>
<File
- RelativePath="qpid\log\Statement.h">
+ RelativePath="gen\qpid\framing\QueuePurgeBody.h"
+ >
</File>
<File
- RelativePath="qpid\log\windows\SinkOptions.h">
+ RelativePath="gen\qpid\framing\QueueQueryBody.h"
+ >
</File>
<File
- RelativePath="qpid\management\Manageable.h">
+ RelativePath="gen\qpid\framing\QueueQueryResult.h"
+ >
</File>
<File
- RelativePath="qpid\management\ManagementObject.h">
+ RelativePath="qpid\RangeSet.h"
+ >
</File>
<File
- RelativePath="qpid\memory.h">
+ RelativePath="qpid\RefCounted.h"
+ >
</File>
<File
- RelativePath="qpid\Modules.h">
+ RelativePath="qpid\RefCountedBuffer.h"
+ >
</File>
<File
- RelativePath="qpid\Msg.h">
+ RelativePath="gen\qpid\framing\reply_exceptions.h"
+ >
</File>
<File
- RelativePath="qpid\Options.h">
+ RelativePath="gen\qpid\framing\ReplyTo.h"
+ >
</File>
<File
- RelativePath="qpid\Plugin.h">
+ RelativePath="qpid\sys\Runnable.h"
+ >
</File>
<File
- RelativePath="qpid\pointer_to_other.h">
+ RelativePath="qpid\sys\ScopedIncrement.h"
+ >
</File>
<File
- RelativePath="qpid\ptr_map.h">
+ RelativePath="qpid\sys\SecurityLayer.h"
+ >
</File>
<File
- RelativePath="qpid\RangeSet.h">
+ RelativePath="qpid\log\Selector.h"
+ >
</File>
<File
- RelativePath="qpid\RefCounted.h">
+ RelativePath="qpid\sys\Semaphore.h"
+ >
</File>
<File
- RelativePath="qpid\RefCountedBuffer.h">
+ RelativePath="qpid\framing\SendContent.h"
+ >
</File>
<File
- RelativePath="qpid\Serializer.h">
+ RelativePath="qpid\framing\SequenceNumber.h"
+ >
</File>
<File
- RelativePath="qpid\SessionId.h">
+ RelativePath="qpid\framing\SequenceNumberSet.h"
+ >
</File>
<File
- RelativePath="qpid\SessionState.h">
+ RelativePath="qpid\framing\SequenceSet.h"
+ >
</File>
<File
- RelativePath="qpid\shared_ptr.h">
+ RelativePath="qpid\Serializer.h"
+ >
</File>
<File
- RelativePath="qpid\SharedObject.h">
+ RelativePath="gen\qpid\framing\ServerInvoker.h"
+ >
</File>
<File
- RelativePath="qpid\StringUtils.h">
+ RelativePath="gen\qpid\framing\SessionAttachBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\AggregateOutput.h">
+ RelativePath="gen\qpid\framing\SessionAttachedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\AsynchIO.h">
+ RelativePath="gen\qpid\framing\SessionCommandPointBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\AsynchIOHandler.h">
+ RelativePath="gen\qpid\framing\SessionCompletedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\AtomicCount.h">
+ RelativePath="gen\qpid\framing\SessionConfirmedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\AtomicValue.h">
+ RelativePath="gen\qpid\framing\SessionDetachBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\BlockingQueue.h">
+ RelativePath="gen\qpid\framing\SessionDetachedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Codec.h">
+ RelativePath="gen\qpid\framing\SessionExpectedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Condition.h">
+ RelativePath="gen\qpid\framing\SessionFlushBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ConnectionCodec.h">
+ RelativePath="gen\qpid\framing\SessionGapBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ConnectionInputHandler.h">
+ RelativePath="qpid\amqp_0_10\SessionHandler.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ConnectionInputHandlerFactory.h">
+ RelativePath="qpid\SessionId.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ConnectionOutputHandler.h">
+ RelativePath="gen\qpid\framing\SessionKnownCompletedBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ConnectionOutputHandlerPtr.h">
+ RelativePath="gen\qpid\framing\SessionRequestTimeoutBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\CopyOnWriteArray.h">
+ RelativePath="qpid\SessionState.h"
+ >
</File>
<File
- RelativePath="qpid\sys\DeletionManager.h">
+ RelativePath="gen\qpid\framing\SessionTimeoutBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Dispatcher.h">
+ RelativePath="qpid\shared_ptr.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ExceptionHolder.h">
+ RelativePath="qpid\SharedObject.h"
+ >
</File>
<File
- RelativePath="qpid\sys\FileSysDir.h">
+ RelativePath="qpid\sys\Shlib.h"
+ >
</File>
<File
- RelativePath="qpid\sys\IntegerTypes.h">
+ RelativePath="qpid\sys\ShutdownHandler.h"
+ >
</File>
<File
- RelativePath="qpid\sys\IOHandle.h">
+ RelativePath="qpid\log\windows\SinkOptions.h"
+ >
</File>
<File
- RelativePath="qpid\sys\LatencyMetric.h">
+ RelativePath="qpid\log\SinkOptions.h"
+ >
</File>
<File
- RelativePath="qpid\sys\LockFile.h">
+ RelativePath="qpid\sys\Socket.h"
+ >
</File>
<File
- RelativePath="qpid\sys\LockPtr.h">
+ RelativePath="qpid\log\Statement.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Monitor.h">
+ RelativePath="qpid\sys\StateMonitor.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Mutex.h">
+ RelativePath="gen\qpid\framing\StreamCancelBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\OutputControl.h">
+ RelativePath="gen\qpid\framing\StreamConsumeBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\OutputTask.h">
+ RelativePath="gen\qpid\framing\StreamConsumeOkBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\PollableCondition.h">
+ RelativePath="gen\qpid\framing\StreamDeliverBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\PollableQueue.h">
+ RelativePath="gen\qpid\framing\StreamProperties.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Poller.h">
+ RelativePath="gen\qpid\framing\StreamPublishBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ProtocolFactory.h">
+ RelativePath="gen\qpid\framing\StreamQosBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Runnable.h">
+ RelativePath="gen\qpid\framing\StreamQosOkBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ScopedIncrement.h">
+ RelativePath="gen\qpid\framing\StreamReturnBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\SecurityLayer.h">
+ RelativePath="qpid\sys\StrError.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Semaphore.h">
+ RelativePath="qpid\StringUtils.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Shlib.h">
+ RelativePath="qpid\framing\StructHelper.h"
+ >
</File>
<File
- RelativePath="qpid\sys\ShutdownHandler.h">
+ RelativePath="qpid\sys\SystemInfo.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Socket.h">
+ RelativePath="qpid\sys\Thread.h"
+ >
</File>
<File
- RelativePath="qpid\sys\StateMonitor.h">
+ RelativePath="qpid\sys\windows\Time.h"
+ >
</File>
<File
- RelativePath="qpid\sys\StrError.h">
+ RelativePath="qpid\sys\Time.h"
+ >
</File>
<File
- RelativePath="qpid\sys\SystemInfo.h">
+ RelativePath="qpid\sys\TimeoutHandler.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Thread.h">
+ RelativePath="qpid\sys\Timer.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Time.h">
+ RelativePath="qpid\framing\TransferContent.h"
+ >
</File>
<File
- RelativePath="qpid\sys\TimeoutHandler.h">
+ RelativePath="gen\qpid\framing\TxCommitBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Timer.h">
+ RelativePath="gen\qpid\framing\TxRollbackBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\uuid.h">
+ RelativePath="gen\qpid\framing\TxSelectBody.h"
+ >
</File>
<File
- RelativePath="qpid\sys\Waitable.h">
+ RelativePath="gen\qpid\framing\TypeCode.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\AsynchIoResult.h">
+ RelativePath="qpid\framing\TypeFilter.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\check.h">
+ RelativePath="qpid\Url.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Condition.h">
+ RelativePath="qpid\framing\Uuid.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\IntegerTypes.h">
+ RelativePath="qpid\sys\windows\uuid.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\IoHandlePrivate.h">
+ RelativePath="qpid\sys\uuid.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Mutex.h">
+ RelativePath="qpid\Version.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\Time.h">
+ RelativePath="qpid\framing\Visitor.h"
+ >
</File>
<File
- RelativePath="qpid\sys\windows\uuid.h">
+ RelativePath="qpid\sys\Waitable.h"
+ >
</File>
<File
- RelativePath="qpid\Url.h">
+ RelativePath="gen\qpid\framing\XaResult.h"
+ >
</File>
<File
- RelativePath="qpid\Version.h">
+ RelativePath="gen\qpid\framing\Xid.h"
+ >
</File>
</Filter>
</Files>
diff --git a/cpp/src/qpid/sys/PollableCondition.h b/cpp/src/qpid/sys/PollableCondition.h index 56d38f90da..49e84e6cb0 100644 --- a/cpp/src/qpid/sys/PollableCondition.h +++ b/cpp/src/qpid/sys/PollableCondition.h @@ -22,7 +22,57 @@ * */ -// Currently only has a posix implementation, add #ifdefs for other platforms as needed. -#include "posix/PollableCondition.h" +#include "qpid/sys/Poller.h" +#include <boost/function.hpp> +#include <boost/shared_ptr.hpp> + + +namespace qpid { +namespace sys { + +class PollableConditionPrivate; + +class PollableCondition { +public: + typedef boost::function1<void, PollableCondition&> Callback; + + PollableCondition(const Callback& cb, + const boost::shared_ptr<sys::Poller>& poller); + + ~PollableCondition(); + + /** + * Set the condition. Triggers callback to Callback from Poller. + * When callback is made, condition is suspended. Call rearm() to + * resume reacting to the condition. + */ + void set(); + + /** + * Get the current state of the condition, then clear it. + * + * @return The state of the condition before it was cleared. + */ + bool clear(); + + /** + * Temporarily suspend the ability for the poller to react to the + * condition. It can be rearm()ed later. + */ + void disarm(); + + /** + * Reset the ability for the poller to react to the condition. + */ + void rearm(); + + private: + PollableConditionPrivate *impl; + + Callback callback; + boost::shared_ptr<sys::Poller> poller; +}; + +}} // namespace qpid::sys #endif /*!QPID_SYS_POLLABLECONDITION_H*/ diff --git a/cpp/src/qpid/sys/PollableQueue.h b/cpp/src/qpid/sys/PollableQueue.h index b5ff98c2c7..a23cc5137a 100644 --- a/cpp/src/qpid/sys/PollableQueue.h +++ b/cpp/src/qpid/sys/PollableQueue.h @@ -23,8 +23,6 @@ */ #include "qpid/sys/PollableCondition.h" -#include "qpid/sys/Dispatcher.h" -#include "qpid/sys/DispatchHandle.h" #include "qpid/sys/Monitor.h" #include "qpid/sys/Thread.h" #include <boost/function.hpp> @@ -38,9 +36,10 @@ namespace sys { class Poller; /** - * A queue that can be polled by sys::Poller. Any thread can push to - * the queue, on wakeup the poller thread processes all items on the - * queue by passing them to a callback in a batch. + * A queue whose item processing is dispatched by sys::Poller. + * Any thread can push to the queue; items pushed trigger an event the Poller + * recognizes. When a Poller I/O thread dispatches the event, a + * user-specified callback is invoked with all items on the queue. */ template <class T> class PollableQueue { @@ -50,12 +49,21 @@ class PollableQueue { /** * Callback to process a batch of items from the queue. - * @param values to process, any items remaining after call are put back on the queue. + * + * @param values Queue of values to process. Any items remaining + * on return from Callback are put back on the queue. */ typedef boost::function<void (Queue& values)> Callback; - /** When the queue is selected by the poller, values are passed to callback cb. */ - PollableQueue(const Callback& cb, const boost::shared_ptr<sys::Poller>& poller); + /** + * Constructor; sets necessary parameters. + * + * @param cb Callback that will be called to process items on the + * queue. Will be called from a Poller I/O thread. + * @param poller Poller to use for dispatching queue events. + */ + PollableQueue(const Callback& cb, + const boost::shared_ptr<sys::Poller>& poller); ~PollableQueue(); @@ -85,14 +93,12 @@ class PollableQueue { typedef sys::Monitor::ScopedLock ScopedLock; typedef sys::Monitor::ScopedUnlock ScopedUnlock; - void dispatch(sys::DispatchHandle&); + void dispatch(PollableCondition& cond); void process(); mutable sys::Monitor lock; Callback callback; - boost::shared_ptr<sys::Poller> poller; PollableCondition condition; - DispatchHandleRef handle; Queue queue, batch; Thread dispatcher; bool stopped; @@ -100,11 +106,10 @@ class PollableQueue { template <class T> PollableQueue<T>::PollableQueue( const Callback& cb, const boost::shared_ptr<sys::Poller>& p) - : callback(cb), poller(p), - handle(condition, boost::bind(&PollableQueue<T>::dispatch, this, _1), 0, 0), stopped(true) + : callback(cb), + condition(boost::bind(&PollableQueue<T>::dispatch, this, _1), p), + stopped(true) { - handle.startWatch(poller); - handle.unwatch(); } template <class T> void PollableQueue<T>::start() { @@ -112,11 +117,10 @@ template <class T> void PollableQueue<T>::start() { if (!stopped) return; stopped = false; if (!queue.empty()) condition.set(); - handle.rewatch(); + condition.rearm(); } template <class T> PollableQueue<T>::~PollableQueue() { - handle.stopWatch(); } template <class T> void PollableQueue<T>::push(const T& t) { @@ -125,15 +129,15 @@ template <class T> void PollableQueue<T>::push(const T& t) { queue.push_back(t); } -template <class T> void PollableQueue<T>::dispatch(sys::DispatchHandle& h) { +template <class T> void PollableQueue<T>::dispatch(PollableCondition& cond) { ScopedLock l(lock); assert(dispatcher.id() == 0); dispatcher = Thread::current(); process(); dispatcher = Thread(); - if (queue.empty()) condition.clear(); + if (queue.empty()) cond.clear(); if (stopped) lock.notifyAll(); - else h.rewatch(); + else cond.rearm(); } template <class T> void PollableQueue<T>::process() { @@ -159,7 +163,7 @@ template <class T> void PollableQueue<T>::shutdown() { template <class T> void PollableQueue<T>::stop() { ScopedLock l(lock); if (stopped) return; - handle.unwatch(); + condition.disarm(); stopped = true; // Avoid deadlock if stop is called from the dispatch thread while (dispatcher.id() && dispatcher.id() != Thread::current().id()) diff --git a/cpp/src/qpid/sys/posix/PollableCondition.cpp b/cpp/src/qpid/sys/posix/PollableCondition.cpp index 0c55fd3c0d..0991e5fd76 100644 --- a/cpp/src/qpid/sys/posix/PollableCondition.cpp +++ b/cpp/src/qpid/sys/posix/PollableCondition.cpp @@ -22,17 +22,46 @@ * */ -#include "PollableCondition.h" +#include "qpid/sys/PollableCondition.h" +#include "qpid/sys/DispatchHandle.h" +#include "qpid/sys/IOHandle.h" #include "qpid/sys/posix/PrivatePosix.h" #include "qpid/Exception.h" +#include <boost/bind.hpp> + #include <unistd.h> #include <fcntl.h> namespace qpid { namespace sys { -PollableCondition::PollableCondition() : IOHandle(new sys::IOHandlePrivate) { +class PollableConditionPrivate : public sys::IOHandle { + friend class PollableCondition; + +private: + PollableConditionPrivate(const sys::PollableCondition::Callback& cb, + sys::PollableCondition& parent, + const boost::shared_ptr<sys::Poller>& poller); + ~PollableConditionPrivate(); + + void dispatch(sys::DispatchHandle& h); + void rewatch(); + void unwatch(); + +private: + PollableCondition::Callback cb; + PollableCondition& parent; + boost::shared_ptr<sys::Poller> poller; + int writeFd; + std::auto_ptr<DispatchHandleRef> handle; +}; + +PollableConditionPrivate::PollableConditionPrivate(const sys::PollableCondition::Callback& cb, + sys::PollableCondition& parent, + const boost::shared_ptr<sys::Poller>& poller) + : IOHandle(new sys::IOHandlePrivate), cb(cb), parent(parent) +{ int fds[2]; if (::pipe(fds) == -1) throw ErrnoException(QPID_MSG("Can't create PollableCondition")); @@ -42,22 +71,71 @@ PollableCondition::PollableCondition() : IOHandle(new sys::IOHandlePrivate) { throw ErrnoException(QPID_MSG("Can't create PollableCondition")); if (::fcntl(writeFd, F_SETFL, O_NONBLOCK) == -1) throw ErrnoException(QPID_MSG("Can't create PollableCondition")); + handle.reset (new DispatchHandleRef(*this, + boost::bind(&sys::PollableConditionPrivate::dispatch, this, _1), + 0, 0)); + handle->startWatch(poller); + handle->unwatch(); +} + +PollableConditionPrivate::~PollableConditionPrivate() +{ + handle->stopWatch(); + close(writeFd); +} + +void PollableConditionPrivate::dispatch(sys::DispatchHandle& /*h*/) +{ + cb(parent); +} + +void PollableConditionPrivate::rewatch() +{ + handle->rewatch(); +} + +void PollableConditionPrivate::unwatch() +{ + handle->unwatch(); +} + + /* PollableCondition */ + +PollableCondition::PollableCondition(const Callback& cb, + const boost::shared_ptr<sys::Poller>& poller) + : impl(new PollableConditionPrivate(cb, *this, poller)) +{ +} + +PollableCondition::~PollableCondition() +{ + delete impl; +} + +void PollableCondition::set() { + static const char dummy=0; + ssize_t n = ::write(impl->writeFd, &dummy, 1); + if (n == -1 && errno != EAGAIN) + throw ErrnoException("Error setting PollableCondition"); } bool PollableCondition::clear() { char buf[256]; ssize_t n; bool wasSet = false; - while ((n = ::read(impl->fd, buf, sizeof(buf))) > 0) + while ((n = ::read(impl->impl->fd, buf, sizeof(buf))) > 0) wasSet = true; - if (n == -1 && errno != EAGAIN) throw ErrnoException(QPID_MSG("Error clearing PollableCondition")); + if (n == -1 && errno != EAGAIN) + throw ErrnoException(QPID_MSG("Error clearing PollableCondition")); return wasSet; } -void PollableCondition::set() { - static const char dummy=0; - ssize_t n = ::write(writeFd, &dummy, 1); - if (n == -1 && errno != EAGAIN) throw ErrnoException("Error setting PollableCondition"); +void PollableCondition::disarm() { + impl->unwatch(); +} + +void PollableCondition::rearm() { + impl->rewatch(); } @@ -71,22 +149,35 @@ void PollableCondition::set() { namespace qpid { namespace sys { -PollableCondition::PollableCondition() : IOHandle(new sys::IOHandlePrivate) { +PollableConditionPrivate::PollableConditionPrivate(const PollableCondition::Callback& cb, + sys::PollableCondition& parent, + const boost::shared_ptr<sys::Poller>& poller) + : cb(cb), parent(parent), poller(poller), + IOHandle(new sys::IOHandlePrivate) { impl->fd = ::eventfd(0, 0); if (impl->fd < 0) throw ErrnoException("conditionfd() failed"); } +void PollableCondition::set() { + static const uint64_t value=1; + ssize_t n = ::write(impl->impl->fd, + reinterpret_cast<const void*>(&value), 8); + if (n != 8) throw ErrnoException("write failed on conditionfd"); +} + bool PollableCondition::clear() { char buf[8]; - ssize_t n = ::read(impl->fd, buf, 8); + ssize_t n = ::read(impl->impl->fd, buf, 8); if (n != 8) throw ErrnoException("read failed on conditionfd"); return *reinterpret_cast<uint64_t*>(buf); } -void PollableCondition::set() { - static const uint64_t value=1; - ssize_t n = ::write(impl->fd, reinterpret_cast<const void*>(&value), 8); - if (n != 8) throw ErrnoException("write failed on conditionfd"); +void PollableCondition::disarm() { + // ???? +} + +void PollableCondition::rearm() { + // ???? } #endif diff --git a/cpp/src/qpid/sys/posix/PollableCondition.h b/cpp/src/qpid/sys/posix/PollableCondition.h deleted file mode 100644 index 4ec277b0ec..0000000000 --- a/cpp/src/qpid/sys/posix/PollableCondition.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef QPID_SYS_POSIX_POLLABLECONDITION_H -#define QPID_SYS_POSIX_POLLABLECONDITION_H - -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -#include "qpid/sys/IOHandle.h" - -namespace qpid { -namespace sys { - -/** - * A pollable condition to integrate in-process conditions with IO - * conditions in a polling loop. - * - * Setting the condition makes it readable for a poller. - * - * Writable/disconnected conditions are undefined and should not be - * polled for. - */ -class PollableCondition : public sys::IOHandle { - public: - PollableCondition(); - - /** Set the condition, triggers readable in a poller. */ - void set(); - - /** Get the current state of the condition, then clear it. - *@return The state of the condition before it was cleared. - */ - bool clear(); - - private: - int writeFd; -}; -}} // namespace qpid::sys - -#endif /*!QPID_SYS_POSIX_POLLABLECONDITION_H*/ diff --git a/cpp/src/qpid/sys/windows/PollableCondition.cpp b/cpp/src/qpid/sys/windows/PollableCondition.cpp new file mode 100644 index 0000000000..ed0f7c3917 --- /dev/null +++ b/cpp/src/qpid/sys/windows/PollableCondition.cpp @@ -0,0 +1,125 @@ +#ifndef QPID_SYS_WINDOWS_POLLABLECONDITION_CPP +#define QPID_SYS_WINDOWS_POLLABLECONDITION_CPP + +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +#include "qpid/sys/PollableCondition.h" +#include "qpid/sys/IOHandle.h" +#include "AsynchIoResult.h" +#include "IoHandlePrivate.h" + +#include <boost/bind.hpp> +#include <windows.h> + +namespace qpid { +namespace sys { + +// PollableConditionPrivate will reuse the IocpPoller's ability to queue +// a completion to the IOCP and have it dispatched to the completer callback +// noted in the IOHandlePrivate when the request is queued. The +// AsynchCallbackRequest object is not really used - we already have the +// desired callback for the user of PollableCondition. +class PollableConditionPrivate : private IOHandle { + friend class PollableCondition; + +private: + PollableConditionPrivate(const sys::PollableCondition::Callback& cb, + sys::PollableCondition& parent, + const boost::shared_ptr<sys::Poller>& poller); + ~PollableConditionPrivate(); + + void poke(); + void dispatch(AsynchIoResult *result); + +private: + PollableCondition::Callback cb; + PollableCondition& parent; + boost::shared_ptr<sys::Poller> poller; + LONG isSet; + LONG armed; +}; + +PollableConditionPrivate::PollableConditionPrivate(const sys::PollableCondition::Callback& cb, + sys::PollableCondition& parent, + const boost::shared_ptr<sys::Poller>& poller) + : IOHandle(new sys::IOHandlePrivate(INVALID_SOCKET, + boost::bind(&PollableConditionPrivate::dispatch, this, _1))), + cb(cb), parent(parent), poller(poller), isSet(0), armed(0) +{ +} + +PollableConditionPrivate::~PollableConditionPrivate() +{ +} + +void PollableConditionPrivate::poke() +{ + if (!armed) + return; + + // addFd will queue a completion for the IOCP; when it's handled, a + // poller thread will call back to dispatch() below. + PollerHandle ph(*this); + poller->addFd(ph, Poller::INPUT); +} + +void PollableConditionPrivate::dispatch(AsynchIoResult *result) +{ + delete result; // Poller::addFd() allocates this + cb(parent); +} + + /* PollableCondition */ + +PollableCondition::PollableCondition(const Callback& cb, + const boost::shared_ptr<sys::Poller>& poller) + : impl(new PollableConditionPrivate(cb, *this, poller)) +{ +} + +PollableCondition::~PollableCondition() +{ + delete impl; +} + +void PollableCondition::set() { + // Add one to the set count and poke it to provoke a callback + ::InterlockedIncrement(&impl->isSet); + impl->poke(); +} + +bool PollableCondition::clear() { + return (0 != ::InterlockedExchange(&impl->isSet, 0)); +} + +void PollableCondition::disarm() { + ::InterlockedExchange(&impl->armed, 0); +} + +void PollableCondition::rearm() { + if (0 == ::InterlockedExchange(&impl->armed, 1) && impl->isSet) + impl->poke(); +} + +}} // namespace qpid::sys + +#endif /*!QPID_SYS_WINDOWS_POLLABLECONDITION_CPP*/ diff --git a/cpp/src/tests/QueueEvents.cpp b/cpp/src/tests/QueueEvents.cpp index 3e377d04b3..df3c937e33 100644 --- a/cpp/src/tests/QueueEvents.cpp +++ b/cpp/src/tests/QueueEvents.cpp @@ -27,6 +27,7 @@ #include "qpid/broker/QueueEvents.h" #include "qpid/client/QueueOptions.h" #include "qpid/framing/SequenceNumber.h" +#include "qpid/sys/Dispatcher.h" #include <boost/bind.hpp> #include <boost/format.hpp> |