13#ifndef RTCTK_COMPONENTFRAMEWORK_MODELBUILDERBASE_HPP
14#define RTCTK_COMPONENTFRAMEWORK_MODELBUILDERBASE_HPP
45 LOG4CPLUS_DEBUG(logger,
"StateMachine.DEBUG\n" +
Export(
sm,
"debug").str());
46 LOG4CPLUS_DEBUG(logger,
"StateMachine.SCXML\n" +
Export(
sm,
"scxml").str());
54 auto ends_with = [](std::string
const& value, std::string
const& ending) {
55 if (ending.size() > value.size()) {
58 return std::equal(ending.rbegin(), ending.rend(), value.rbegin());
61 if (ends_with(file_name,
"scxml")) {
62 std::ofstream out(file_name);
64 }
else if (ends_with(file_name,
"puml")) {
65 std::ofstream out(file_name);
67 }
else if (ends_with(file_name,
"smcat")) {
68 std::ofstream out(file_name);
70 }
else if (ends_with(file_name,
"debug")) {
71 std::ofstream out(file_name);
74 CII_THROW(
RtctkException,
"Unsupported export format: '" + file_name +
"'");
Base class of the ModelBuilder.
Definition: modelBuilderBase.hpp:35
ModelBuilderBase(StateMachineEngine &engine)
Definition: modelBuilderBase.hpp:37
StateMachineEngine & m_engine
Definition: modelBuilderBase.hpp:80
virtual ~ModelBuilderBase()=default
void ExportModel(std::string const &file_name)
Definition: modelBuilderBase.hpp:53
ModelManipulator mm
Definition: modelBuilderBase.hpp:79
void RegisterModel()
Definition: modelBuilderBase.hpp:43
StateMachine sm
Definition: modelBuilderBase.hpp:78
Class that provides methods to manipulate the state machine model.
Definition: modelManipulator.hpp:27
The RtctkException class is the base class for all Rtctk exceptions.
Definition: exceptions.hpp:237
Definition: stateMachineEngine.hpp:35
void RegisterModel(const std::string &name, const std::string &model)
Register a new state machine model.
Definition: stateMachineEngine.cpp:73
log4cplus::Logger & GetLogger(const std::string &name="app")
Get handle to a specific logger.
Definition: logger.cpp:180
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:22
std::stringstream Export(StateMachine &sm, std::string const &format)
Export the in-memory state machine model in various formats.
Definition: modelExport.cpp:582
Wrapper around the SCXML State Machine Engine.