37Command::Command(
const QString &p_sCommand,
const QJsonObject &p_qCommandDescription,
bool p_bIsJson, QObject *parent)
42 this->
m_sDescription = p_qCommandDescription.value(QString(
"description")).toString();
44 QJsonObject t_jsonObjectParameter = p_qCommandDescription.value(QString(
"parameters")).toObject();
46 QJsonObject::Iterator it;
48 for(it = t_jsonObjectParameter.begin(); it != t_jsonObjectParameter.end(); ++it)
50 QJsonValue t_jsonValueType = it.value().toObject().value(QString(
"type"));
51 QMetaType t_metaType = QMetaType::fromName(t_jsonValueType.toString().toUtf8().constData());
53 this->m_qListParamNames.push_back(it.key());
54 this->m_qListParamValues.push_back(QVariant(t_metaType));
55 this->m_qListParamDescriptions.push_back(it.value().toObject().value(QString(
"description")).toString());
61Command::Command(
const QString &p_sCommand,
const QString &p_sDescription,
bool p_bIsJson, QObject *parent)
72 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
bool p_bIsJson, QObject *parent)
81 for(qint32 i = 0; i < p_qListParamValues.size(); ++i)
88 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
const QStringList &p_vecParameterDescriptions,
bool p_bIsJson, QObject *parent)
94 if(p_qListParamNames.size() == p_qListParamValues.size())
96 if(p_qListParamValues.size() == p_vecParameterDescriptions.size())
98 m_qListParamNames = p_qListParamNames;
99 m_qListParamValues = p_qListParamValues;
100 m_qListParamDescriptions = p_vecParameterDescriptions;
105 printf(
"error: description vector hasn't the same size like parameter map.\n");
113: QObject(p_Command.parent())
142 if(t_commandManager) {
143 emit t_commandManager->
response(p_sReply, *
this);
153 if(t_commandManager) {
162 QJsonObject p_jsonCommandObject;
165 QJsonObject t_jsonAllParametersObject;
168 QJsonObject t_jsonParameterObject;
171 t_jsonAllParametersObject.insert(
m_qListParamNames[i], QJsonValue(t_jsonParameterObject));
173 p_jsonCommandObject.insert(
"parameters", QJsonValue(t_jsonAllParametersObject));
175 return p_jsonCommandObject;
182 QStringList p_stringCommandList;
186 QString t_sParameters;
189 t_sParameters.append(
"[");
191 t_sParameters.append(
"]");
193 p_stringCommandList << t_sParameters;
197 return p_stringCommandList;
204 QString p_stringCommand;
206 QString t_sParameters;
213 t_sParameters.append(
",");
216 p_stringCommand.append(QString(
"\"%1\":{%2}").arg(
m_sCommand).arg(t_sParameters));
218 return p_stringCommand;
244 return defaultVariant;
254 return defaultVariant;
264 return defaultVariant;
Declaration of the Command Class.
Real-time client/server communication (commands, raw data streaming).
QStringList toStringList() const
QStringList m_qListParamDescriptions
QJsonObject toJsonObject() const
void reply(const QString &p_sReply)
Command & operator=(const Command &rhs)
Command(bool p_bIsJson=true, QObject *parent=0)
QStringList m_qListParamNames
void executed(Command p_command)
QString toStringReadySend() const
QVariant & operator[](const QString &key)
QList< QVariant > m_qListParamValues
Registry of available commands; dispatches parsed command strings to the matching Command handler.
void triggered(Command p_command)
void response(QString p_sReply, Command p_command)
void insert(const QJsonDocument &p_jsonDocument)