mirror of
https://github.com/boostorg/statechart.git
synced 2026-01-24 18:32:22 +00:00
- Added the function templates simple_state::clear_shallow_history() and simple_state::clear_deep_history() [SVN r22199]
155 lines
6.2 KiB
HTML
155 lines
6.2 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|
<link rel="stylesheet" type="text/css" href="../../../boost.css">
|
|
<title>The boost::fsm library - Overview</title>
|
|
</head>
|
|
|
|
<body link="#0000ff" vlink="#800080">
|
|
|
|
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
|
|
<tr>
|
|
<td valign="top" width="300">
|
|
<h3><a href="../../../index.htm">
|
|
<img alt="C++ Boost" src="../../../c++boost.gif" border="0" width="277" height="86"></a></h3>
|
|
</td>
|
|
<td valign="top">
|
|
<h1 align="center">The boost::fsm library</h1>
|
|
<h2 align="center">Overview</h2>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr>
|
|
<h2>Overview</h2>
|
|
<p>Welcome to boost::fsm, a C++ library for finite state machines. Features
|
|
include:</p>
|
|
<ul>
|
|
<li>Straightforward transformation from UML state chart to executable C++
|
|
code and vice versa (no code generator required)</li>
|
|
<li>Comprehensive <a href="http://www.omg.org/cgi-bin/doc?formal/03-03-01">
|
|
UML semantics</a> support:<ul>
|
|
<li>Hierarchical (composite, nested) states</li>
|
|
<li>Orthogonal (concurrent) states</li>
|
|
<li>Entry-, exit- and transition-actions</li>
|
|
<li>Guards</li>
|
|
<li>Shallow/deep history</li>
|
|
<li>Event deferral</li>
|
|
</ul>
|
|
</li>
|
|
<li>Error handling support</li>
|
|
<li>Full type-safety</li>
|
|
<li>Compile-time state chart validation</li>
|
|
<li>Support for asynchronous state machines and multi-threading</li>
|
|
<li>State-local storage</li>
|
|
<li>Generic design allowing for the customization of memory management,
|
|
error handling and threading</li>
|
|
</ul>
|
|
<p>All code has been tested on the following platforms using boost
|
|
distribution 1.30.2:</p>
|
|
<ul>
|
|
<li>MSVC7.1 (the compiler coming with Visual Studio .NET 2003)</li>
|
|
<li>GCC3.2 (Mingw)</li>
|
|
</ul>
|
|
<p>The library is functionally complete. However, the following is still in
|
|
the making:</p>
|
|
<ol>
|
|
<li>Rework the <code>worker</code> and <code>asynchronous_state_machine</code>
|
|
templates so that state machine objects can dynamically be added and removed
|
|
and workers with priority-queues become possible</li>
|
|
<li>Regression tests</li>
|
|
<li>Refactor the <code>state_machine</code> class template to reduce code
|
|
size in projects with many different state machines</li>
|
|
</ol>
|
|
<p><b>This is a preliminary submission. All comments are most welcome!</b></p>
|
|
<hr>
|
|
<h2>Contents</h2>
|
|
<dl class="index">
|
|
<dt><a href="tutorial.html">Tutorial</a> [pdf: <a href="tutorial.pdf">
|
|
English</a>,
|
|
<a href="http://prdownloads.sourceforge.jp/jyugem/7127/fsm-tutorial-jp.pdf">
|
|
Japanese</a>]</dt>
|
|
<dt><a href="faq.html">Frequently Asked Questions (FAQs)</a></dt>
|
|
<dt><a href="configuration.html">Configuration</a></dt>
|
|
<dt><a href="definitions.html">Definitions</a></dt>
|
|
<dt><a href="reference.html">Reference</a> [pdf: <a href="reference.pdf">
|
|
English</a>]</dt>
|
|
<dt><a href="rationale.html">Rationale</a> [pdf: <a href="rationale.pdf">
|
|
English</a>]</dt>
|
|
<dt><a href="acknowledgments.html">Acknowledgments</a></dt>
|
|
</dl>
|
|
<hr>
|
|
<h2>Change history</h2>
|
|
<p>09 February 2004:</p>
|
|
<ul>
|
|
<li>Integrated the standard conformance fixes contributed by Peter Petrov.
|
|
The library now also works on GCC 3.2 and should be much easier portable to
|
|
other highly conformant compilers</li>
|
|
<li>Added the state type information facility to <code>simple_state</code></li>
|
|
<li>Added the function templates <code>simple_state::clear_shallow_history()</code>
|
|
and <code>simple_state::clear_deep_history()</code></li>
|
|
</ul>
|
|
<p>11 January 2004:</p>
|
|
<ul>
|
|
<li>Finished reference documentation</li>
|
|
<li>Updated Copyright notices</li>
|
|
</ul>
|
|
<p>12 December 2003:</p>
|
|
<ul>
|
|
<li><b>Thanks to Mitsuo Fukasawa the tutorial is now also available in
|
|
Japanese!!!</b></li>
|
|
<li>Added a state type information facility</li>
|
|
<li>Added reference (unfinished) and configuration documentation and updated
|
|
other documents</li>
|
|
<li>Various code brush-ups (no breaking changes)</li>
|
|
</ul>
|
|
<p>12 October 2003:</p>
|
|
<ul>
|
|
<li><b>Breaking change</b>: Removed <code>rtti_policy<></code> from the
|
|
interface. By default, the library now uses its own (often faster) RTTI
|
|
implementation. Users can demand the use of native C++ RTTI by defining
|
|
<code>BOOST_FSM_USE_NATIVE_RTTI</code>. This change only affects users who
|
|
customized <code>state_machine<></code>, <code>asynchronous_state_machine<></code>
|
|
or <code>worker<></code></li>
|
|
<li><b>Breaking change</b>: Reordered template arguments of <code>
|
|
state_machine<></code> and <code>asynchronous_state_machine<></code>. This
|
|
change only affects users who customized <code>state_machine<></code> or
|
|
<code>asynchronous_state_machine<></code></li>
|
|
<li>Added shallow/deep history support and updated documentation accordingly</li>
|
|
<li>Added various compile-time sanity checks</li>
|
|
<li>Added 1 FAQ (asked by Mitsuo Fukasawa)</li>
|
|
</ul>
|
|
<p>16 August, 2003:</p>
|
|
<ul>
|
|
<li>Added <code>asynchronous_state_machine<></code> and <code>worker<></code>
|
|
and updated documentation accordingly</li>
|
|
<li>Various minor bug fixes and code improvements (no breaking interface
|
|
changes)</li>
|
|
<li>Added Keyboard and PingPong examples</li>
|
|
<li>Added .pdf documentation</li>
|
|
</ul>
|
|
<p>08 June, 2003:</p>
|
|
<ul>
|
|
<li>Added 3 FAQs (asked by Bohdan) & 1 definition</li>
|
|
<li>Removed the superfluous public derivation specifiers in the tutorial and
|
|
the examples as suggested by Aleksey Gurtovoy</li>
|
|
<li>Various code improvements (no interface changes)</li>
|
|
<li>Various html improvements</li>
|
|
</ul>
|
|
<hr>
|
|
<p>Revised
|
|
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 February, 2004<!--webbot bot="Timestamp" endspan i-checksum="40415" --></p>
|
|
<p><i>Copyright © <a href="mailto:ah2003@gmx.net">Andreas Huber Dönni</a>
|
|
2003-2004. Use, modification and distribution are subject to the Boost
|
|
Software License, Version 1.0. (See accompanying file
|
|
<a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
|
<a href="http://www.boost.org/LICENSE_1_0.txt">
|
|
http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
|
|
|
|
</body>
|
|
|
|
</html>
|