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)
 |