From 607f8d1b51f28dba773a1304b0a46314a326bf09 Mon Sep 17 00:00:00 2001
From: David Robillard <d@drobilla.net>
Date: Sat, 23 Sep 2023 00:25:59 -0400
Subject: Clean up includes and forward declarations

---
 src/server/ArcImpl.hpp              | 4 ++--
 src/server/BlockImpl.cpp            | 1 +
 src/server/BlockImpl.hpp            | 9 ++++++---
 src/server/ClientUpdate.cpp         | 1 -
 src/server/Engine.cpp               | 1 -
 src/server/Engine.hpp               | 7 +++++--
 src/server/GraphImpl.cpp            | 2 +-
 src/server/GraphImpl.hpp            | 5 +++--
 src/server/InternalPlugin.cpp       | 2 ++
 src/server/JackDriver.cpp           | 1 +
 src/server/LV2Block.cpp             | 1 +
 src/server/LV2Plugin.cpp            | 2 ++
 src/server/PortImpl.cpp             | 1 +
 src/server/PortImpl.hpp             | 1 -
 src/server/PreProcessor.cpp         | 1 +
 src/server/UndoStack.cpp            | 1 -
 src/server/Worker.cpp               | 2 ++
 src/server/events/Copy.cpp          | 1 +
 src/server/events/Delete.hpp        | 2 +-
 src/server/events/Delta.hpp         | 3 ++-
 src/server/events/Mark.hpp          | 4 +++-
 src/server/ingen_engine.cpp         | 4 ++--
 src/server/ingen_lv2.cpp            | 1 -
 src/server/ingen_portaudio.cpp      | 4 ++--
 src/server/internals/Controller.cpp | 1 -
 src/server/internals/Note.cpp       | 1 -
 src/server/internals/Time.cpp       | 1 -
 src/server/internals/Trigger.cpp    | 1 -
 28 files changed, 39 insertions(+), 26 deletions(-)

(limited to 'src/server')

diff --git a/src/server/ArcImpl.hpp b/src/server/ArcImpl.hpp
index 27d7eacb..b1565390 100644
--- a/src/server/ArcImpl.hpp
+++ b/src/server/ArcImpl.hpp
@@ -17,8 +17,6 @@
 #ifndef INGEN_ENGINE_ARC_IMPL_HPP
 #define INGEN_ENGINE_ARC_IMPL_HPP
 
-// IWYU pragma: no_include "raul/Path.hpp"
-
 #include "BufferRef.hpp"
 
 #include "ingen/Arc.hpp"
@@ -28,6 +26,8 @@
 
 #include <cstdint>
 
+// IWYU pragma: no_include "raul/Path.hpp"
+
 namespace raul {
 class Path; // IWYU pragma: keep
 } // namespace raul
diff --git a/src/server/BlockImpl.cpp b/src/server/BlockImpl.cpp
index cae6b252..d4285832 100644
--- a/src/server/BlockImpl.cpp
+++ b/src/server/BlockImpl.cpp
@@ -25,6 +25,7 @@
 
 #include "lv2/urid/urid.h"
 #include "raul/Array.hpp"
+#include "raul/Maid.hpp"
 #include "raul/Symbol.hpp"
 
 #include <cassert>
diff --git a/src/server/BlockImpl.hpp b/src/server/BlockImpl.hpp
index 3f742bfa..ef76e9bf 100644
--- a/src/server/BlockImpl.hpp
+++ b/src/server/BlockImpl.hpp
@@ -23,7 +23,6 @@
 #include "State.hpp"
 #include "types.hpp"
 
-#include "ingen/Node.hpp"
 #include "ingen/Properties.hpp"
 #include "ingen/Resource.hpp"
 #include "ingen/URI.hpp"
@@ -43,7 +42,10 @@ namespace raul {
 class Symbol;
 } // namespace raul
 
-namespace ingen::server {
+namespace ingen {
+class Node;
+
+namespace server {
 
 class BufferFactory;
 class Engine;
@@ -215,6 +217,7 @@ protected:
 	bool                     _enabled{true};
 };
 
-} // namespace ingen::server
+} // namespace server
+} // namespace ingen
 
 #endif // INGEN_ENGINE_BLOCKIMPL_HPP
diff --git a/src/server/ClientUpdate.cpp b/src/server/ClientUpdate.cpp
index c96a0d01..c69f5b49 100644
--- a/src/server/ClientUpdate.cpp
+++ b/src/server/ClientUpdate.cpp
@@ -26,7 +26,6 @@
 #include "ingen/Arc.hpp"
 #include "ingen/Forge.hpp"
 #include "ingen/Interface.hpp"
