From 744884d4ed76658880a3d25f6e6551ef92700a8f Mon Sep 17 00:00:00 2001
From: Tobias Markmann <tm@ayena.de>
Date: Fri, 24 Jul 2015 17:42:17 +0200
Subject: Add missing includes for dependencies in public header files

Added Swiften/Base/Concat.h to the exception list for <algorithm>
include, as Concat.h uses std::copy, defined in <algorithm>.

Added Swiften/FileTransfer/S5BTransportSession.h to the exception
list for <boost/bind.hpp> include, as S5BTransportSession.h
declares a template class using boost::bind.

Test-Information:

Tested that each of Swiften's public header files compiles on its
own.

Change-Id: Iac794b6e0f5959cd8261888a67761813b710fe85

diff --git a/BuildTools/CheckHeaders.py b/BuildTools/CheckHeaders.py
index b599099..8d20f4e 100755
--- a/BuildTools/CheckHeaders.py
+++ b/BuildTools/CheckHeaders.py
@@ -6,8 +6,8 @@ FORBIDDEN_INCLUDES = [
 	("iostream", ["Swiften/Base/format.h"]), 
 	("Base/Log.h", []), 
 	("Base/format.h", []),
-	("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h"]), 
-	("boost/bind.hpp", ["Swiften/Base/Listenable.h"]), 
+	("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h", "Swiften/Base/Concat.h"]), 
+	("boost/bind.hpp", ["Swiften/Base/Listenable.h", "Swiften/FileTransfer/S5BTransportSession.h"]), 
 	("boost/filesystem.hpp", []), 
 	("Base/foreach.h", []), 
 	("boost/date_time/date_time.hpp", []), 
diff --git a/Swiften/Base/Concat.h b/Swiften/Base/Concat.h
index 97b04f2..1d158d5 100644
--- a/Swiften/Base/Concat.h
+++ b/Swiften/Base/Concat.h
@@ -1,11 +1,13 @@
 /*
- * Copyright (c) 2011 Isode Limited.
+ * Copyright (c) 2011-2015 Isode Limited.
  * All rights reserved.
  * See the COPYING file for more information.
  */
 
 #pragma once
 
+#include <algorithm>
+
 namespace Swift {
 	template<typename C>
 	C concat(const C& c1, const C& c2) {
diff --git a/Swiften/Base/Listenable.h b/Swiften/Base/Listenable.h
index 994480d..655599a 100644
--- a/Swiften/Base/Listenable.h
+++ b/Swiften/Base/Listenable.h
@@ -1,14 +1,17 @@
 /*
- * Copyright (c) 2013 Isode Limited.
+ * Copyright (c) 2013-2015 Isode Limited.
  * All rights reserved.
  * See the COPYING file for more information.
  */
 
 #pragma once
 
-#include <Swiften/Base/API.h>
-#include <boost/bind.hpp>
 #include <algorithm>
+#include <vector>
+
+#include <boost/bind.hpp>
+
+#include <Swiften/Base/API.h>
 
 namespace Swift {
 	template<typename T>
diff --git a/Swiften/Elements/CompressRequest.h b/Swiften/Elements/CompressRequest.h
index 4e2a3a4..1c3fb39 100644
--- a/Swiften/Elements/CompressRequest.h
+++ b/Swiften/Elements/CompressRequest.h
@@ -6,6 +6,8 @@
 
 #pragma once
 
+#include <string>
+
 #include <Swiften/Base/API.h>
 #include <Swiften/Elements/ToplevelElement.h>
 
diff --git a/Swiften/Elements/FormReportedRef.h b/Swiften/Elements/FormReportedRef.h
index b985167..03a89d1 100644
--- a/Swiften/Elements/FormReportedRef.h
+++ b/Swiften/Elements/FormReportedRef.h
@@ -5,6 +5,8 @@
  */
 #pragma once
 
+#include <boost/shared_ptr.hpp>
+
 #include <Swiften/Base/API.h>
 
 namespace Swift {
diff --git a/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h b/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h
index f885d3b..38bc3e1 100644
--- a/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h
+++ b/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h
@@ -12,9 +12,11 @@
 
 #pragma once
 
+#include <vector>
+
 #include <Swiften/Base/API.h>
-#include <Swiften/Elements/Whiteboard/WhiteboardElement.h>
 #include <Swiften/Elements/Whiteboard/WhiteboardColor.h>
+#include <Swiften/Elements/Whiteboard/WhiteboardElement.h>
 
 namespace Swift {
 	class SWIFTEN_API WhiteboardPolygonElement : public WhiteboardElement {
diff --git a/Swiften/FileTransfer/S5BTransportSession.h b/Swiften/FileTransfer/S5BTransportSession.h
index 234c491..b3eee3c 100644
--- a/Swiften/FileTransfer/S5BTransportSession.h
+++ b/Swiften/FileTransfer/S5BTransportSession.h
@@ -6,10 +6,12 @@
 
 #pragma once
 
+#include <boost/bind.hpp>
+
 #include <Swiften/Base/API.h>
 #include <Swiften/Base/boost_bsignals.h>
-#include <Swiften/FileTransfer/TransportSession.h>
 #include <Swiften/FileTransfer/ReadBytestream.h>
+#include <Swiften/FileTransfer/TransportSession.h>
 #include <Swiften/FileTransfer/WriteBytestream.h>
 
 namespace Swift {
diff --git a/Swiften/Serializer/PayloadSerializers/StartSessionSerializer.h b/Swiften/Serializer/PayloadSerializers/StartSessionSerializer.h
index d629db2..1815955 100644
--- a/Swiften/Serializer/PayloadSerializers/StartSessionSerializer.h
+++ b/Swiften/Serializer/PayloadSerializers/StartSessionSerializer.h
@@ -9,8 +9,9 @@
 #include <boost/lexical_cast.hpp>
 
 #include <Swiften/Base/API.h>
-#include <Swiften/Serializer/GenericPayloadSerializer.h>
 #include <Swiften/Elements/StartSession.h>
+#include <Swiften/Serializer/GenericPayloadSerializer.h>
+#include <Swiften/Serializer/XML/XMLElement.h>
 
 namespace Swift {
 	class SWIFTEN_API StartSessionSerializer : public GenericPayloadSerializer<StartSession> {
diff --git a/Swiften/Serializer/XML/XMLTextNode.h b/Swiften/Serializer/XML/XMLTextNode.h
index 65d6459..86efdf1 100644
--- a/Swiften/Serializer/XML/XMLTextNode.h
+++ b/Swiften/Serializer/XML/XMLTextNode.h
@@ -6,9 +6,11 @@
 
 #pragma once
 
+#include <boost/shared_ptr.hpp>
+
 #include <Swiften/Base/API.h>
-#include <Swiften/Serializer/XML/XMLNode.h>
 #include <Swiften/Base/String.h>
+#include <Swiften/Serializer/XML/XMLNode.h>
 
 namespace Swift {
 	class SWIFTEN_API XMLTextNode : public XMLNode {
-- 
cgit v0.10.2-6-g49f6