Skip to content
Snippets Groups Projects

armem/dev => master

Merged Fabian Reister requested to merge armem/dev into master
6 files
+ 50
75
Compare changes
  • Side-by-side
  • Inline
Files
6
#include "aron_conversions.h"
namespace armarx::armem
{
std::map<armarx::eStateType, armarx::armem::arondto::Statechart::StateType> toAronStateTypeMap =
{
{eNormalState, armarx::armem::arondto::Statechart::StateType::NORMAL},
{eFinalState, armarx::armem::arondto::Statechart::StateType::FINAL},
{eRemoteState, armarx::armem::arondto::Statechart::StateType::REMOTE},
{eDynamicRemoteState, armarx::armem::arondto::Statechart::StateType::DYNAMIC_REMOTE},
{eUndefined, armarx::armem::arondto::Statechart::StateType::UNDEFINED},
};
std::map<armarx::armem::arondto::Statechart::StateType, armarx::eStateType> fromAronStateTypeMap =
{
{armarx::armem::arondto::Statechart::StateType::NORMAL, eNormalState},
{armarx::armem::arondto::Statechart::StateType::FINAL, eFinalState},
{armarx::armem::arondto::Statechart::StateType::REMOTE, eRemoteState},
{armarx::armem::arondto::Statechart::StateType::DYNAMIC_REMOTE, eDynamicRemoteState},
{armarx::armem::arondto::Statechart::StateType::UNDEFINED, eUndefined},
};
void fromAron(const arondto::Statechart::StateType& dto, eStateType& bo)
{
if (fromAronStateTypeMap.find(dto) != fromAronStateTypeMap.end())
{
bo = fromAronStateTypeMap[dto];
}
else
{
bo = eStateType::eUndefined;
}
}
void toAron(arondto::Statechart::StateType& dto, const eStateType& bo)
{
if (toAronStateTypeMap.find(bo) != toAronStateTypeMap.end())
{
dto.value = toAronStateTypeMap[bo].value;
}
else
{
dto.value = arondto::Statechart::StateType::UNDEFINED;
}
}
void fromAron(const arondto::Statechart::ParameterMap& dto, StateParameterMap& bo)
{
// todo: implement
// for (auto const& [key, val] : dto.parameters)
// {
// fromAron(val, ...)
// bo.insert(key, val);
// }
}
void toAron(arondto::Statechart::ParameterMap& dto, const StateParameterMap& bo)
{
for (auto const& [key, val] : bo)
{
dto.parameters[key] = val->value->toString();
}
}
void fromAron(const arondto::Statechart::Transition& dto, ProfilerStatechartTransitionWithParameters& bo)
{
bo.processId = dto.processId;
bo.sourceStateIdentifier = dto.sourceStateIdentifier;
bo.targetStateIdentifier = dto.targetStateIdentifier;
bo.eventName = dto.eventName;
fromAron(dto.targetStateType, bo.targetStateType);
fromAron(dto.inputParameters, bo.inputParameters);
fromAron(dto.localParameters, bo.localParameters);
fromAron(dto.outputParameters, bo.outputParameters);
}
void toAron(arondto::Statechart::Transition& dto, const ProfilerStatechartTransitionWithParameters& bo)
{
dto.processId = bo.processId;
dto.sourceStateIdentifier = bo.sourceStateIdentifier;
dto.targetStateIdentifier = bo.targetStateIdentifier;
dto.eventName = bo.eventName;
toAron(dto.targetStateType, bo.targetStateType);
toAron(dto.inputParameters, bo.inputParameters);
toAron(dto.localParameters, bo.localParameters);
toAron(dto.outputParameters, bo.outputParameters);
}
}
\ No newline at end of file
Loading