mirror of
https://github.com/boostorg/msm.git
synced 2026-01-24 06:02:10 +00:00
15 lines
12 KiB
HTML
15 lines
12 KiB
HTML
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
<title>Part I. User' guide</title><link rel="stylesheet" href="boostbook.css" type="text/css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"><link rel="home" href="index.html" title="Meta State Machine (MSM)"><link rel="up" href="index.html" title="Meta State Machine (MSM)"><link rel="prev" href="pr01.html" title="Preface"><link rel="next" href="ch01.html" title="Chapter 1. Founding idea"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. User' guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pr01.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div class="part" title="Part I. User' guide"><div class="titlepage"><div><div><h1 class="title"><a name="d0e96"></a>Part I. User' guide</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Founding idea</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. UML Short Guide</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#d0e111">What are state machines?</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Concepts</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#d0e121">State machine, state, transition, event </a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e151">Submachines, orthogonal regions, pseudostates </a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e194">
|
|
History </a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e208">Completion transitions / anonymous
|
|
transitions</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e220"> Internal transitions </a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e226">
|
|
Conflicting transitions </a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">Added concepts</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">State machine glossary</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Tutorial</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#d0e325">Design</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">Basic front-end</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s02.html#d0e344">A simple example</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e358">Transition table</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e400">Defining states with entry/exit actions</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e413">What do you actually do inside actions / guards?</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e465">Defining a simple state machine</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e518">Defining a submachine</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e566">Orthogonal regions, terminate state, event deferring</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e657">History</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e702">Completion (anonymous) transitions</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e729">Internal transitions</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e831">more row types</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e864">Explicit entry / entry and exit pseudo-state / fork</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e1053">Flags</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e1115">Event Hierarchy</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e1136">Customizing a state machine / Getting more speed</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e1185">Choosing the initial event</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#d0e1198"> Containing state machine (deprecated)</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">Functor front-end</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#d0e1237"> Transition table </a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1270">Defining states with entry/exit actions</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1289">What do you actually do inside actions / guards (Part 2)?</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1301">Defining a simple state machine</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1309">Anonymous transitions</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1335">Internal
|
|
transitions</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#d0e1381">Kleene (any) event</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s04.html">PUML (C++-20), experimental</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s04.html#d0e1422">PlantUML basics</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#d0e1502">Composite State Machines</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s05.html">eUML</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s05.html#d0e1555">Transition table</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1596">A simple example: rewriting only our transition table </a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1629">Defining events, actions and states with entry/exit actions</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1742">Wrapping up a simple state machine and first complete examples</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1790">Defining a submachine</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1806">
|
|
Attributes / Function call</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e1906">Orthogonal regions, flags, event deferring</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2018">
|
|
Customizing a state machine / Getting
|
|
more speed</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2053">Completion / Anonymous transitions</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2071">Internal transitions</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2102">Kleene(any) event)</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2117">Other state types</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2181">Helper functions</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2284">Phoenix-like STL support</a></span></dt><dt><span class="sect2"><a href="ch03s05.html#d0e2337">Writing actions with Boost.Phoenix (in development)</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s06.html">Back-end</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s06.html#d0e2396">Creation </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2405">Starting and stopping a state
|
|
machine</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2424">Event dispatching</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2433">Active state(s)</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2447">Upper State Machine (msm::back11 only)</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2452">Serialization</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2505">Base state type </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2531">Visitor</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2574">Flags</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2587">Getting a state</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2600"> State machine constructor with arguments </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2640">Trading run-time speed for
|
|
better compile-time / multi-TU compilation (msm::back only)</a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2726">Compile-time state machine analysis </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2770"> Enqueueing events for later
|
|
processing </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2793"> Customizing the message queues </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2808">Policy definition with Boost.Parameter </a></span></dt><dt><span class="sect2"><a href="ch03s06.html#d0e2816">Choosing when to switch active
|
|
states </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Performance / Compilers</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#d0e2897">Speed</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Executable size</a></span></dt><dt><span class="sect1"><a href="ch04s03.html">Supported compilers</a></span></dt><dt><span class="sect1"><a href="ch04s04.html"> Limitations </a></span></dt><dt><span class="sect1"><a href="ch04s05.html"> Compilers corner </a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Questions & Answers, tips</a></span></dt><dt><span class="chapter"><a href="ch06.html">6. Internals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch06.html#d0e3115">Backend: Run To Completion</a></span></dt><dt><span class="sect1"><a href="ch06s02.html">Frontend / Backend
|
|
interface</a></span></dt><dt><span class="sect1"><a href="ch06s03.html"> Generated state ids </a></span></dt><dt><span class="sect1"><a href="ch06s04.html">Metaprogramming tools</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. Acknowledgements</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch07.html#d0e3410">MSM v2</a></span></dt><dt><span class="sect1"><a href="ch07s02.html"> MSM v1</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. Version history</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch08.html#d0e3457">Boost 1.85</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Boost 1.72</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Boost 1.57</a></span></dt><dt><span class="sect1"><a href="ch08s04.html">Boost 1.56</a></span></dt><dt><span class="sect1"><a href="ch08s05.html">Boost 1.55</a></span></dt><dt><span class="sect1"><a href="ch08s06.html">Boost 1.54</a></span></dt><dt><span class="sect1"><a href="ch08s07.html">From V2.23 to V2.24 (Boost 1.51)</a></span></dt><dt><span class="sect1"><a href="ch08s08.html">From V2.22 to V2.23 (Boost 1.50)</a></span></dt><dt><span class="sect1"><a href="ch08s09.html">From V2.21 to V2.22 (Boost 1.48)</a></span></dt><dt><span class="sect1"><a href="ch08s10.html">From V2.20 to V2.21 (Boost 1.47)</a></span></dt><dt><span class="sect1"><a href="ch08s11.html">From V2.12 to V2.20 (Boost 1.46)</a></span></dt><dt><span class="sect1"><a href="ch08s12.html">From V2.10 to V2.12 (Boost 1.45)</a></span></dt><dt><span class="sect1"><a href="ch08s13.html">From V2.0 to V2.12 (Boost 1.44)</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pr01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Preface </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Founding idea</td></tr></table></div></body></html> |