57Command::Command(
const QString& p_sCommand,
const QJsonObject& p_qCommandDescription,
bool p_bIsJson, QObject* parent)
62 this->
m_sDescription = p_qCommandDescription.value(QString(
"description")).toString();
64 QJsonObject t_jsonObjectParameter = p_qCommandDescription.value(QString(
"parameters")).toObject();
66 QJsonObject::Iterator it;
68 for (it = t_jsonObjectParameter.begin(); it != t_jsonObjectParameter.end(); ++it) {
69 QJsonValue t_jsonValueType = it.value().toObject().value(QString(
"type"));
70 QMetaType t_metaType = QMetaType::fromName(t_jsonValueType.toString().toUtf8().constData());
72 this->m_qListParamNames.push_back(it.key());
73 this->m_qListParamValues.push_back(QVariant(t_metaType));
74 this->m_qListParamDescriptions.push_back(it.value().toObject().value(QString(
"description")).toString());
80Command::Command(
const QString& p_sCommand,
const QString& p_sDescription,
bool p_bIsJson, QObject* parent)
91 const QStringList& p_qListParamNames,
const QList<QVariant>& p_qListParamValues,
bool p_bIsJson, QObject* parent)
100 for (qint32 i = 0; i < p_qListParamValues.size(); ++i)
107 const QStringList& p_qListParamNames,
const QList<QVariant>& p_qListParamValues,
const QStringList& p_vecParameterDescriptions,
bool p_bIsJson, QObject* parent)
113 if (p_qListParamNames.size() == p_qListParamValues.size()) {
114 if (p_qListParamValues.size() == p_vecParameterDescriptions.size()) {
115 m_qListParamNames = p_qListParamNames;
116 m_qListParamValues = p_qListParamValues;
117 m_qListParamDescriptions = p_vecParameterDescriptions;
120 qCritical(
"error: description vector hasn't the same size like parameter map.\n");
128: QObject(p_Command.parent())
157 if (t_commandManager) {
158 emit t_commandManager->
response(p_sReply, *
this);
168 if (t_commandManager) {
177 QJsonObject p_jsonCommandObject;
180 QJsonObject t_jsonAllParametersObject;
182 QJsonObject t_jsonParameterObject;
185 t_jsonAllParametersObject.insert(
m_qListParamNames[i], QJsonValue(t_jsonParameterObject));
187 p_jsonCommandObject.insert(
"parameters", QJsonValue(t_jsonAllParametersObject));
189 return p_jsonCommandObject;
196 QStringList p_stringCommandList;
200 QString t_sParameters;
202 t_sParameters.append(
"[");
204 t_sParameters.append(
"]");
206 p_stringCommandList << t_sParameters;
210 return p_stringCommandList;
217 QString p_stringCommand;
219 QString t_sParameters;
225 t_sParameters.append(
",");
228 p_stringCommand.append(QString(
"\"%1\":{%2}").arg(
m_sCommand).arg(t_sParameters));
230 return p_stringCommand;
256 return defaultVariant;
266 return defaultVariant;
276 return defaultVariant;
Typed, parameter-bearing command object that round-trips between mne-cpp clients and mne_rt_server.
Per-component registry of COMLIB::Command schemas; receives COMLIB::RawCommand from the parser and di...
Real-time client/server communication primitives for talking to mne_rt_server.
QStringList toStringList() const
QJsonObject toJsonObject() const
void reply(const QString &p_sReply)
QStringList m_qListParamDescriptions
QStringList m_qListParamNames
Command & operator=(const Command &rhs)
Command(bool p_bIsJson=true, QObject *parent=0)
QList< QVariant > m_qListParamValues
void executed(Command p_command)
QString toStringReadySend() const
QVariant & operator[](const QString &key)
Observer-side registry of Command schemas a subsystem accepts from the shared CommandParser.
void response(QString p_sReply, Command p_command)
void triggered(Command p_command)
void insert(const QJsonDocument &p_jsonDocument)