BVB Source Codes

mars Show coroutine_context.hpp Source code

Return Download mars: download coroutine_context.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_COROUTINE_CONTEXT_H
  8. #define BOOST_COROUTINES_DETAIL_COROUTINE_CONTEXT_H
  9.  
  10. #include <cstddef>
  11.  
  12. #include <boost/assert.hpp>
  13. #include <boost/config.hpp>
  14. #include <boost/context/detail/fcontext.hpp>
  15.  
  16. #include <boost/coroutine/detail/config.hpp>
  17. #include <boost/coroutine/detail/preallocated.hpp>
  18. #include <boost/coroutine/stack_context.hpp>
  19.  
  20. #ifdef BOOST_HAS_ABI_HEADERS
  21. #  include BOOST_ABI_PREFIX
  22. #endif
  23.  
  24. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  25. namespace coroutines {
  26. namespace detail {
  27.  
  28. // class hold stack-context and coroutines execution-context
  29. class BOOST_COROUTINES_DECL coroutine_context
  30. {
  31. private:
  32.     template< typename Coro >
  33.     friend void trampoline( context::detail::transfer_t);
  34.     template< typename Coro >
  35.     friend void trampoline_void( context::detail::transfer_t);
  36.     template< typename Coro >
  37.     friend void trampoline_pull( context::detail::transfer_t);
  38.     template< typename Coro >
  39.     friend void trampoline_push( context::detail::transfer_t);
  40.     template< typename Coro >
  41.     friend void trampoline_push_void( context::detail::transfer_t);
  42.  
  43.     preallocated            palloc_;
  44.     context::detail::fcontext_t     ctx_;
  45.  
  46. public:
  47.     typedef void( * ctx_fn)( context::detail::transfer_t);
  48.  
  49.     // default ctor represents the current execution-context
  50.     coroutine_context();
  51.  
  52.     // ctor creates a new execution-context running coroutine-fn `fn`
  53.     // `ctx_` will be allocated on top of the stack managed by parameter
  54.     // `stack_ctx`
  55.     coroutine_context( ctx_fn fn, preallocated const& palloc);
  56.  
  57.     coroutine_context( coroutine_context const&);
  58.  
  59.     coroutine_context& operator=( coroutine_context const&);
  60.  
  61.     void * jump( coroutine_context &, void * = 0);
  62.  
  63.     stack_context & stack_ctx()
  64.     { return palloc_.sctx; }
  65. };
  66.  
  67. }}}
  68.  
  69. #ifdef BOOST_HAS_ABI_HEADERS
  70. #  include BOOST_ABI_SUFFIX
  71. #endif
  72.  
  73. #endif // BOOST_COROUTINES_DETAIL_COROUTINE_CONTEXT_H
  74.  
downloadcoroutine_context.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