sigx++  2.0.1
Public Member Functions | Data Fields
sigx::internal::validity_trackable Struct Reference

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>

Inheritance diagram for sigx::internal::validity_trackable:
sigx::operator_new

Public Member Functions

 validity_trackable (const shared_dispatchable &_A_disp)
 
- Public Member Functions inherited from sigx::operator_new
void * operator new (std::size_t size)
 
void operator delete (void *p)
 
void * operator new[] (std::size_t size)
 
void operator delete[] (void *p)
 

Data Fields

gint m_refcount
 
gint m_tunnel_refcount
 
bool m_valid
 
std::list< connection_wrapperm_connections
 A connection_wrapper to a signal. More...
 
shared_dispatchable m_disp
 
std::vector< const sigc::trackable * > m_trackables
 
gint m_dispatcher_change_is_cleanup
 
void * m_creator_thread
 

Additional Inherited Members

- Protected Member Functions inherited from sigx::operator_new
 operator_new ()
 
 ~operator_new ()
 

Detailed Description

Lynchpin to track the validity of a tunnel functor and storing information about who needs to be notified about dying dispatchers and tunnel functors.

Constructor & Destructor Documentation

sigx::internal::validity_trackable::validity_trackable ( const shared_dispatchable _A_disp)

Field Documentation

std::list<connection_wrapper> sigx::internal::validity_trackable::m_connections
void* sigx::internal::validity_trackable::m_creator_thread
shared_dispatchable sigx::internal::validity_trackable::m_disp

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

gint sigx::internal::validity_trackable::m_dispatcher_change_is_cleanup

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

gint sigx::internal::validity_trackable::m_refcount
std::vector<const sigc::trackable*> sigx::internal::validity_trackable::m_trackables
gint sigx::internal::validity_trackable::m_tunnel_refcount
bool sigx::internal::validity_trackable::m_valid

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