Clang: Inline CodeCompletionChunk

Change-Id: Ia581ae109fe1fa2c05db37f1cfbe678f2d8e8778
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Marco Bubke
2016-07-19 12:40:59 +02:00
committed by Tim Jenssen
parent 855bf6b007
commit 12c5ff13d0
2 changed files with 51 additions and 69 deletions

View File

@@ -25,66 +25,12 @@
#include "codecompletionchunk.h" #include "codecompletionchunk.h"
#include <QDataStream>
#include <QDebug> #include <QDebug>
#include <ostream> #include <ostream>
namespace ClangBackEnd { namespace ClangBackEnd {
CodeCompletionChunk::CodeCompletionChunk(CodeCompletionChunk::Kind kind,
const Utf8String &text,
bool isOptional)
: text_(text),
kind_(kind),
isOptional_(isOptional)
{
}
CodeCompletionChunk::Kind CodeCompletionChunk::kind() const
{
return kind_;
}
const Utf8String &CodeCompletionChunk::text() const
{
return text_;
}
bool CodeCompletionChunk::isOptional() const
{
return isOptional_;
}
QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk)
{
out << static_cast<quint8>(chunk.kind_);
out << chunk.text_;
out << chunk.isOptional_;
return out;
}
QDataStream &operator>>(QDataStream &in, CodeCompletionChunk &chunk)
{
quint8 kind;
in >> kind;
in >> chunk.text_;
in >> chunk.isOptional_;
chunk.kind_ = static_cast<CodeCompletionChunk::Kind>(kind);
return in;
}
bool operator==(const CodeCompletionChunk &first, const CodeCompletionChunk &second)
{
return first.kind() == second.kind()
&& first.text() == second.text()
&& first.isOptional() == second.isOptional();
}
static const char *completionChunkKindToString(CodeCompletionChunk::Kind kind) static const char *completionChunkKindToString(CodeCompletionChunk::Kind kind)
{ {
switch (kind) { switch (kind) {

View File

@@ -29,6 +29,7 @@
#include <utf8string.h> #include <utf8string.h>
#include <QDataStream>
#include <QVector> #include <QVector>
namespace ClangBackEnd { namespace ClangBackEnd {
@@ -36,12 +37,8 @@ namespace ClangBackEnd {
class CodeCompletionChunk; class CodeCompletionChunk;
using CodeCompletionChunks = QVector<CodeCompletionChunk>; using CodeCompletionChunks = QVector<CodeCompletionChunk>;
class CMBIPC_EXPORT CodeCompletionChunk class CodeCompletionChunk
{ {
friend CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk);
friend CMBIPC_EXPORT QDataStream &operator>>(QDataStream &in, CodeCompletionChunk &chunk);
friend CMBIPC_EXPORT bool operator==(const CodeCompletionChunk &first, const CodeCompletionChunk &second);
public: public:
enum Kind : quint8 { enum Kind : quint8 {
Optional, Optional,
@@ -71,11 +68,56 @@ public:
CodeCompletionChunk() = default; CodeCompletionChunk() = default;
CodeCompletionChunk(Kind kind, CodeCompletionChunk(Kind kind,
const Utf8String &text, const Utf8String &text,
bool isOptional = false); bool isOptional = false)
: text_(text),
kind_(kind),
isOptional_(isOptional)
{
}
Kind kind() const; Kind kind() const
const Utf8String &text() const; {
bool isOptional() const; return kind_;
}
const Utf8String &text() const
{
return text_;
}
bool isOptional() const
{
return isOptional_;
}
friend QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk)
{
out << static_cast<quint8>(chunk.kind_);
out << chunk.text_;
out << chunk.isOptional_;
return out;
}
friend QDataStream &operator>>(QDataStream &in, CodeCompletionChunk &chunk)
{
quint8 kind;
in >> kind;
in >> chunk.text_;
in >> chunk.isOptional_;
chunk.kind_ = static_cast<CodeCompletionChunk::Kind>(kind);
return in;
}
friend bool operator==(const CodeCompletionChunk &first, const CodeCompletionChunk &second)
{
return first.kind() == second.kind()
&& first.text() == second.text()
&& first.isOptional() == second.isOptional();
}
private: private:
Utf8String text_; Utf8String text_;
@@ -83,15 +125,9 @@ private:
bool isOptional_ = false; bool isOptional_ = false;
}; };
CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk);
CMBIPC_EXPORT QDataStream &operator>>(QDataStream &in, CodeCompletionChunk &chunk);
CMBIPC_EXPORT bool operator==(const CodeCompletionChunk &first, const CodeCompletionChunk &second);
CMBIPC_EXPORT QDebug operator<<(QDebug debug, const CodeCompletionChunk &chunk); CMBIPC_EXPORT QDebug operator<<(QDebug debug, const CodeCompletionChunk &chunk);
void PrintTo(const CodeCompletionChunk &chunk, ::std::ostream* os); void PrintTo(const CodeCompletionChunk &chunk, ::std::ostream* os);
void PrintTo(const CodeCompletionChunk::Kind &kind, ::std::ostream* os); void PrintTo(const CodeCompletionChunk::Kind &kind, ::std::ostream* os);
} // namespace ClangBackEnd } // namespace ClangBackEnd
Q_DECLARE_METATYPE(ClangBackEnd::CodeCompletionChunk)