aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::Listener Class Reference

Every class who would catch signal from signaler should derive from Listener. More...

#include <agrum/tools/core/signal/listener.h>

+ Inheritance diagram for gum::Listener:

Public Member Functions

 Listener ()
 Class constructor. More...
 
 Listener (const Listener &l)
 
virtual ~Listener ()
 
void _attachSignal_ (__sig__::ISignaler *sender)
 
void _detachSignal_ (__sig__::ISignaler *sender)
 

Detailed Description

Every class who would catch signal from signaler should derive from Listener.

Definition at line 72 of file listener.h.

Member Typedef Documentation

◆ Senders_list

typedef std::vector< __sig__::ISignaler* > gum::Listener::Senders_list
private

Alias for the list of signal senders.

Definition at line 75 of file listener.h.

Constructor & Destructor Documentation

◆ Listener() [1/2]

gum::Listener::Listener ( )

Class constructor.

Definition at line 34 of file listener.cpp.

References gum::Set< Key, Alloc >::emplace().

34  {
35  GUM_CONSTRUCTOR(Listener);
36  ;
37  }
Listener()
Class constructor.
Definition: listener.cpp:34
+ Here is the call graph for this function:

◆ Listener() [2/2]

gum::Listener::Listener ( const Listener l)

Definition at line 39 of file listener.cpp.

References gum::Set< Key, Alloc >::emplace().

39  {
40  GUM_CONS_CPY(Listener);
41 
42  for (const auto el: _senders_) {
43  el->duplicateTarget(&l, this);
44  };
45  }
Senders_list _senders_
Definition: listener.h:92
Listener()
Class constructor.
Definition: listener.cpp:34
+ Here is the call graph for this function:

◆ ~Listener()

gum::Listener::~Listener ( )
virtual

Definition at line 47 of file listener.cpp.

References gum::Set< Key, Alloc >::emplace().

47  {
48  GUM_DESTRUCTOR(Listener);
49 
50  for (const auto el: _senders_) {
51  el->detachFromTarget(this);
52  }
53 
54  _senders_.clear();
55  }
Senders_list _senders_
Definition: listener.h:92
Listener()
Class constructor.
Definition: listener.cpp:34
+ Here is the call graph for this function:

Member Function Documentation

◆ _attachSignal_()

INLINE void gum::Listener::_attachSignal_ ( __sig__::ISignaler *  sender)

Definition at line 35 of file listener_inl.h.

References gum::Set< Key, Alloc >::emplace().

35 { _senders_.push_back(sender); }
Senders_list _senders_
Definition: listener.h:92
+ Here is the call graph for this function:

◆ _detachSignal_()

INLINE void gum::Listener::_detachSignal_ ( __sig__::ISignaler *  sender)

Definition at line 37 of file listener_inl.h.

References gum::Set< Key, Alloc >::emplace().

37  {
38  auto del = std::remove(_senders_.begin(), _senders_.end(), sender);
39 
40  if (del != _senders_.end()) _senders_.erase(del, _senders_.end());
41  }
Senders_list _senders_
Definition: listener.h:92
+ Here is the call graph for this function:

Member Data Documentation

◆ _senders_

Senders_list gum::Listener::_senders_
private

Definition at line 92 of file listener.h.


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