# sigc::slot_base Class Reference
[Slots]

Base type for slots. More...

`#include <sigc++/functors/slot_base.h>`

Inheritance diagram for sigc::slot_base:
[legend]

List of all members.

## Public Types
typedef trackable::func_destroy_notify | func_destroy_notify
## Public Member Functions
| slot_base ()
| Constructs an empty slot.
| slot_base (rep_type* rep)
| Constructs a slot from an existing slot_rep object.
| slot_base (const slot_base& src)
| Constructs a slot, copying an existing one.
| operator bool () const
| Tests whether a slot is null, because the default constructor was used.
void | set_parent (void* parent, void*(* cleanup)(void*)) const
| Sets the parent of this slot.
void | add_destroy_notify_callback (void* data, func_destroy_notify func) const
| Add a callback that is executed (notified) when the slot is detroyed.
void | remove_destroy_notify_callback (void* data) const
| Remove a callback previously installed with add_destroy_notify_callback().
bool | empty () const
| Returns whether the slot is invalid.
bool | blocked () const
| Returns whether the slot is blocked.
bool | block (bool should_block=true)
| Sets the blocking state.
bool | unblock ()
| Unsets the blocking state.
void | disconnect ()
| Disconnects the slot.
slot_base& | operator= (const slot_base& src)
| Overrides this slot making a copy from another slot.
## Public Attributes
rep_type* | rep_
| Typed slot_rep object that contains a functor.
bool | blocked_
| Indicates whether the slot is blocked.

## Detailed Description

Base type for slots.

slot_base integrates most of the interface of the derived sigc::slot templates. slots can be connected to signals, be disconnected at some later point (disconnect()) and temporarily be blocked (block(), unblock()). The validity of a slot can be tested with empty().

The internal representation of a sigc::internal::slot_rep derived type is built from slot_base's derivations. set_parent() is used to register a notification callback that is executed when the slot gets invalid. add_destroy_notify_callback() is used by connection objects to add a notification callback that is executed on destruction.

## Constructor & Destructor Documentation

sigc::slot_base::slot_base | ( | rep_type * | rep | ) | `[explicit]`

Constructs a slot from an existing slot_rep object.

Parameters:

  | rep | The slot_rep object this slot should contain.

sigc::slot_base::slot_base | ( | const slot_base& | src | ) |

Constructs a slot, copying an existing one.

Parameters:

  | src | The existing slot to copy.

## Member Function Documentation

void sigc::slot_base::add_destroy_notify_callback | ( | void * | data,
|  | func_destroy_notify | func |
| ) |  |  | const

Add a callback that is executed (notified) when the slot is detroyed.

This function is used internally by connection objects.

Parameters:

  | data | Passed into func upon notification.
  | func | Callback executed upon destruction of the object.

bool sigc::slot_base::block | ( | bool | should_block = `true` | ) |

Sets the blocking state.

If should_block is `true` then the blocking state is set. Subsequent calls to slot::operator()() don't invoke the functor contained by this slot until unblock() or block() with should_block = `false` is called.

Parameters:

  | should_block | Indicates whether the blocking state should be set or unset.

Returns:
  `true` if the slot was in blocking state before.

bool sigc::slot_base::blocked | ( |  | ) | const`[inline]`

Returns whether the slot is blocked.

Returns:
  `true` if the slot is blocked.

void sigc::slot_base::disconnect | ( |  | ) |

Disconnects the slot.

Invalidates the slot and notifies the parent.

bool sigc::slot_base::empty | ( |  | ) | const`[inline]`

Returns whether the slot is invalid.

Returns:
  `true` if the slot is invalid (empty).

sigc::slot_base::operator bool | ( |  | ) | const

Tests whether a slot is null, because the default constructor was used.

Test a slot for null like so:

     if(slot)
      do_something()

slot_base& sigc::slot_base::operator= | ( | const slot_base& | src | ) |

Overrides this slot making a copy from another slot.

Parameters:

  | src | The slot from which to make a copy.

Returns:
  `this`.

Reimplemented in sigc::slot0< T_return >, sigc::slot1< T_return, T_arg1 >, sigc::slot2< T_return, T_arg1, T_arg2 >, sigc::slot3< T_return, T_arg1, T_arg2, T_arg3 >, sigc::slot4< T_return, T_arg1, T_arg2, T_arg3, T_arg4 >, sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >, sigc::slot6< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6 >, and sigc::slot7< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >.

void sigc::slot_base::remove_destroy_notify_callback | ( | void * | data | ) | const

Remove a callback previously installed with add_destroy_notify_callback().

The callback is not executed.

Parameters:

  | data | Parameter passed into previous call to add_destroy_notify_callback().

void sigc::slot_base::set_parent | ( | void * | parent,
|  | void *(*)(void *) | cleanup |
| ) |  |  | const

Sets the parent of this slot.

This function is used by signals to register a notification callback. This notification callback is executed when the slot becomes invalid because of some referred object dying.

Parameters:

  | parent | The new parent.
  | cleanup | The notification callback.

bool sigc::slot_base::unblock | ( |  | ) |

Unsets the blocking state.

Returns:
  `true` if the slot was in blocking state before.

## Member Data Documentation

bool sigc::slot_base::blocked_

Indicates whether the slot is blocked.

rep_type* sigc::slot_base::rep_`[mutable]`

Typed slot_rep object that contains a functor.