aGrUM  0.20.2
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 73 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 76 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 { GUM_CONSTRUCTOR(Listener); }
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 36 of file listener.cpp.

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

36  {
37  GUM_CONS_CPY(Listener);
38 
39  for (const auto el: senders__) {
40  el->duplicateTarget(&l, this);
41  };
42  }
Senders_list senders__
Definition: listener.h:93
Listener()
Class constructor.
Definition: listener.cpp:34
+ Here is the call graph for this function:

◆ ~Listener()

gum::Listener::~Listener ( )
virtual

Definition at line 44 of file listener.cpp.

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

44  {
45  GUM_DESTRUCTOR(Listener);
46 
47  for (const auto el: senders__) {
48  el->detachFromTarget(this);
49  }
50 
51  senders__.clear();
52  }
Senders_list senders__
Definition: listener.h:93
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  {
36  senders__.push_back(sender);
37  }
Senders_list senders__
Definition: listener.h:93
+ Here is the call graph for this function:

◆ detachSignal__()

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

Definition at line 39 of file listener_inl.h.

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

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

Member Data Documentation

◆ senders__

Senders_list gum::Listener::senders__
private

Definition at line 93 of file listener.h.


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