Beast.Asio:

New classes:

  class async_completion:
    Helper class for implementing asynchronous initiation functions.
    See n3964:
        Library Foundations for Asynchronous Operations, Revision 1
        http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3964.pdf

  class basic_streambuf:
    Meets the requirements of Streambuf.

  class buffered_readstream:
    Buffers a ReadStream with a ConstBufferSequence.

  class consuming_buffers:
    Adapts a BufferSequence which wraps the underlying buffer
    sequence and presents fewer bytes, with the retained bytes
    occurring at the end of the sequence.

  class handler_alloc:
    A C++ Allocator the uses asio handler allocation hooks.

  class static_streambuf:
    An implementation of the Streambuf concept that uses a
    fixed size buffer with size determined at compile-time.

  class streambuf_readstream:
    Buffers a ReadStream with a Streambuf.

New functions:

  append_buffers()
    Returns a new BufferSequence which efficiently concatenates
    two or more buffer sequences together.

  prepare_buffers()
    Shortens a buffer sequence. The bytes excluded are at the
    end of the underlying buffer sequence.

  boost::asio::read_until()
    A copy of boost::asio::read_until overloads, modified to work
    with a beast::asio::basic_streambuf.

Debugging:

  buffers_to_string()

    Convert a ConstBufferSequence to a human readable string
    suitable for diagnostics.

type_check.h:

  Metafunctions for checking asio concepts:
    AsyncReadStream, AsyncWriteStream
    SyncReadStream, SyncWriteStream
    ConstBufferSequence, MutableBufferSequence
    Streambuf
    Handler

Changes:

* All symbols moved up a namespace level.
* streambuf provides all move and copy special members,
  behavior of moved from objects is well-defined.

Fixes:

* Fix basic_streambuf iterator category.
This commit is contained in:
Vinnie Falco
2016-04-01 11:46:32 -04:00
parent 73ddda4651
commit f25b448a49
56 changed files with 6303 additions and 878 deletions

View File

@@ -236,33 +236,54 @@
</ClInclude>
<ClInclude Include="..\..\src\BeastConfig.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\Asio.unity.cpp">
<ExcludedFromBuild>True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\append_buffers.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\async_completion.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\basic_streambuf.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\bind_handler.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\error.h">
<ClInclude Include="..\..\src\beast\beast\asio\buffers_adapter.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\impl\error.cpp">
<ExcludedFromBuild>True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\consuming_buffers.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\handler_alloc.h">
</ClInclude>
<None Include="..\..\src\beast\beast\asio\impl\basic_streambuf.ipp">
</None>
<None Include="..\..\src\beast\beast\asio\impl\streambuf_readstream.ipp">
</None>
<ClInclude Include="..\..\src\beast\beast\asio\io_latency_probe.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\placeholders.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\prepare_buffers.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_bind_handler_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_buffers_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_error_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\ssl_bundle.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\ssl_error.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\static_streambuf.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\streambuf.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\tests\bind_handler.test.cpp">
<ExcludedFromBuild>True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\tests\error_test.cpp">
<ExcludedFromBuild>True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\tests\streambuf.test.cpp">
<ExcludedFromBuild>True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\streambuf_readstream.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\type_check.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\ci_char_traits.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\clock\abstract_clock.h">
@@ -419,6 +440,10 @@
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\type_name.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\unity\beast_asio_unity.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug.classic|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release.classic|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\unity\beast_clock_unity.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug.classic|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release.classic|x64'">True</ExcludedFromBuild>

View File

