summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-11 13:53:15 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-11 13:53:15 +0100
commit6940aa0e6837f9d83f9b5c5b37d4fd7747c95c67 (patch)
tree75d0944ff4fd1754f2db55b081588c71482efd71 /src
parente6a7bbd753cba97f7bda154341d93d3f1241d2c4 (diff)
Forward declaring Rtti stuff for fewer dependencies in the Rtti.hpp header
Diffstat (limited to 'src')
-rw-r--r--src/core/XML.cpp19
-rw-r--r--src/core/XML.hpp7
-rw-r--r--src/core/model/Document.hpp6
-rw-r--r--src/core/model/Domain.hpp8
-rw-r--r--src/core/model/Node.cpp1
-rw-r--r--src/core/model/Node.hpp6
-rw-r--r--src/core/model/Typesystem.hpp8
7 files changed, 51 insertions, 4 deletions
diff --git a/src/core/XML.cpp b/src/core/XML.cpp
index b7d1511..a610daa 100644
--- a/src/core/XML.cpp
+++ b/src/core/XML.cpp
@@ -1,3 +1,22 @@
+/*
+ Ousía
+ Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <core/common/Rtti.hpp>
#include "XML.hpp"
diff --git a/src/core/XML.hpp b/src/core/XML.hpp
index b05d4c6..5e2542b 100644
--- a/src/core/XML.hpp
+++ b/src/core/XML.hpp
@@ -45,11 +45,16 @@
#include <ostream>
#include <vector>
-#include <core/common/Rtti.hpp>
#include <core/managed/Managed.hpp>
#include <core/managed/ManagedContainer.hpp>
namespace ousia {
+
+// Forward declarations
+class RttiType;
+template<class T>
+class Rtti;
+
namespace xml {
class Element;
diff --git a/src/core/model/Document.hpp b/src/core/model/Document.hpp
index c367e50..e27b577 100644
--- a/src/core/model/Document.hpp
+++ b/src/core/model/Document.hpp
@@ -108,6 +108,12 @@
#include "Typesystem.hpp"
namespace ousia {
+
+// Forward declarations
+class RttiType;
+template<class T>
+class Rtti;
+
namespace model {
class StructuredEntity;
diff --git a/src/core/model/Domain.hpp b/src/core/model/Domain.hpp
index 7412ef4..c80d057 100644
--- a/src/core/model/Domain.hpp
+++ b/src/core/model/Domain.hpp
@@ -192,7 +192,6 @@
#ifndef _OUSIA_MODEL_DOMAIN_HPP_
#define _OUSIA_MODEL_DOMAIN_HPP_
-#include <core/common/Rtti.hpp>
#include <core/managed/ManagedContainer.hpp>
#include <core/RangeSet.hpp>
@@ -200,8 +199,15 @@
#include "Typesystem.hpp"
namespace ousia {
+
+// Forward declarations
+class RttiType;
+template<class T>
+class Rtti;
+
namespace model {
+// Forward declarations
class Descriptor;
class StructuredClass;
class Domain;
diff --git a/src/core/model/Node.cpp b/src/core/model/Node.cpp
index 284f323..bac420b 100644
--- a/src/core/model/Node.cpp
+++ b/src/core/model/Node.cpp
@@ -20,6 +20,7 @@
#include <unordered_set>
#include <core/common/Exceptions.hpp>
+#include <core/common/Rtti.hpp>
#include "Node.hpp"
diff --git a/src/core/model/Node.hpp b/src/core/model/Node.hpp
index 54a1497..c24aacb 100644
--- a/src/core/model/Node.hpp
+++ b/src/core/model/Node.hpp
@@ -32,7 +32,6 @@
#include <string>
#include <vector>
-#include <core/common/Rtti.hpp>
#include <core/managed/Managed.hpp>
#include <core/managed/ManagedContainer.hpp>
@@ -40,6 +39,11 @@
namespace ousia {
+// Forward declarations
+class RttiType;
+template<class T>
+class Rtti;
+
/**
* Structure describing a single result obtained from the resolution function.
*/
diff --git a/src/core/model/Typesystem.hpp b/src/core/model/Typesystem.hpp
index c0e0fb1..22b747f 100644
--- a/src/core/model/Typesystem.hpp
+++ b/src/core/model/Typesystem.hpp
@@ -34,14 +34,20 @@
#include <core/common/Exceptions.hpp>
#include <core/common/Logger.hpp>
-#include <core/common/Rtti.hpp>
#include <core/common/Variant.hpp>
#include "Node.hpp"
namespace ousia {
+
+// Forward declarations
+class RttiType;
+template<class T>
+class Rtti;
+
namespace model {
+// Forward declarations
class Typesystem;
/**