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