libsigc++  2.3.1
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
sigc::signal_base Struct Reference

Base class for the sigc::signal# templates. More...

#include <sigc++/signal_base.h>

Inheritance diagram for sigc::signal_base:
Inheritance graph
[legend]

List of all members.

Public Types

typedef std::size_t size_type

Public Member Functions

 signal_base (const signal_base& src)
signal_baseoperator= (const signal_base& src)
bool empty () const
 Returns whether the list of slots is empty.
void clear ()
 Empties the list of slots.
size_type size () const
 Returns the number of slots in the list.
bool blocked () const
 Returns whether all slots in the list are blocked.
void block (bool should_block=true)
 Sets the blocking state of all slots in the list.
void unblock ()
 Unsets the blocking state of all slots in the list.

Protected Types

typedef
internal::signal_impl::iterator_type 
iterator_type

Protected Member Functions

iterator_type connect (const slot_base& slot_)
 Adds a slot at the end of the list of slots.
iterator_type insert (iterator_type i, const slot_base& slot_)
 Adds a slot at the given position into the list of slots.
iterator_type erase (iterator_type i)
 Removes the slot at the given position from the list of slots.
internal::signal_impl* impl () const
 Returns the signal_impl object encapsulating the list of slots.

Protected Attributes

internal::signal_impl* impl_
 The signal_impl object encapsulating the slot list.

Detailed Description

Base class for the sigc::signal# templates.

signal_base integrates most of the interface of the derived sigc::signal# templates. The implementation, however, resides in sigc::internal::signal_impl. A sigc::internal::signal_impl object is dynamically allocated from signal_base when first connecting a slot to the signal. This ensures that empty signals don't waste memory.


Member Function Documentation

void sigc::signal_base::block ( bool  should_block = true)

Sets the blocking state of all slots in the list.

If should_block is true then the blocking state is set. Subsequent emissions of the signal don't invoke the functors contained in the slots until unblock() or block() with should_block = false is called. sigc::slot_base::block() and sigc::slot_base::unblock() can change the blocking state of individual slots.

Parameters:
should_blockIndicates whether the blocking state should be set or unset.
Since libsigc++ 2.4:

Returns whether all slots in the list are blocked.

Returns:
true if all slots are blocked or the list is empty.
Since libsigc++ 2.4:
iterator_type sigc::signal_base::connect ( const slot_base slot_) [protected]

Adds a slot at the end of the list of slots.

With connect(), slots can also be added during signal emission. In this case, they won't be executed until the next emission occurs.

Parameters:
slot_The slot to add to the list of slots.
Returns:
An iterator pointing to the new slot in the list.
bool sigc::signal_base::empty ( ) const [inline]

Returns whether the list of slots is empty.

Returns:
true if the list of slots is empty.

Removes the slot at the given position from the list of slots.

Note that this function does not work during signal emission!

Parameters:
iAn iterator pointing to the slot to be removed.
Returns:
An iterator pointing to the slot in the list after the one removed.
internal::signal_impl* sigc::signal_base::impl ( ) const [protected]

Returns the signal_impl object encapsulating the list of slots.

Returns:
The signal_impl object encapsulating the list of slots.
iterator_type sigc::signal_base::insert ( iterator_type  i,
const slot_base slot_ 
) [protected]

Adds a slot at the given position into the list of slots.

Note that this function does not work during signal emission!

Parameters:
iAn iterator indicating the position where slot_ should be inserted.
slot_The slot to add to the list of slots.
Returns:
An iterator pointing to the new slot in the list.
size_type sigc::signal_base::size ( ) const

Returns the number of slots in the list.

Returns:
The number of slots in the list.

Unsets the blocking state of all slots in the list.

Since libsigc++ 2.4: