sigx++ 2.0.1
|
Lynchpin to track the validity of a tunnel functor and storing information about who needs to be notified about dying dispatchers and tunnel functors. More...
#include <validity_trackable.h>
Public Member Functions | |
validity_trackable (const shared_dispatchable &_A_disp) | |
Data Fields | |
gint | m_refcount |
gint | m_tunnel_refcount |
bool | m_valid |
std::list< connection_wrapper > | m_connections |
A connection_wrapper to a signal. | |
shared_dispatchable | m_disp |
std::vector< const sigc::trackable * > | m_trackables |
gint | m_dispatcher_change_is_cleanup |
void * | m_creator_thread |
Lynchpin to track the validity of a tunnel functor and storing information about who needs to be notified about dying dispatchers and tunnel functors.
sigx::internal::validity_trackable::validity_trackable | ( | const shared_dispatchable & | _A_disp | ) |
A connection_wrapper to a signal.
Referenced by sigx::tunnel_validity_tracker::add_connection().
The dispatchable guarding the tunnel callback. It has us registered
Referenced by sigx::tunnel_validity_tracker::activate(), and sigx::tunnel_validity_tracker::~tunnel_validity_tracker().
this variable holds the address of the dispatcher with which the tunnel functor was originally created; this allows to track a change of the dispatcher; a change might happen if a thread ends and the threadable resets its dispatcher, but the threadable starts again and sets up another dispatcher. This situation is fine for request functors because they only need a valid dispatcher; however, this situation is a problem for tunnel functors connected in a server thread because for them resetting the dispatcher means that they will get disconnected from the server thread's signal.
Referenced by sigx::tunnel_validity_tracker::activate(), and sigx::tunnel_validity_tracker::~tunnel_validity_tracker().
std::vector<const sigc::trackable*> sigx::internal::validity_trackable::m_trackables |
Referenced by sigx::tunnel_validity_tracker::do_bind_to_trackable().
Referenced by sigx::tunnel_validity_tracker::is_valid().