72Command::Command(
const QString &p_sCommand,
const QJsonObject &p_qCommandDescription,
bool p_bIsJson, QObject *parent)
77 this->
m_sDescription = p_qCommandDescription.value(QString(
"description")).toString();
79 QJsonObject t_jsonObjectParameter = p_qCommandDescription.value(QString(
"parameters")).toObject();
81 QJsonObject::Iterator it;
83 for(it = t_jsonObjectParameter.begin(); it != t_jsonObjectParameter.end(); ++it)
85 QJsonValue t_jsonValueType = it.value().toObject().value(QString(
"type"));
86 QMetaType t_metaType = QMetaType::fromName(t_jsonValueType.toString().toUtf8().constData());
88 this->m_qListParamNames.push_back(it.key());
89 this->m_qListParamValues.push_back(QVariant(t_metaType));
90 this->m_qListParamDescriptions.push_back(it.value().toObject().value(QString(
"description")).toString());
96Command::Command(
const QString &p_sCommand,
const QString &p_sDescription,
bool p_bIsJson, QObject *parent)
107 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
bool p_bIsJson, QObject *parent)
116 for(qint32 i = 0; i < p_qListParamValues.size(); ++i)
123 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
const QStringList &p_vecParameterDescriptions,
bool p_bIsJson, QObject *parent)
129 if(p_qListParamNames.size() == p_qListParamValues.size())
131 if(p_qListParamValues.size() == p_vecParameterDescriptions.size())
133 m_qListParamNames = p_qListParamNames;
134 m_qListParamValues = p_qListParamValues;
135 m_qListParamDescriptions = p_vecParameterDescriptions;
140 qCritical(
"error: description vector hasn't the same size like parameter map.\n");
148: QObject(p_Command.parent())
177 if(t_commandManager) {
178 emit t_commandManager->
response(p_sReply, *
this);
188 if(t_commandManager) {
197 QJsonObject p_jsonCommandObject;
200 QJsonObject t_jsonAllParametersObject;
203 QJsonObject t_jsonParameterObject;
206 t_jsonAllParametersObject.insert(
m_qListParamNames[i], QJsonValue(t_jsonParameterObject));
208 p_jsonCommandObject.insert(
"parameters", QJsonValue(t_jsonAllParametersObject));
210 return p_jsonCommandObject;
217 QStringList p_stringCommandList;
221 QString t_sParameters;
224 t_sParameters.append(
"[");
226 t_sParameters.append(
"]");
228 p_stringCommandList << t_sParameters;
232 return p_stringCommandList;
239 QString p_stringCommand;
241 QString t_sParameters;
248 t_sParameters.append(
",");
251 p_stringCommand.append(QString(
"\"%1\":{%2}").arg(
m_sCommand).arg(t_sParameters));
253 return p_stringCommand;
279 return defaultVariant;
289 return defaultVariant;
299 return defaultVariant;
Declaration of the CommandManager Class.
Declaration of the Command Class.
Real-time client/server communication (commands, raw data streaming).
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)
Registry of available commands; dispatches parsed command strings to the matching Command handler.
void response(QString p_sReply, Command p_command)
void triggered(Command p_command)
void insert(const QJsonDocument &p_jsonDocument)