BVB Source Codes

mars Show optimal_buffer_size.hpp Source code

Return Download mars: download optimal_buffer_size.hpp Source code - Download mars Source code - Type:.hpp
  1. // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
  2. // (C) Copyright 2003-2007 Jonathan Turkanis
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
  5.  
  6. // See http://www.boost.org/libs/iostreams for documentation.
  7.  
  8. #ifndef BOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
  9. #define BOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
  10.  
  11. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  12. # pragma once
  13. #endif
  14.  
  15. #include <boost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
  16. #include <boost/detail/workaround.hpp>
  17. #include <boost/iostreams/constants.hpp>  // constants.
  18. #include <boost/iostreams/detail/dispatch.hpp>
  19. #include <boost/iostreams/detail/wrap_unwrap.hpp>
  20. #include <boost/iostreams/operations_fwd.hpp>
  21. #include <boost/mpl/if.hpp>
  22.  
  23. // Must come last.
  24. #include <boost/iostreams/detail/config/disable_warnings.hpp>
  25.  
  26. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace iostreams {
  27.  
  28. namespace detail {
  29.  
  30. template<typename T>
  31. struct optimal_buffer_size_impl;
  32.  
  33. } // End namespace detail.
  34.  
  35. template<typename T>
  36. std::streamsize optimal_buffer_size(const T& t)
  37. {
  38.     typedef detail::optimal_buffer_size_impl<T> impl;
  39.     return impl::optimal_buffer_size(detail::unwrap(t));
  40. }
  41.  
  42. namespace detail {
  43.  
  44. //------------------Definition of optimal_buffer_size_impl--------------------//
  45.  
  46. template<typename T>
  47. struct optimal_buffer_size_impl
  48.     : mpl::if_<
  49.           is_custom<T>,
  50.           operations<T>,
  51.           optimal_buffer_size_impl<
  52.               BOOST_DEDUCED_TYPENAME
  53.               dispatch<
  54.                   T, optimally_buffered_tag, device_tag, filter_tag
  55.               >::type
  56.           >
  57.       >::type
  58.     { };
  59.  
  60. template<>
  61. struct optimal_buffer_size_impl<optimally_buffered_tag> {
  62.     template<typename T>
  63.     static std::streamsize optimal_buffer_size(const T& t)
  64.     { return t.optimal_buffer_size(); }
  65. };
  66.  
  67. template<>
  68. struct optimal_buffer_size_impl<device_tag> {
  69.     template<typename T>
  70.     static std::streamsize optimal_buffer_size(const T&)
  71.     { return default_device_buffer_size; }
  72. };
  73.  
  74. template<>
  75. struct optimal_buffer_size_impl<filter_tag> {
  76.     template<typename T>
  77.     static std::streamsize optimal_buffer_size(const T&)
  78.     { return default_filter_buffer_size; }
  79. };
  80.  
  81. } // End namespace detail.
  82.  
  83. } } // End namespaces iostreams, boost.
  84.  
  85. #include <boost/iostreams/detail/config/enable_warnings.hpp>
  86.  
  87. #endif // #ifndef BOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
  88.  
downloadoptimal_buffer_size.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top