aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.lima@openbossa.org>2010-04-14 16:44:37 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:09:59 -0300
commit46cd570358601d83be0e23a378fc688d8ed706b6 (patch)
treeb840837b15f6b4b1ebd1fc79269345778dffcefb
parent97bff103c6de76a80088083ed2b909527f32c50f (diff)
Include class moved to its own .h/.cpp file.
-rw-r--r--CMakeLists.txt2
-rw-r--r--include.cpp49
-rw-r--r--include.h83
-rw-r--r--typesystem.cpp24
-rw-r--r--typesystem.h42
5 files changed, 137 insertions, 63 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00b98aad7..736e4b625 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,6 +44,7 @@ graph.cpp
reporthandler.cpp
typeparser.cpp
typesystem.cpp
+include.cpp
parser/ast.cpp
parser/binder.cpp
parser/class_compiler.cpp
@@ -114,6 +115,7 @@ typesystem.h
fileout.h
docparser.h
qtdocparser.h
+include.h
)
if (BUILD_TESTS)
diff --git a/include.cpp b/include.cpp
new file mode 100644
index 000000000..4d4787d03
--- /dev/null
+++ b/include.cpp
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the API Extractor project.
+ *
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * Contact: PySide team <contact@pyside.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include "include.h"
+#include <QTextStream>
+#include <QHash>
+
+QString Include::toString() const
+{
+ if (m_type == IncludePath)
+ return "#include <" + m_name + '>';
+ else if (m_type == LocalPath)
+ return "#include \"" + m_name + "\"";
+ else
+ return "import " + m_name + ";";
+}
+
+uint qHash(const Include& inc)
+{
+ return qHash(inc.m_name);
+}
+
+QTextStream& operator<<(QTextStream& out, const Include& include)
+{
+ if (include.isValid())
+ out << include.toString() << endl;
+ return out;
+}
+
diff --git a/include.h b/include.h
new file mode 100644
index 000000000..94e6ced88
--- /dev/null
+++ b/include.h
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the API Extractor project.
+ *
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * Contact: PySide team <contact@pyside.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef INCLUDE_H
+#define INCLUDE_H
+
+#include "apiextractormacros.h"
+#include <QString>
+#include <QList>
+
+class QTextStream;
+
+class APIEXTRACTOR_API Include
+{
+public:
+ enum IncludeType {
+ IncludePath,
+ LocalPath,
+ TargetLangImport
+ };
+
+ Include() : m_type(IncludePath) {}
+ Include(IncludeType t, const QString &nam) : m_type(t), m_name(nam) {};
+
+ bool isValid() const
+ {
+ return !m_name.isEmpty();
+ }
+
+ IncludeType type() const
+ {
+ return m_type;
+ }
+
+ QString name() const
+ {
+ return m_name;
+ }
+
+ QString toString() const;
+
+ bool operator<(const Include& other) const
+ {
+ return m_name < other.m_name;
+ }
+
+ bool operator==(const Include& other) const
+ {
+ return m_type == other.m_type && m_name == other.m_name;
+ }
+
+ friend uint qHash(const Include&);
+ private:
+ IncludeType m_type;
+ QString m_name;
+};
+
+APIEXTRACTOR_API uint qHash(const Include& inc);
+APIEXTRACTOR_API QTextStream& operator<<(QTextStream& out, const Include& include);
+
+typedef QList<Include> IncludeList;
+
+#endif
diff --git a/typesystem.cpp b/typesystem.cpp
index 4f696c10c..e1992b867 100644
--- a/typesystem.cpp
+++ b/typesystem.cpp
@@ -1792,18 +1792,6 @@ IncludeList TypeDatabase::extraIncludes(const QString &className)
return IncludeList();
}
-
-
-QString Include::toString() const
-{
- if (type == IncludePath)
- return "#include <" + name + '>';
- else if (type == LocalPath)
- return "#include \"" + name + "\"";
- else
- return "import " + name + ";";
-}
-
QString Modification::accessModifierString() const
{
if (isPrivate()) return "private";
@@ -2239,18 +2227,6 @@ QString ContainerTypeEntry::typeName() const
}
}
-uint qHash(const Include& inc)
-{
- return qHash(inc.name);
-}
-
-QTextStream& operator<<(QTextStream& out, const Include& include)
-{
- if (include.isValid())
- out << include.toString() << endl;
- return out;
-}
-
/*
static void injectCode(ComplexTypeEntry *e,
const char *signature,
diff --git a/typesystem.h b/typesystem.h
index ce5104f9f..1c1c08299 100644
--- a/typesystem.h
+++ b/typesystem.h
@@ -30,6 +30,7 @@
#include <QtCore/QMap>
#include <QtCore/QDebug>
#include "apiextractormacros.h"
+#include "include.h"
class Indentor;
@@ -39,43 +40,6 @@ class QTextStream;
class EnumTypeEntry;
class FlagsTypeEntry;
-struct APIEXTRACTOR_API Include
-{
- enum IncludeType {
- IncludePath,
- LocalPath,
- TargetLangImport
- };
-
- Include() : type(IncludePath) {}
- Include(IncludeType t, const QString &nam) : type(t), name(nam) {};
-
- bool isValid() const
- {
- return !name.isEmpty();
- }
-
- IncludeType type;
- QString name;
-
- QString toString() const;
-
- bool operator<(const Include& other) const
- {
- return name < other.name;
- }
-
- bool operator==(const Include& other) const
- {
- return type == other.type && name == other.name;
- }
-};
-
-APIEXTRACTOR_API uint qHash(const Include& inc);
-APIEXTRACTOR_API QTextStream& operator<<(QTextStream& out, const Include& include);
-
-typedef QList<Include> IncludeList;
-
typedef QMap<int, QString> ArgumentMap;
class TemplateInstance;
@@ -883,9 +847,9 @@ public:
}
void addExtraInclude(const Include &include)
{
- if (!m_includesUsed.value(include.name, false)) {
+ if (!m_includesUsed.value(include.name(), false)) {
m_extraIncludes << include;
- m_includesUsed[include.name] = true;
+ m_includesUsed[include.name()] = true;
}
}