]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/statechart/doc/index.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / statechart / doc / index.html
CommitLineData
7c673cae
FG
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
3<html>
4<head>
5 <meta http-equiv="Content-Language" content="en-us">
6 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
7 <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
8 <meta name="ProgId" content="FrontPage.Editor.Document">
9 <link rel="stylesheet" type="text/css" href="../../../boost.css">
10
11 <title>The Boost Statechart Library - Overview</title>
12</head>
13
14<body link="#0000FF" vlink="#800080">
15 <table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
16 "header">
17 <tr>
18 <td valign="top" width="300">
19 <h3><a href="../../../index.htm"><img alt="C++ Boost" src=
20 "../../../boost.png" border="0" width="277" height="86"></a></h3>
21 </td>
22
23 <td valign="top">
24 <h1 align="center">The Boost Statechart Library</h1>
25
26 <p align="center">(formerly known as boost::fsm)</p>
27
28 <h2 align="center">Overview</h2>
29 </td>
30 </tr>
31 </table>
32 <hr>
33
34 <h2>Contents</h2>
35
36 <dl class="index">
37 <dt><a href="#Overview">Overview</a></dt>
38
39 <dd><a href="#SupportedPlatforms">Supported platforms</a></dd>
40
41 <dd><a href="#GettingStarted">Getting started</a></dd>
42
43 <dd><a href="#Audience">Audience</a></dd>
44
45 <dt>&nbsp;</dt>
46
47 <dt><a href="tutorial.html">Tutorial</a> [pdf: <a href=
48 "tutorial.pdf">English</a>, <a href=
49 "http://prdownloads.sourceforge.jp/jyugem/7127/fsm-tutorial-jp.pdf">Japanese</a>]</dt>
50
51 <dt><a href="uml_mapping.html">UML to Boost.Statechart mapping
52 summary</a></dt>
53
54 <dt><a href="faq.html">Frequently Asked Questions (FAQs)</a></dt>
55
56 <dt><a href="configuration.html">Configuration</a></dt>
57
58 <dt><a href="definitions.html">Definitions</a></dt>
59
60 <dt><a href="reference.html">Reference</a> [pdf: <a href=
61 "reference.pdf">English</a>]</dt>
62
63 <dt><a href="rationale.html">Rationale</a> [pdf: <a href=
64 "rationale.pdf">English</a>]</dt>
65
66 <dt><a href="performance.html">Performance</a></dt>
67
68 <dt><a href="acknowledgments.html">Acknowledgments</a></dt>
69
70 <dt><a href="future_and_history.html#ToDoList">To-do list</a></dt>
71
72 <dt><a href="future_and_history.html#ChangeHistory">Change
73 history</a></dt>
74 </dl>
75 <hr>
76
77 <h2><a name="Overview" id="Overview">Overview</a></h2>
78
79 <p>Welcome to Boost.Statechart, a C++ library for finite state machines.
80 Features include:</p>
81
82 <ul>
83 <li>Straightforward transformation from UML statechart to executable C++
84 code and vice versa. Currently, this needs to be done manually both ways
85 but it should not be difficult to automate these tasks</li>
86
87 <li>Comprehensive <a href=
88 "http://www.omg.org/cgi-bin/doc?formal/03-03-01">UML semantics</a>
89 support:
90
91 <ul>
92 <li>Hierarchical (composite, nested) states</li>
93
94 <li>Orthogonal (concurrent) states</li>
95
96 <li>Entry-, exit- and transition-actions</li>
97
98 <li>Guards</li>
99
100 <li>Shallow/deep history</li>
101
102 <li>Event deferral</li>
103 </ul>
104 </li>
105
106 <li>Error handling support</li>
107
108 <li>Maximum type-safety</li>
109
110 <li>Compile-time statechart validation</li>
111
112 <li>Support for asynchronous state machines and multi-threading</li>
113
114 <li>State-local storage</li>
115
116 <li>Generic design allowing for the customization of memory management,
117 error handling and threading</li>
118 </ul>
119
120 <h3><a name="SupportedPlatforms" id="SupportedPlatforms">Supported
121 platforms</a></h3>
122
123 <p>Whether and how Boost.Statechart will work on your platform is best
124 determined on the <a href=
125 "http://www.boost.org/development/tests/trunk/developer/statechart.html">
126 status page</a>. If the cells in your compilers column are all green, the
127 library should work as advertised. Cells of different color indicate
128 possible problems; follow the links for details. Before employing the
129 library I would also advise to run the tests (see <a href=
130 "#GettingStarted">Getting started</a>) on your particular platform in all
131 the modes (debug, release, etc.) that are later used during development
132 (the status page shows debug mode results only). The closer the test
133 compiler switches mirror the ones that are later used during development,
134 the less likely are future surprises. An example of such a surprise is
135 Intel 9.0 with MSVC 7.1 base toolset, where DllTestNormal and DllTestNative
136 pass in debug mode but fail in release mode.</p>
137
138 <h3><a name="GettingStarted" id="GettingStarted">Getting started</a></h3>
139
140 <ol>
141 <li>Follow the steps 1-4 described on the <a href=
142 "../../../more/getting_started.html">Boost Getting Started Page</a>.
143 Since Boost.Statechart is a header-only library, you should now know
144 enough to compile the examples in the tutorial in your favorite
145 environment (except PingPong which requires Boost.Thread binaries)</li>
146
147 <li>Optional: If you want to compile the PingPong example or use <a href=
148 "reference.html#ClassTemplatefifo_scheduler">fifo_scheduler&lt;&gt;</a>
149 in your project, you need to get hold of the Boost.Thread binaries and
150 link against them, see steps 5-6 on the Boost Getting Started Page</li>
151
152 <li>Optional: If you want to run the tests, you need to get the bjam
153 executable, as described under step 5.2 on the Boost Getting Started
154 Page. After doing so, bjam should be installed in your <code>PATH</code>.
155 Open a command prompt and change the current directory to
156 <code>boost_1_38_0/libs/statechart/test</code>. Type
157 <pre>
158bjam --toolset=<i>your-toolset</i>
159</pre>
160
161 <p>(where <code><i>your-toolset</i></code> is one of the names
162 documented under step 5.2.2 on the Boost Getting Started Page) and hit
163 CR. After the test run, failures (if any) are indicated at the end of
164 the output, in the form of&nbsp; a "<code>...failed updating X
165 targets...</code>" message. For some platforms certain failures are
166 expected, see <a href="#SupportedPlatforms">Supported
167 platforms</a>.</p>
168 </li>
169 </ol>
170
171 <h3><a name="Audience" id="Audience">Audience</a></h3>
172
173 <p>Throughout all Boost.Statechart documentation it is assumed that the
174 reader is familiar with the state machine concept, UML statecharts and most
175 of the UML state machine terminology. The following links might be
176 interesting if this is not the case:</p>
177
178 <ul>
179 <li><a href=
180 "http://www.objectmentor.com/resources/articles/umlfsm.pdf">http://www.objectmentor.com/resources/articles/umlfsm.pdf</a>
181 introduces state machines and UML statecharts</li>
182
183 <li><a href=
184 "http://www.sts.tu-harburg.de/teaching/ws-99.00/OOA+D/StateDiagrams.pdf">http://www.sts.tu-harburg.de/teaching/ws-99.00/OOA+D/StateDiagrams.pdf</a>
185 explains most of the UML statechart elements and terminology</li>
186
187 <li>The inventor of statecharts, David Harel, presents a thorough but
188 still very readable discussion in his original paper: : <a href=
189 "http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf">
190 http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf</a></li>
191
192 <li>The UML specifications (formal) can be found here: <a href=
193 "http://www.omg.org/cgi-bin/doc?formal/03-03-01">http://www.omg.org/cgi-bin/doc?formal/03-03-01</a>
194 (see chapters 2.12 and 3.74)</li>
195 </ul>
196
197 <p>Some of the used terminology cannot be found in the UML specifications,
198 please see <a href="definitions.html">Definitions</a> for more
199 information.</p>
200 <hr>
201
202 <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
203 "../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional"
204 height="31" width="88"></a></p>
205
206 <p>Revised
207 <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 April, 2007<!--webbot bot="Timestamp" endspan i-checksum="30014" --></p>
208
209 <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
210 <a href="contact.html">Andreas Huber D&ouml;nni</a></i></p>
211
212 <p><i>Distributed under the Boost Software License, Version 1.0. (See
213 accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
214 copy at <a href=
215 "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
216</body>
217</html>