| <?xml version="1.0" encoding="utf-8"?> |
| <!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" |
| "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"> |
| <!-- |
| Copyright Douglas Gregor 2001-2004 |
| 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) |
| --> |
| <section last-revision="$Date: 2007-06-12 14:01:23 -0400 (Tue, 12 Jun 2007) $" id="signals2.examples"> |
| <title>Example programs</title> |
| |
| <using-namespace name="boost::signals2"/> |
| <using-namespace name="boost"/> |
| |
| <section id="signals2.examples.misc"> |
| <title>Miscellaneous Tutorial Examples</title> |
| <section id="signals2.examples.tutorial.hello_world_slot"> |
| <title>hello_world_slot</title> |
| <para> |
| This example is a basic example of connecting a slot to a signal |
| and then invoking the signal. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/hello_world_slot.cpp">hello_world_slot.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.hello_world_multi_slot"> |
| <title>hello_world_multi_slot</title> |
| <para> |
| This example extends the hello_world_slot example slightly by connecting more than one |
| slot to the signal before invoking it. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/hello_world_multi_slot.cpp">hello_world_multi_slot.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.ordering_slots"> |
| <title>ordering_slots</title> |
| <para> |
| This example extends the hello_world_multi_slot example slightly by |
| using slot groups to specify |
| the order slots should be invoked. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/ordering_slots.cpp">ordering_slots.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.slot_arguments"> |
| <title>slot_arguments</title> |
| <para> |
| The slot_arguments program shows how to pass arguments from a signal invocation to slots. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/slot_arguments.cpp">slot_arguments.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.signal_return_value"> |
| <title>signal_return_value</title> |
| <para> |
| This example shows how to return a value from slots to the signal invocation. |
| It uses the default <classname>optional_last_value</classname> combiner. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/signal_return_value.cpp">signal_return_value.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.custom_combiners"> |
| <title>custom_combiners</title> |
| <para> |
| This example shows more returning of values from slots to the signal invocation. |
| This time, custom combiners are defined and used. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/custom_combiners.cpp">custom_combiners.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.disconnect_and_block"> |
| <title>disconnect_and_block</title> |
| <para> |
| This example demonstrates various means of manually disconnecting slots, as well as temporarily |
| blocking them via <classname>shared_connection_block</classname>. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/disconnect_and_block.cpp">disconnect_and_block.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.passing_slots"> |
| <title>passing_slots</title> |
| <para> |
| This example demonstrates the passing of slot functions to a private signal |
| through a non-template interface. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/passing_slots.cpp">passing_slots.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.tutorial.extended_slot"> |
| <title>extended_slot</title> |
| <para> |
| This example demonstrates connecting an extended slot to a signal. An extended slot |
| accepts a reference to its invoking signal-slot connection as an additional argument, |
| permitting the slot to temporarily block or permanently disconnect itself. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/extended_slot.cpp">extended_slot.cpp</ulink>. |
| </para> |
| </section> |
| </section> |
| <section id="signals2.examples.document-view"> |
| <title>Document-View</title> |
| <section id="signals2.examples.document-view.doc_view"> |
| <title>doc_view</title> |
| <para> |
| This is the document-view example program which is described in the |
| <link linkend="signals2.tutorial.document-view">tutorial</link>. It shows |
| usage of a signal and slots to implement two different views of |
| a text document. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/doc_view.cpp">doc_view.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.document-view.doc_view_acm"> |
| <title>doc_view_acm</title> |
| <para> |
| This program modifies the original doc_view.cpp example to employ |
| automatic connection management. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/doc_view_acm.cpp">doc_view_acm.cpp</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.document-view.doc_view_acm_deconstruct"> |
| <title>doc_view_acm_deconstruct</title> |
| <para> |
| This program modifies the doc_view_acm.cpp example to use postconstructors |
| and the <functionname>deconstruct()</functionname> factory function. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/doc_view_acm_deconstruct.cpp">doc_view_acm_deconstruct.cpp</ulink>. |
| </para> |
| </section> |
| </section> |
| <section id="signals2.examples.deconstruct"> |
| <title>Postconstructors and Predestructors with <code>deconstruct()</code></title> |
| <section id="signals2.examples.deconstruct.postconstructor_ex1"> |
| <title>postconstructor_ex1</title> |
| <para> |
| This program is a basic example of how to define a class with a postconstructor which |
| uses <functionname>deconstruct()</functionname> as its factory function. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/postconstructor_ex1.cpp">postconstructor_ex1</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.deconstruct.postconstructor_ex2"> |
| <title>postconstructor_ex2</title> |
| <para> |
| This program extends the postconstructor_ex1 example slightly, by additionally passing arguments from |
| the <functionname>deconstruct()</functionname> call through to the class' constructor |
| and postconstructor. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/postconstructor_ex2.cpp">postconstructor_ex2</ulink>. |
| </para> |
| </section> |
| <section id="signals2.examples.deconstruct.predestructor_example"> |
| <title>predestructor_example</title> |
| <para> |
| This program is a basic example of how to define a class with a predestructor which |
| uses <functionname>deconstruct()</functionname> as its factory function. |
| </para> |
| <para> |
| Download <ulink url="boost:/libs/signals2/example/predestructor_example.cpp">predestructor_example</ulink>. |
| </para> |
| </section> |
| </section> |
| </section> |