-#include "ingen/Node.hpp"
 #include "ingen/URIs.hpp"
 
 #include <boost/intrusive/slist.hpp>
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp
index 9603fcef..c4c492b7 100644
--- a/src/server/Engine.cpp
+++ b/src/server/Engine.cpp
@@ -19,7 +19,6 @@
 #include "BlockFactory.hpp"
 #include "Broadcaster.hpp"
 #include "BufferFactory.hpp"
-#include "BufferRef.hpp"
 #include "ControlBindings.hpp"
 #include "DirectDriver.hpp"
 #include "Driver.hpp"
diff --git a/src/server/Engine.hpp b/src/server/Engine.hpp
index d224d5b5..f0f19740 100644
--- a/src/server/Engine.hpp
+++ b/src/server/Engine.hpp
@@ -35,9 +35,12 @@
 #include <random>
 #include <vector>
 
+// IWYU pragma: no_include "RunContext.hpp"
+// IWYU pragma: no_include "raul/RingBuffer.hpp"
+
 namespace raul {
 class Maid;
-class RingBuffer;
+class RingBuffer; // IWYU pragma: keep
 } // namespace raul
 
 namespace ingen {
@@ -60,7 +63,7 @@ class GraphImpl;
 class LV2Options;
 class PostProcessor;
 class PreProcessor;
-class RunContext;
+class RunContext; // IWYU pragma: keep
 class SocketListener;
 class Task;
 class UndoStack;
diff --git a/src/server/GraphImpl.cpp b/src/server/GraphImpl.cpp
index 0eca95b3..0d3c5234 100644
--- a/src/server/GraphImpl.cpp
+++ b/src/server/GraphImpl.cpp
@@ -30,6 +30,7 @@
 
 #include "ingen/Forge.hpp"
 #include "ingen/Properties.hpp"
+#include "ingen/URI.hpp"
 #include "ingen/URIs.hpp"
 #include "ingen/World.hpp"
 #include "lv2/urid/urid.h"
@@ -41,7 +42,6 @@
 #include <cstddef>
 #include <map>
 #include <memory>
-#include <type_traits>
 #include <unordered_map>
 
 namespace ingen::server {
diff --git a/src/server/GraphImpl.hpp b/src/server/GraphImpl.hpp
index 47993350..c5f978fb 100644
--- a/src/server/GraphImpl.hpp
+++ b/src/server/GraphImpl.hpp
@@ -23,7 +23,6 @@
 #include "server.h"
 #include "types.hpp"
 
-#include "ingen/Node.hpp"
 #include "lv2/urid/urid.h"
 #include "raul/Maid.hpp"
 
@@ -34,6 +33,8 @@
 #include <memory>
 #include <utility>
 
+// IWYU pragma: no_include "CompiledGraph.hpp"
+
 namespace raul {
 class Symbol;
 } // namespace raul
@@ -46,7 +47,7 @@ namespace ingen::server {
 
 class ArcImpl;
 class BufferFactory;
-class CompiledGraph;
+class CompiledGraph; // IWYU pragma: keep
 class Engine;
 class PortImpl;
 class RunContext;
diff --git a/src/server/InternalPlugin.cpp b/src/server/InternalPlugin.cpp
index e6535ab2..b2f2bae7 100644
--- a/src/server/InternalPlugin.cpp
+++ b/src/server/InternalPlugin.cpp
@@ -25,6 +25,8 @@
 #include "types.hpp"
 
 #include "ingen/URIs.hpp"
+#include "lilv/lilv.h"
+#include "raul/Symbol.hpp"
 
 #include <utility>
 
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp
index eafa0fa7..d991879e 100644
--- a/src/server/JackDriver.cpp
+++ b/src/server/JackDriver.cpp
@@ -40,6 +40,7 @@
 #include "lv2/atom/forge.h"
 #include "lv2/atom/util.h"
 #include "raul/Path.hpp"
+#include "raul/Semaphore.hpp"
 
 #include <jack/midiport.h>
 #include <jack/transport.h>
diff --git a/src/server/LV2Block.cpp b/src/server/LV2Block.cpp
index 5a1ee2ec..c5cd73dc 100644
--- a/src/server/LV2Block.cpp
+++ b/src/server/LV2Block.cpp
@@ -37,6 +37,7 @@
 #include "ingen/URIMap.hpp"
 #include "ingen/URIs.hpp"
 #include "ingen/World.hpp"
+#include "lilv/lilv.h"
 #include "lv2/core/lv2.h"
 #include "lv2/options/options.h"
 #include "lv2/state/state.h"
diff --git a/src/server/LV2Plugin.cpp b/src/server/LV2Plugin.cpp
index fdf9f2e6..1e88952e 100644
--- a/src/server/LV2Plugin.cpp
+++ b/src/server/LV2Plugin.cpp
@@ -23,6 +23,8 @@
 #include "ingen/Log.hpp"
 #include "ingen/URIs.hpp"
 #include "ingen/World.hpp"
+#include "lilv/lilv.h"
+#include "raul/Symbol.hpp"
 
 #include <cstdlib>
 #include <string>
diff --git a/src/server/PortImpl.cpp b/src/server/PortImpl.cpp
index fa061640..c7b20f2b 100644
--- a/src/server/PortImpl.cpp
+++ b/src/server/PortImpl.cpp
@@ -24,6 +24,7 @@
 #include "ThreadManager.hpp"
 
 #include "ingen/Forge.hpp"
+#include "ingen/Node.hpp"
 #include "ingen/URIs.hpp"
 #include "ingen/World.hpp"
 #include "lv2/atom/atom.h"
diff --git a/src/server/PortImpl.hpp b/src/server/PortImpl.hpp
index 07904cff..64c3322f 100644
--- a/src/server/PortImpl.hpp
+++ b/src/server/PortImpl.hpp
@@ -26,7 +26,6 @@
 #include "types.hpp"
 
 #include "ingen/Atom.hpp"
-#include "ingen/Node.hpp"
 #include "ingen/URIs.hpp"
 #include "lv2/urid/urid.h"
 #include "raul/Array.hpp"
diff --git a/src/server/PreProcessor.cpp b/src/server/PreProcessor.cpp
index 74550a3e..f9d7ecb3 100644
--- a/src/server/PreProcessor.cpp
+++ b/src/server/PreProcessor.cpp
@@ -28,6 +28,7 @@
 #include "ingen/AtomWriter.hpp"
 #include "ingen/Configuration.hpp"
 #include "ingen/World.hpp"
+#include "raul/Semaphore.hpp"
 
 #include <cassert>
 #include <cstdint>
diff --git a/src/server/UndoStack.cpp b/src/server/UndoStack.cpp
index c8ce7d69..abb9fe46 100644
--- a/src/server/UndoStack.cpp
+++ b/src/server/UndoStack.cpp
@@ -27,7 +27,6 @@
 
 #include <ctime>
 #include <iterator>
-#include <memory>
 
 #define NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 
diff --git a/src/server/Worker.cpp b/src/server/Worker.cpp
index c58fe89e..cf252d37 100644
--- a/src/server/Worker.cpp
+++ b/src/server/Worker.cpp
@@ -24,6 +24,8 @@
 #include "ingen/Node.hpp"
 #include "lv2/core/lv2.h"
 #include "lv2/worker/worker.h"
+#include "raul/RingBuffer.hpp"
+#include "raul/Semaphore.hpp"
 
 #include <cstdlib>
 #include <memory>
diff --git a/src/server/events/Copy.cpp b/src/server/events/Copy.cpp
index 4219cef2..f6529da3 100644
--- a/src/server/events/Copy.cpp
+++ b/src/server/events/Copy.cpp
@@ -24,6 +24,7 @@
 #include "PreProcessContext.hpp"
 
 #include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
 #include "ingen/Parser.hpp"
 #include "ingen/Serialiser.hpp"
 #include "ingen/Status.hpp"
diff --git a/src/server/events/Delete.hpp b/src/server/events/Delete.hpp
index c17066a2..87cde2c7 100644
--- a/src/server/events/Delete.hpp
+++ b/src/server/events/Delete.hpp
@@ -17,7 +17,6 @@
 #ifndef INGEN_EVENTS_DELETE_HPP
 #define INGEN_EVENTS_DELETE_HPP
 
-#include "BlockImpl.hpp"
 #include "ControlBindings.hpp"
 #include "Event.hpp"
 #include "GraphImpl.hpp"
@@ -41,6 +40,7 @@ class Interface;
 
 namespace server {
 
+class BlockImpl;
 class CompiledGraph;
 class DuplexPort;
 class Engine;
diff --git a/src/server/events/Delta.hpp b/src/server/events/Delta.hpp
index ca28b05a..ed04f8c9 100644
--- a/src/server/events/Delta.hpp
+++ b/src/server/events/Delta.hpp
@@ -33,6 +33,7 @@
 #include <optional>
 #include <vector>
 
+// IWYU pragma: no_include "CompiledGraph.hpp"
 // IWYU pragma: no_include <algorithm>
 
 namespace ingen {
@@ -44,7 +45,7 @@ struct SetProperty;
 
 namespace server {
 
-class CompiledGraph;
+class CompiledGraph; // IWYU pragma: keep
 class Engine;
 class GraphImpl;
 class PreProcessContext;
diff --git a/src/server/events/Mark.hpp b/src/server/events/Mark.hpp
index db3d6ff6..eb99c5a9 100644
--- a/src/server/events/Mark.hpp
+++ b/src/server/events/Mark.hpp
@@ -23,6 +23,8 @@
 #include <map>
 #include <memory>
 
+// IWYU pragma: no_include "CompiledGraph.hpp"
+
 namespace ingen {
 
 class Interface;
@@ -31,7 +33,7 @@ struct BundleEnd;
 
 namespace server {
 
-class CompiledGraph;
+class CompiledGraph; // IWYU pragma: keep
 class Engine;
 class GraphImpl;
 class PreProcessContext;
diff --git a/src/server/ingen_engine.cpp b/src/server/ingen_engine.cpp
index fd4a8ced..db1794de 100644
--- a/src/server/ingen_engine.cpp
+++ b/src/server/ingen_engine.cpp
@@ -14,8 +14,6 @@
   along with Ingen.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-// IWYU pragma: no_include "ingen/Atom.hpp"
-
 #include "Engine.hpp"
 #include "util.hpp"
 
@@ -24,6 +22,8 @@
 
 #include <memory>
 
+// IWYU pragma: no_include "ingen/Atom.hpp"
+
 namespace ingen {
 
 struct EngineModule : public Module {
diff --git a/src/server/ingen_lv2.cpp b/src/server/ingen_lv2.cpp
index f253ee9b..45a193c1 100644
--- a/src/server/ingen_lv2.cpp
+++ b/src/server/ingen_lv2.cpp
@@ -15,7 +15,6 @@
 */
 
 #include "Buffer.hpp"
-#include "BufferRef.hpp"
 #include "Driver.hpp"
 #include "DuplexPort.hpp"
 #include "Engine.hpp"
diff --git a/src/server/ingen_portaudio.cpp b/src/server/ingen_portaudio.cpp
index 0199413f..6de5a40c 100644
--- a/src/server/ingen_portaudio.cpp
+++ b/src/server/ingen_portaudio.cpp
@@ -14,8 +14,6 @@
   along with Ingen.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-// IWYU pragma: no_include "ingen/FilePath.hpp"
-
 #include "Engine.hpp"
 #include "PortAudioDriver.hpp"
 
@@ -25,6 +23,8 @@
 
 #include <memory>
 
+// IWYU pragma: no_include "ingen/FilePath.hpp"
+
 namespace ingen::server {
 
 class Driver;
diff --git a/src/server/internals/Controller.cpp b/src/server/internals/Controller.cpp
index 898bd55b..ec400075 100644
--- a/src/server/internals/Controller.cpp
+++ b/src/server/internals/Controller.cpp
@@ -14,7 +14,6 @@
   along with Ingen.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "BlockImpl.hpp"
 #include "Buffer.hpp"
 #include "BufferFactory.hpp"
 #include "BufferRef.hpp"
diff --git a/src/server/internals/Note.cpp b/src/server/internals/Note.cpp
index dd202451..94598fb7 100644
--- a/src/server/internals/Note.cpp
+++ b/src/server/internals/Note.cpp
@@ -19,7 +19,6 @@
 #include "BlockImpl.hpp"
 #include "Buffer.hpp"
 #include "BufferFactory.hpp"
-#include "BufferRef.hpp"
 #include "InputPort.hpp"
 #include "InternalPlugin.hpp"
 #include "OutputPort.hpp"
diff --git a/src/server/internals/Time.cpp b/src/server/internals/Time.cpp
index 0768285a..d8f1ddef 100644
--- a/src/server/internals/Time.cpp
+++ b/src/server/internals/Time.cpp
@@ -16,7 +16,6 @@
 
 #include "internals/Time.hpp"
 
-#include "BlockImpl.hpp"
 #include "Buffer.hpp"
 #include "BufferFactory.hpp"
 #include "BufferRef.hpp"
diff --git a/src/server/internals/Trigger.cpp b/src/server/internals/Trigger.cpp
index 519b6d9f..9b3b8f98 100644
--- a/src/server/internals/Trigger.cpp
+++ b/src/server/internals/Trigger.cpp
@@ -16,7 +16,6 @@
 
 #include "internals/Trigger.hpp"
 
-#include "BlockImpl.hpp"
 #include "Buffer.hpp"
 #include "BufferFactory.hpp"
 #include "BufferRef.hpp"
-- 
cgit v1.2.1