51 lines
911 B
C++
51 lines
911 B
C++
|
|
#pragma once
|
|
|
|
#if !defined(MIJIN_ASYNC_BOXED_SIGNAL_HPP_INCLUDED)
|
|
#define MIJIN_ASYNC_BOXED_SIGNAL_HPP_INCLUDED 1
|
|
|
|
#include "./signal.hpp"
|
|
#include "../container/boxed_object.hpp"
|
|
|
|
namespace mijin
|
|
{
|
|
|
|
//
|
|
// public defines
|
|
//
|
|
|
|
//
|
|
// public constants
|
|
//
|
|
|
|
//
|
|
// public types
|
|
//
|
|
|
|
|
|
template<template<typename> typename TAllocator, typename... TArgs>
|
|
class BaseBoxedSignal : private BoxedObject<BaseSignal<TAllocator, TArgs...>>
|
|
{
|
|
private:
|
|
using base_t = BoxedObject<BaseSignal<TAllocator, TArgs...>>;
|
|
public:
|
|
using base_t::construct;
|
|
using base_t::destroy;
|
|
using base_t::moveTo;
|
|
|
|
MIJIN_BOXED_PROXY_FUNC(connect)
|
|
MIJIN_BOXED_PROXY_FUNC(disconnect)
|
|
MIJIN_BOXED_PROXY_FUNC(emit)
|
|
};
|
|
|
|
template<typename... TArgs>
|
|
using BoxedSignal = BaseBoxedSignal<MIJIN_DEFAULT_ALLOCATOR, TArgs...>;
|
|
|
|
//
|
|
// public functions
|
|
//
|
|
|
|
} // namespace mijin
|
|
|
|
#endif // !defined(MIJIN_ASYNC_BOXED_SIGNAL_HPP_INCLUDED)
|