@@ -13,8 +13,11 @@
<Filter Include="beast\asio\impl">
<UniqueIdentifier>{FF54D3F4-A81E-22BE-41BE-3B9033F5D19F}</UniqueIdentifier>
</Filter>
<Filter Include="beast\asio\tests">
<UniqueIdentifier>{EF067C64-19DB-3B0D-6FBD-CE9F1219DC75}</UniqueIdentifier>
<Filter Include="beast\asio\src">
<UniqueIdentifier>{D091E064-34B3-D521-C542-E4CB4E1DB6B0}</UniqueIdentifier>
</Filter>
<Filter Include="beast\asio\src\test">
<UniqueIdentifier>{1C9418C5-092B-040C-16B7-1FA56E86CAF6}</UniqueIdentifier>
</Filter>
<Filter Include="beast\clock">
<UniqueIdentifier>{4570DEF7-7325-D45D-57DE-6B99056FE3FC}</UniqueIdentifier>
@@ -534,39 +537,69 @@
<ClInclude Include="..\..\src\BeastConfig.h">
<Filter>.</Filter>
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\Asio.unity.cpp">
<ClInclude Include="..\..\src\beast\beast\asio\append_buffers.h">
<Filter>beast\asio</Filter>
</ClCompile>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\async_completion.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\basic_streambuf.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\bind_handler.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\error.h">
<ClInclude Include="..\..\src\beast\beast\asio\buffers_adapter.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\impl\error.cpp">
<ClInclude Include="..\..\src\beast\beast\asio\consuming_buffers.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\handler_alloc.h">
<Filter>beast\asio</Filter>
</ClInclude>
<None Include="..\..\src\beast\beast\asio\impl\basic_streambuf.ipp">
<Filter>beast\asio\impl</Filter>
</ClCompile>
</None>
<None Include="..\..\src\beast\beast\asio\impl\streambuf_readstream.ipp">
<Filter>beast\asio\impl</Filter>
</None>
<ClInclude Include="..\..\src\beast\beast\asio\io_latency_probe.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\placeholders.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\prepare_buffers.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_bind_handler_test.cpp">
<Filter>beast\asio\src\test</Filter>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_buffers_test.cpp">
<Filter>beast\asio\src\test</Filter>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\src\test\beast_asio_error_test.cpp">
<Filter>beast\asio\src\test</Filter>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\ssl_bundle.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\ssl_error.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\static_streambuf.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\streambuf.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\asio\tests\bind_handler.test.cpp">
<Filter>beast\asio\tests</Filter>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\tests\error_test.cpp">
<Filter>beast\asio\tests</Filter>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\asio\tests\streambuf.test.cpp">
<Filter>beast\asio\tests</Filter>
</ClCompile>
<ClInclude Include="..\..\src\beast\beast\asio\streambuf_readstream.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\asio\type_check.h">
<Filter>beast\asio</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\ci_char_traits.h">
<Filter>beast</Filter>
</ClInclude>
@@ -762,6 +795,9 @@
<ClInclude Include="..\..\src\beast\beast\type_name.h">
<Filter>beast</Filter>
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\unity\beast_asio_unity.cpp">
<Filter>beast\unity</Filter>
</ClCompile>
<ClCompile Include="..\..\src\beast\beast\unity\beast_clock_unity.cpp">
<Filter>beast\unity</Filter>
</ClCompile>

View File

@@ -1,26 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RippleD", "RippleD.vcxproj", "{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
debug.classic|x64 = debug.classic|x64
debug.classic|x86 = debug.classic|x86
debug|x64 = debug|x64
debug|x86 = debug|x86
release.classic|x64 = release.classic|x64
release.classic|x86 = release.classic|x86
release|x64 = release|x64
release|x86 = release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug.classic|x64.ActiveCfg = debug.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug.classic|x64.Build.0 = debug.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug.classic|x86.ActiveCfg = debug.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug|x64.ActiveCfg = debug|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug|x64.Build.0 = debug|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.debug|x86.ActiveCfg = debug|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release.classic|x64.ActiveCfg = release.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release.classic|x64.Build.0 = release.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release.classic|x86.ActiveCfg = release.classic|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release|x64.ActiveCfg = release|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release|x64.Build.0 = release|x64
{26B7D9AC-1A80-8EF8-6703-D061F1BECB75}.release|x86.ActiveCfg = release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE