8 #include "commandmanager.h"
38 , m_bIsJson(p_bIsJson)
46 Command::Command(
const QString &p_sCommand,
const QJsonObject &p_qCommandDescription,
bool p_bIsJson, QObject *parent)
48 , m_bIsJson(p_bIsJson)
50 this->m_sCommand = p_sCommand;
51 this->m_sDescription = p_qCommandDescription.value(QString(
"description")).toString();
53 QJsonObject t_jsonObjectParameter = p_qCommandDescription.value(QString(
"parameters")).toObject();
55 QJsonObject::Iterator it;
57 for(it = t_jsonObjectParameter.begin(); it != t_jsonObjectParameter.end(); ++it)
59 QJsonValue t_jsonValueType = it.value().toObject().value(QString(
"type"));
60 QVariant::Type t_type = QVariant::nameToType(t_jsonValueType.toString().toLatin1().constData());
62 this->m_qListParamNames.push_back(it.key());
63 this->m_qListParamValues.push_back(QVariant(t_type));
64 this->m_qListParamDescriptions.push_back(it.value().toObject().value(QString(
"description")).toString());
71 Command::Command(
const QString &p_sCommand,
const QString &p_sDescription,
bool p_bIsJson, QObject *parent)
73 , m_sCommand(p_sCommand)
74 , m_sDescription(p_sDescription)
75 , m_bIsJson(p_bIsJson)
84 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
bool p_bIsJson, QObject *parent)
86 , m_sCommand(p_sCommand)
87 , m_sDescription(p_sDescription)
88 , m_bIsJson(p_bIsJson)
90 m_qListParamNames = p_qListParamNames;
91 m_qListParamValues = p_qListParamValues;
93 for(qint32 i = 0; i < p_qListParamValues.size(); ++i)
94 m_qListParamDescriptions.append(
"");
101 const QStringList &p_qListParamNames,
const QList<QVariant> &p_qListParamValues,
const QStringList &p_vecParameterDescriptions,
bool p_bIsJson, QObject *parent)
103 , m_sCommand(p_sCommand)
104 , m_sDescription(p_sDescription)
105 , m_bIsJson(p_bIsJson)
107 if(p_qListParamNames.size() == p_qListParamValues.size())
109 if(p_qListParamValues.size() == p_vecParameterDescriptions.size())
111 m_qListParamNames = p_qListParamNames;
112 m_qListParamValues = p_qListParamValues;
113 m_qListParamDescriptions = p_vecParameterDescriptions;
118 printf(
"error: description vector hasn't the same size like parameter map.\n");
127 : QObject(p_Command.parent())
128 , m_sCommand(p_Command.m_sCommand)
129 , m_sDescription(p_Command.m_sDescription)
130 , m_qListParamNames(p_Command.m_qListParamNames)
131 , m_qListParamValues(p_Command.m_qListParamValues)
132 , m_qListParamDescriptions(p_Command.m_qListParamDescriptions)
133 , m_bIsJson(p_Command.m_bIsJson)
161 emit t_commandManager->
response(p_sReply, *
this);
179 QJsonObject p_jsonCommandObject;
180 p_jsonCommandObject.insert(
"description", QJsonValue(m_sDescription));
182 QJsonObject t_jsonAllParametersObject;
183 for(qint32 i = 0; i < m_qListParamValues.size(); ++i)
185 QJsonObject t_jsonParameterObject;
186 t_jsonParameterObject.insert(
"description",QJsonValue(m_qListParamDescriptions[i]));
187 t_jsonParameterObject.insert(
"type",QString(m_qListParamValues[i].typeName()));
188 t_jsonAllParametersObject.insert(m_qListParamNames[i], QJsonValue(t_jsonParameterObject));
190 p_jsonCommandObject.insert(
"parameters", QJsonValue(t_jsonAllParametersObject));
192 return p_jsonCommandObject;
200 QStringList p_stringCommandList;
202 p_stringCommandList << m_sCommand;
204 QString t_sParameters;
205 for(qint32 i = 0; i < m_qListParamDescriptions.size(); ++i)
207 t_sParameters.append(
"[");
208 t_sParameters.append(m_qListParamDescriptions[i]);
209 t_sParameters.append(
"]");
211 p_stringCommandList << t_sParameters;
213 p_stringCommandList << m_sDescription;
215 return p_stringCommandList;
223 QString p_stringCommand;
225 QString t_sParameters;
226 for(qint32 i = 0; i < m_qListParamNames.size(); ++i)
229 t_sParameters.append(QString(
"\"%1\":\"%2\"").arg(m_qListParamNames[i]).arg(m_qListParamValues[i].toString()));
231 if(i < m_qListParamNames.size()-1)
232 t_sParameters.append(
",");
235 p_stringCommand.append(QString(
"\"%1\":{%2}").arg(m_sCommand).arg(t_sParameters));
237 return p_stringCommand;
247 m_sCommand = rhs.m_sCommand;
248 m_sDescription = rhs.m_sDescription;
249 m_qListParamNames = rhs.m_qListParamNames;
250 m_qListParamValues = rhs.m_qListParamValues;
251 m_qListParamDescriptions = rhs.m_qListParamDescriptions;
262 if(m_qListParamNames.contains(key))
263 return m_qListParamValues[m_qListParamNames.indexOf(key)];
265 return defaultVariant;
273 if(m_qListParamValues.size() > idx)
274 return m_qListParamValues[idx];
276 return defaultVariant;
284 if(m_qListParamNames.contains(key))
285 return m_qListParamValues[m_qListParamNames.indexOf(key)];
287 return defaultVariant;
QJsonObject toJsonObject() const
Declaration of the Command Class.
void response(QString p_sReply, Command p_command)
Command(bool p_bIsJson=true, QObject *parent=0)
QVariant & operator[](const QString &key)
void triggered(Command p_command)
void reply(const QString &p_sReply)
QStringList toStringList() const
QString toStringReadySend() const
void executed(Command p_command)
Command & operator=(const Command &rhs)