12#ifndef RTCTK_COMPONENTFRAMEWORK_MODELBUILDERBASE_HPP
13#define RTCTK_COMPONENTFRAMEWORK_MODELBUILDERBASE_HPP
44 LOG4CPLUS_DEBUG(logger,
"StateMachine.DEBUG\n" +
Export(
sm,
"debug").str());
45 LOG4CPLUS_DEBUG(logger,
"StateMachine.SCXML\n" +
Export(
sm,
"scxml").str());
53 auto ends_with = [](
const std::string& value,
const std::string& ending) {
54 if (ending.size() > value.size()) {
57 return std::equal(ending.rbegin(), ending.rend(), value.rbegin());
60 if (ends_with(file_name,
"scxml")) {
61 std::ofstream out(file_name);
63 }
else if (ends_with(file_name,
"puml")) {
64 std::ofstream out(file_name);
66 }
else if (ends_with(file_name,
"smcat")) {
67 std::ofstream out(file_name);
69 }
else if (ends_with(file_name,
"debug")) {
70 std::ofstream out(file_name);
73 CII_THROW(
RtctkException,
"Unsupported export format: '" + file_name +
"'");
ModelBuilderBase(StateMachineEngine &engine)
Definition modelBuilderBase.hpp:36
StateMachineEngine & m_engine
Definition modelBuilderBase.hpp:79
virtual ~ModelBuilderBase()=default
ModelManipulator mm
Definition modelBuilderBase.hpp:78
void RegisterModel()
Definition modelBuilderBase.hpp:42
void ExportModel(const std::string &file_name)
Definition modelBuilderBase.hpp:52
StateMachine sm
Definition modelBuilderBase.hpp:77
Class that provides methods to manipulate the state machine model.
Definition modelManipulator.hpp:26
The RtctkException class is the base class for all Rtctk exceptions.
Definition exceptions.hpp:220
Definition stateMachineEngine.hpp:34
log4cplus::Logger & GetLogger(const std::string &name="app")
Get handle to a specific logger.
Definition logger.cpp:191
Logging Support Library based on log4cplus.
Export the state machine model in various formats.
Manipulate the in-memory state machine model.
In-memory representation of the state machine model.
Definition commandReplier.cpp:21
std::stringstream Export(StateMachine &sm, const std::string &format)
Export the in-memory state machine model in various formats.
Definition modelExport.cpp:589
Wrapper around the SCXML State Machine Engine.