38 lines
857 B
C++
38 lines
857 B
C++
#ifndef SMO_MARIONETTE_THREAD_H
|
|
#define SMO_MARIONETTE_THREAD_H
|
|
|
|
#include <boost/asio/io_context.hpp>
|
|
#include <spinscale/co/invokers.h>
|
|
#include <spinscale/co/postingPromise.h>
|
|
|
|
namespace smo {
|
|
namespace mrntt {
|
|
|
|
struct MrnttThreadTag
|
|
{
|
|
static boost::asio::io_context &io_context() noexcept;
|
|
};
|
|
|
|
template <typename T>
|
|
using MrnttPostingPromise =
|
|
sscl::co::TaggedPostingPromise<T, MrnttThreadTag>;
|
|
|
|
using MrnttNonViralPostingInvoker =
|
|
sscl::co::NonViralPostingInvoker<MrnttPostingPromise>;
|
|
|
|
template <typename T>
|
|
using MrnttViralPostingInvoker =
|
|
sscl::co::ViralPostingInvoker<MrnttPostingPromise, T>;
|
|
|
|
using MrnttViralNonPostingInvoker =
|
|
sscl::co::ViralNonPostingInvoker<void>;
|
|
|
|
template <typename T>
|
|
using MrnttViralNonPostingInvokerT =
|
|
sscl::co::ViralNonPostingInvoker<T>;
|
|
|
|
} // namespace mrntt
|
|
} // namespace smo
|
|
|
|
#endif // SMO_MARIONETTE_THREAD_H
|