BVB Source Codes

mars Show trampoline_push.hpp Source code

Return Download mars: download trampoline_push.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. //          Copyright Oliver Kowalke 2009.
  3. // Distributed under the Boost Software License, Version 1.0.
  4. //    (See accompanying file LICENSE_1_0.txt or copy at
  5. //          http://www.boost.org/LICENSE_1_0.txt)
  6.  
  7. #ifndef BOOST_COROUTINES_DETAIL_TRAMPOLINE_PUSH_H
  8. #define BOOST_COROUTINES_DETAIL_TRAMPOLINE_PUSH_H
  9.  
  10. #include <cstddef>
  11.  
  12. #include <boost/assert.hpp>
  13. #include <boost/config.hpp>
  14. #include <boost/context/detail/fcontext.hpp>
  15. #include <boost/cstdint.hpp>
  16. #include <boost/exception_ptr.hpp>
  17. #include <boost/move/move.hpp>
  18.  
  19. #include <boost/coroutine/detail/config.hpp>
  20. #include <boost/coroutine/detail/data.hpp>
  21. #include <boost/coroutine/detail/flags.hpp>
  22. #include <boost/coroutine/detail/parameters.hpp>
  23. #include <boost/coroutine/detail/setup.hpp>
  24. #include <boost/coroutine/detail/setup.hpp>
  25. #include <boost/coroutine/exceptions.hpp>
  26. #include <boost/coroutine/flags.hpp>
  27.  
  28. #ifdef BOOST_HAS_ABI_HEADERS
  29. #  include BOOST_ABI_PREFIX
  30. #endif
  31.  
  32. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  33. namespace coroutines {
  34. namespace detail {
  35.  
  36. template< typename Coro >
  37. void trampoline_push( context::detail::transfer_t t)
  38. {
  39.     typedef typename Coro::param_type   param_type;
  40.  
  41.     data_t * data = static_cast< data_t * >( t.data);
  42.     data->from->ctx_ = t.fctx;
  43.     param_type * param(
  44.         static_cast< param_type * >( data->data) );
  45.     BOOST_ASSERT( 0 != param);
  46.     BOOST_ASSERT( 0 != param->data);
  47.  
  48.     Coro * coro(
  49.         static_cast< Coro * >( param->coro) );
  50.     BOOST_ASSERT( 0 != coro);
  51.  
  52.     coro->run( param->data);
  53. }
  54.  
  55. template< typename Coro >
  56. void trampoline_push_void( context::detail::transfer_t t)
  57. {
  58.     typedef typename Coro::param_type   param_type;
  59.  
  60.     data_t * data = static_cast< data_t * >( t.data);
  61.     data->from->ctx_ = t.fctx;
  62.     param_type * param(
  63.         static_cast< param_type * >( data->data) );
  64.     BOOST_ASSERT( 0 != param);
  65.  
  66.     Coro * coro(
  67.         static_cast< Coro * >( param->coro) );
  68.     BOOST_ASSERT( 0 != coro);
  69.  
  70.     coro->run();
  71. }
  72.  
  73. }}}
  74.  
  75. #ifdef BOOST_HAS_ABI_HEADERS
  76. #  include BOOST_ABI_SUFFIX
  77. #endif
  78.  
  79. #endif // BOOST_COROUTINES_DETAIL_TRAMPOLINE_PUSH_H
  80.  
downloadtrampoline_push.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