<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
  "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<!--
Copyright Frank Mori Hess 2007-2009

Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-->
<header name="boost/signals2/slot_base.hpp" last-revision="$Date: 2007-03-06 16:51:55 -0500 (Tue, 06 Mar 2007) $">
  <using-namespace name="boost::signals2"/>
  <using-namespace name="boost"/>
  <namespace name="boost">
    <namespace name="signals2">
      <class name="slot_base">
        <purpose>Base class for slots.</purpose>

        <description>
          <para></para>
        </description>

        <typedef name="locked_container_type">
          <type>std::vector&lt;<emphasis>implementation-detail</emphasis>&gt;</type>
        </typedef>

        <method-group name="tracking">
          <method name = "expired" cv="const">
            <type>bool</type>
            <returns><para><code>true</code> if any tracked object has expired.</para></returns>
          </method>
          <method name = "lock" cv="const">
            <type>locked_container_type</type>
            <returns>A container holding <code>shared_ptr</code>s to each of the slot's tracked objects.  As long
            as the returned container is kept in scope, none of the slot's tracked objects can expire.</returns>
            <throws><classname>expired_slot</classname> if any of the slot's tracked objects have expired.</throws>
          </method>
        </method-group>
      </class>
      <class name="expired_slot">
        <inherit access="public"><classname>bad_weak_ptr</classname></inherit>
        <purpose>Indicates at least one of a slot's tracked objects has expired.</purpose>
        <description>The <code>expired_slot</code> exception is thrown to indicate at least one of
          a slot's tracked objects has expired.
        </description>
        <method name="what" cv="const" specifiers="virtual">
          <type>const char * </type>
        </method>
      </class>
    </namespace>
  </namespace>
</header>
