Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The Boost Statechart Library - Definitions

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

The Boost Statechart Library

UML to Boost.Statechart mapping summary

Contents

State machine
States
Normal state
Initial pseudostate
Final pseudostate
Shallow history pseudostate
Deep history pseudostate
Junction point
Dynamic choice point
Join and fork bars
Events
Call event
Signal event
Time event
Change event
Reactions
Guard
Transition
Deferral
Internal transition (in-state reaction)
Actions
Entry action
Exit action
Transition action
Do activity

State machine

States

Normal state

  • Состояние определяется путем выделения класса из шаблонов классовsimple_stateилиstate;пример
  • Положение государства в государственной иерархии определяется тем, что передается как шаблонный параметрContext.Внешние состоянияпередаютstate_machine<>илиasynchronous_state_machine<>подтип, к которому они принадлежат, внутренние состояния передают свое прямое внешнее состояние;пример
  • Состояние можно сделать членом определенной ортогональной области, пройдя инстанциацию шаблона классаorthogonal, вложенного во внешнее состояние;пример

Initial pseudostate

  • Состояние, которое первоначально введено, определяется параметрами шаблона, а не переходом по умолчанию из исходного псевдосостояния (в Boost.Statechart такого нет).
  • Дляstate_machine<>иasynchronous_state_machine<>состояния, которое первоначально введено, необходимо указать параметр шаблонаInitialState;пример
  • Дляsimple_state<>иstate<>внутреннее состояние (состояния), которое первоначально вводится/вводится, может быть определено параметром шаблонаInnerInitial;пример

Final pseudostate

  • В Boost нет такого понятия, как окончательное псевдогосударство. государственный
  • Эта функциональность реализуется с помощью специальной реакции (termination<>) и специальной функции реакции (simple_state<>::terminate());пример

Shallow history pseudostate

  • Неглубокая цель перехода истории или поверхностное внутреннее начальное состояние истории могут быть определеныshallow_history<>.

Deep history pseudostate

  • Цель глубокого перехода истории или внутреннее начальное состояние глубокой истории могут быть определеныdeep_history<>;пример.

Junction point

Dynamic choice point

  • Не существует (пока?) в Ростове. Государственная карта;обоснование

Join and fork bars

Events

  • Событие определяется путем выделения класса изeventшаблона класса;пример
  • Нет никакой разницы между сигналом и вызовом событий, см. ниже

Call event

Signal event

Time event

  • В Росте не существует. государственный
  • Событие времени может быть смоделировано с помощью внешнего таймера, который запускается в действии входа и останавливается в действии выхода конкретного состояния. При запуске таймера рекомендуется звонитьfifo_scheduler<>::queue_event(), когда время истекает.

Change event

  • В Росте не существует. государственный
  • Событие изменения может быть смоделировано путем упаковки контролируемых переменных во внешнюю обертку методамиgetиset. Всякий раз, когдаsetобертка вызывает соответствующее событие

Reactions

Guard

Transition

Deferral

Internal transition (in-state reaction)

Actions

Entry action

  • Действие входа в состояние может быть определено путем добавления конструктора к классу состояния;пример

Exit action

  • Действие выхода из состояния может быть определено путем добавления деструктора к классу состояния;пример

Transition action

  • Переходное действие может быть определено путем передачи указателя функции, ссылающегося на действие либоtransition<>, либоsimple_state<>::transit<>();пример

Do activity

  • Не поддерживается в росте. государственный
  • Активность do может быть смоделирована отдельным потоком, который запускается в действии входа и отменяется (!) в действии выхода конкретного состояния

Valid HTML 4.01 Transitional

Пересмотрено03 декабря 2006 года03 December, 2006[ORIG_END] -->

Авторское право и копия; 2003—2006Андреас Хубер Dönni2006 Andreas Huber Dönni[ORIG_END] -->

Распространяется в соответствии с Лицензией на программное обеспечение Boost, версия 1.0. (См. сопроводительный файлLICENSE_1_0.txtили копию на) http://www.boost.org/LICENSE_1_0.txt)

Статья The Boost Statechart Library - Definitions раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:54:50/0.0092840194702148/1