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)
70 QJsonValue t_jsonValueType = it.value().toObject().value(QString(
"type"));
71 QMetaType t_metaType = QMetaType::fromName(t_jsonValueType.toString().toUtf8().constData());
73 this->m_qListParamNames.push_back(it.key());
74 this->m_qListParamValues.push_back(QVariant(t_metaType));
75 this->m_qListParamDescriptions.push_back(it.value().toObject().value(QString(
"description")).toString());
81Command::Command(
const QString &p_sCommand,
const QString &p_sDescription,
bool p_bIsJson, QObject *parent)
92 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
bool p_bIsJson, QObject *parent)
101 for(qint32 i = 0; i < p_qListParamValues.size(); ++i)
108 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
const QStringList &p_vecParameterDescriptions,
bool p_bIsJson, QObject *parent)
114 if(p_qListParamNames.size() == p_qListParamValues.size())
116 if(p_qListParamValues.size() == p_vecParameterDescriptions.size())
118 m_qListParamNames = p_qListParamNames;
119 m_qListParamValues = p_qListParamValues;
120 m_qListParamDescriptions = p_vecParameterDescriptions;
125 qCritical(
"error: description vector hasn't the same size like parameter map.\n");
133: QObject(p_Command.parent())
162 if(t_commandManager) {
163 emit t_commandManager->
response(p_sReply, *
this);
173 if(t_commandManager) {
182 QJsonObject p_jsonCommandObject;
185 QJsonObject t_jsonAllParametersObject;
188 QJsonObject t_jsonParameterObject;
191 t_jsonAllParametersObject.insert(
m_qListParamNames[i], QJsonValue(t_jsonParameterObject));
193 p_jsonCommandObject.insert(
"parameters", QJsonValue(t_jsonAllParametersObject));
195 return p_jsonCommandObject;
202 QStringList p_stringCommandList;
206 QString t_sParameters;
209 t_sParameters.append(
"[");
211 t_sParameters.append(
"]");
213 p_stringCommandList << t_sParameters;
217 return p_stringCommandList;
224 QString p_stringCommand;
226 QString t_sParameters;
233 t_sParameters.append(
",");
236 p_stringCommand.append(QString(
"\"%1\":{%2}").arg(
m_sCommand).arg(t_sParameters));
238 return p_stringCommand;
264 return defaultVariant;
274 return defaultVariant;
284 return defaultVariant;
Per-component registry of COMLIB::Command schemas; receives COMLIB::RawCommand from the parser and di...
Typed, parameter-bearing command object that round-trips between mne-cpp clients and mne_rt_server.
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)