Bitcoin Core 31.99.0
P2P Digital Currency
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
btcsignals::signal< Signature, Combiner > Class Template Reference

#include <btcsignals.h>

Collaboration diagram for btcsignals::signal< Signature, Combiner >:
[legend]

Classes

struct  connection_holder
 

Public Types

using result_type = Combiner::result_type
 

Public Member Functions

constexpr signal () noexcept=default
 
 ~signal ()=default
 
 signal (const signal &)=delete
 
 signal (signal &&)=delete
 
signaloperator= (const signal &)=delete
 
signaloperator= (signal &&)=delete
 
template<typename... Args>
result_type operator() (Args &&... args) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 
template<typename Callable >
connection connect (Callable &&func) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 
bool empty () const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 

Private Types

using function_type = std::function< Signature >
 

Private Member Functions

std::vector< std::shared_ptr< connection_holder > > m_connections GUARDED_BY (m_mutex)
 

Private Attributes

Mutex m_mutex
 

Detailed Description

template<typename Signature, typename Combiner>
class btcsignals::signal< Signature, Combiner >

Definition at line 149 of file btcsignals.h.

Member Typedef Documentation

◆ function_type

template<typename Signature , typename Combiner >
using btcsignals::signal< Signature, Combiner >::function_type = std::function<Signature>
private

Definition at line 151 of file btcsignals.h.

◆ result_type

template<typename Signature , typename Combiner >
using btcsignals::signal< Signature, Combiner >::result_type = Combiner::result_type

Definition at line 172 of file btcsignals.h.

Constructor & Destructor Documentation

◆ signal() [1/3]

template<typename Signature , typename Combiner >
constexpr btcsignals::signal< Signature, Combiner >::signal ( )
constexprdefaultnoexcept

◆ ~signal()

template<typename Signature , typename Combiner >
btcsignals::signal< Signature, Combiner >::~signal ( )
default

◆ signal() [2/3]

template<typename Signature , typename Combiner >
btcsignals::signal< Signature, Combiner >::signal ( const signal< Signature, Combiner > &  )
delete

◆ signal() [3/3]

template<typename Signature , typename Combiner >
btcsignals::signal< Signature, Combiner >::signal ( signal< Signature, Combiner > &&  )
delete

Member Function Documentation

◆ connect()

template<typename Signature , typename Combiner >
template<typename Callable >
connection btcsignals::signal< Signature, Combiner >::connect ( Callable &&  func)
inline

Definition at line 232 of file btcsignals.h.

Here is the caller graph for this function:

◆ empty()

template<typename Signature , typename Combiner >
bool btcsignals::signal< Signature, Combiner >::empty ( ) const
inline

Definition at line 246 of file btcsignals.h.

Here is the caller graph for this function:

◆ GUARDED_BY()

template<typename Signature , typename Combiner >
std::vector< std::shared_ptr< connection_holder > > m_connections btcsignals::signal< Signature, Combiner >::GUARDED_BY ( m_mutex  )
inlineprivate

Definition at line 169 of file btcsignals.h.

◆ operator()()

template<typename Signature , typename Combiner >
template<typename... Args>
result_type btcsignals::signal< Signature, Combiner >::operator() ( Args &&...  args) const
inline

Definition at line 203 of file btcsignals.h.

Here is the call graph for this function:

◆ operator=() [1/2]

template<typename Signature , typename Combiner >
signal & btcsignals::signal< Signature, Combiner >::operator= ( const signal< Signature, Combiner > &  )
delete

◆ operator=() [2/2]

template<typename Signature , typename Combiner >
signal & btcsignals::signal< Signature, Combiner >::operator= ( signal< Signature, Combiner > &&  )
delete

Member Data Documentation

◆ m_mutex

template<typename Signature , typename Combiner >
Mutex btcsignals::signal< Signature, Combiner >::m_mutex
mutableprivate

Definition at line 167 of file btcsignals.h.


The documentation for this class was generated from the following file: