diff options
author | hjk <[email protected]> | 2015-02-02 12:47:51 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2015-02-02 14:46:16 +0000 |
commit | ba05edc6bb2422a0adc2c49b8b351bf6d0f237c7 (patch) | |
tree | a159a412f87f7942d4e4a4d927db4082765c06f8 /src/plugins/debugger/debuggerprotocol.cpp | |
parent | 7005d791c302100bff28519ec2ed7f638c9f77b8 (diff) |
Debugger: Move LldbEngine::Command to debuggerprotocol
Better re-usable over there.
Change-Id: I75b70054d691771efaf5b19680d8a93d2943b5ba
Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/plugins/debugger/debuggerprotocol.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerprotocol.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp index 2c0281d30ca..71786bdb3b7 100644 --- a/src/plugins/debugger/debuggerprotocol.cpp +++ b/src/plugins/debugger/debuggerprotocol.cpp @@ -733,5 +733,124 @@ QString decodeData(const QByteArray &ba, int encoding) return QCoreApplication::translate("Debugger", "<Encoding error>"); } +////////////////////////////////////////////////////////////////////////////////// +// +// DebuggerCommand +// +////////////////////////////////////////////////////////////////////////////////// + +const DebuggerCommand &DebuggerCommand::argHelper(const char *name, const QByteArray &data) const +{ + args.append('"'); + args.append(name); + args.append("\":"); + args.append(data); + args.append(","); + return *this; +} + +QByteArray DebuggerCommand::toData(const QList<QByteArray> &value) +{ + QByteArray res; + foreach (const QByteArray &item, value) { + if (!res.isEmpty()) + res.append(','); + res += item; + } + return '[' + res + ']'; +} + +QByteArray DebuggerCommand::toData(const QHash<QByteArray, QByteArray> &value) +{ + QByteArray res; + QHashIterator<QByteArray, QByteArray> it(value); + while (it.hasNext()) { + it.next(); + if (!res.isEmpty()) + res.append(','); + res += '"' + it.key() + "\":" + it.value(); + } + return '{' + res + '}'; +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, int value) const +{ + return argHelper(name, QByteArray::number(value)); +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, qlonglong value) const +{ + return argHelper(name, QByteArray::number(value)); +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, qulonglong value) const +{ + return argHelper(name, QByteArray::number(value)); +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, const QString &value) const +{ + return arg(name, value.toUtf8().data()); +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, const QByteArray &value) const +{ + return arg(name, value.data()); +} + +const DebuggerCommand &DebuggerCommand::arg(const char *name, const char *value) const +{ + args.append('"'); + args.append(name); + args.append("\":\""); + args.append(value); + args.append("\","); + return *this; +} + +const DebuggerCommand &DebuggerCommand::arg(const char *value) const +{ + args.append("\""); + args.append(value); + args.append("\","); + return *this; +} + +const DebuggerCommand &DebuggerCommand::beginList(const char *name) const +{ + if (name) { + args += '"'; + args += name; + args += "\":"; + } + args += '['; + return *this; +} + +void DebuggerCommand::endList() const +{ + if (args.endsWith(',')) + args.chop(1); + args += "],"; +} + +const DebuggerCommand &DebuggerCommand::beginGroup(const char *name) const +{ + if (name) { + args += '"'; + args += name; + args += "\":"; + } + args += '{'; + return *this; +} + +void DebuggerCommand::endGroup() const +{ + if (args.endsWith(',')) + args.chop(1); + args += "},"; +} + } // namespace Internal } // namespace Debugger |