1.5.0 b850
The 23rd release of yasmine (Release date: December 18, 2017).
Added
- (C++03) BOOST_BIND_OVER_9 - removes the limit of 7 methods/free functions as parameters for creating behaviors/guards using the assembly macros. The is caused by boost::bind's limitation to 9 arguments.
- (C++11) Y_BEHAVIOR_FREE_ACTION macro for using a free function as a behavior
- (C++11) Y_GUARD_FREE_ACTION macro for using a free function as guard
- yasmine_model:
- new methods to interact with the elements (e.g. get_child, set_parent, ...)
- new methods to interact with the state machine (e.g. remove_event, get_event, remove_transition, get_transition, ...)
- rapidjson_document.hpp as a wrapper for rapidjson/document.h and rapidjson/prettywriter.h
- delete_visitor for deleting elements
- has_error_event to simple state model
- add_deferred_event and remove_deferred_event to state model
- constuctor to easily construct an async simple state model
- setters in transition_model for behavior, guard, triggers, target, source, and kind
- methods to get the element that deferes an event and to check if an element deferes an event
- list of external vertices
Changed
- Y_INVALID_EVENT_CREATION_REQUEST_HANDLE is now „external“
- use essentials and hermes as libraries
- CMake: Adapt to use essentials and hermes as libraries. Applies to examples as well.
- yasmine_model:
- internally use rapidjson_document.hpp instead of document.h
- event_model is now a class and has getters and setters for its properties
- use essentials as a library
- CMake: use external CMakeHelpers files
- libygen:
- use essentials as library
- CMake: use external CMakeHelpers files
- CMake: refactoring of build scripts
- ygen:
- CMake: use external CMakeHelpers files
- CMake: refactoring of build scripts
Fixed
- bug with use of old method signature for macros Y_BEHAVIOR_ACTION and Y_GUARD_ACTION
- yasmine_model:
- read/write error event from/to model file
- read/write region from/to model file: 'pseudostates' list is read for backward compatibility. Just 'vertices' is written.
Changelog can be found on http://yasmine.seadex.de/Changelog.html
Documentation can be found on http://yasmine.seadex.de/libyasmine_(documentation).html