diff --git a/Builds/VisualStudio2012/RippleD.vcxproj b/Builds/VisualStudio2012/RippleD.vcxproj
index db16a401d..f80d2d0d7 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj
+++ b/Builds/VisualStudio2012/RippleD.vcxproj
@@ -769,7 +769,12 @@
true
true
-
+
+ false
+ false
+ false
+ false
+
true
true
diff --git a/modules/ripple_app/ripple_app.cpp b/modules/ripple_app/ripple_app.cpp
index a7b9f1eb7..84f24b373 100644
--- a/modules/ripple_app/ripple_app.cpp
+++ b/modules/ripple_app/ripple_app.cpp
@@ -8,10 +8,16 @@
#include "ripple_app.h"
-// This file should only hold the Application object .cpp. It depends on
-// everything else. Nothing else should depend on the Application
-// implementation (although they will depend on its abstract interface)
-//
+#include "../ripple_client/ripple_client.h"
+#include "../ripple_net/ripple_net.h" // for RPCServerHandler
+
+#include "beast/modules/beast_db/beast_db.h"
+#include "../ripple_mdb/ripple_mdb.h"
+#include "../ripple_leveldb/ripple_leveldb.h"
+#include "../ripple_hyperleveldb/ripple_hyperleveldb.h"
+
+// This .cpp will end up including all of the public header
+// material in Ripple since it holds the Application object.
namespace ripple
{
@@ -19,6 +25,11 @@ namespace ripple
#include "boost/ripple_IoService.h" // deprecated
#include "boost/ripple_IoService.cpp" // deprecated
+ #include "main/ripple_FatalErrorReporter.h"
+#include "main/ripple_FatalErrorReporter.cpp"
+
+# include "basics/ripple_RPCServerHandler.h"
+#include "basics/ripple_RPCServerHandler.cpp"
#ifdef _MSC_VER
# pragma warning (push)
# pragma warning (disable: 4244) // conversion, possible loss of data
@@ -29,4 +40,31 @@ namespace ripple
# pragma warning (pop)
#endif
+# include "node/ripple_HyperLevelDBBackendFactory.h"
+# include "node/ripple_HyperLevelDBBackendFactory.cpp"
+# include "node/ripple_KeyvaDBBackendFactory.h"
+# include "node/ripple_KeyvaDBBackendFactory.cpp"
+# include "node/ripple_LevelDBBackendFactory.h"
+# include "node/ripple_LevelDBBackendFactory.cpp"
+# include "node/ripple_MemoryBackendFactory.h"
+# include "node/ripple_MemoryBackendFactory.cpp"
+# include "node/ripple_NullBackendFactory.h"
+# include "node/ripple_NullBackendFactory.cpp"
+# include "node/ripple_MdbBackendFactory.h"
+# include "node/ripple_MdbBackendFactory.cpp"
+# include "node/ripple_SqliteBackendFactory.h"
+# include "node/ripple_SqliteBackendFactory.cpp"
+# include "main/ripple_RippleMain.h"
+#include "main/ripple_RippleMain.cpp"
+
+}
+
+//------------------------------------------------------------------------------
+
+// Must be outside the namespace for obvious reasons
+//
+int main (int argc, char** argv)
+{
+ ripple::RippleMain rippled;
+ return rippled.runFromMain (argc, argv);
}
diff --git a/modules/ripple_app/ripple_app.h b/modules/ripple_app/ripple_app.h
index bd83c4c1c..dc77fbe39 100644
--- a/modules/ripple_app/ripple_app.h
+++ b/modules/ripple_app/ripple_app.h
@@ -7,8 +7,7 @@
#ifndef RIPPLE_APP_H_INCLUDED
#define RIPPLE_APP_H_INCLUDED
-// Must come before
-#include "beast/modules/beast_core/beast_core.h"
+#include "beast/modules/beast_core/beast_core.h" // Must come before
#if BEAST_LINUX || BEAST_MAC || BEAST_BSD
#include
@@ -61,7 +60,7 @@
#include "../ripple_core/ripple_core.h"
-#include "../ripple_net/ripple_net.h" // for RPCServerHandler ONLY
+#include "../ripple_client/ripple_client.h"
#include "beast/modules/beast_sqdb/beast_sqdb.h"
#include "beast/modules/beast_sqlite/beast_sqlite.h"
@@ -97,7 +96,6 @@ namespace ripple
#include "ledger/SerializedValidation.h"
#include "main/ripple_LoadManager.h"
#include "misc/ripple_ProofOfWork.h"
-#include "misc/ripple_InfoSub.h"
#include "misc/ripple_OrderBook.h"
#include "shamap/ripple_SHAMapSyncFilters.h"
#include "misc/ripple_IFeatures.h"
@@ -161,8 +159,9 @@ namespace ripple
#include "contracts/ripple_Interpreter.h"
#include "contracts/ripple_Operation.h"
-// Move this to the .cpp and remove the include for ripple_net.h
-#include "basics/ripple_RPCServerHandler.h"
+//#include "misc/ripple_InfoSub.h"
+//#include "rpc/CallRPC.h"
+//#include "rpc/RPCSub.h"
}
diff --git a/modules/ripple_app/ripple_app_pt1.cpp b/modules/ripple_app/ripple_app_pt1.cpp
index 2787143d0..bb1b75088 100644
--- a/modules/ripple_app/ripple_app_pt1.cpp
+++ b/modules/ripple_app/ripple_app_pt1.cpp
@@ -8,16 +8,10 @@
#include "ripple_app.h"
-#include "beast/modules/beast_db/beast_db.h"
-#include "../ripple_mdb/ripple_mdb.h"
-#include "../ripple_leveldb/ripple_leveldb.h"
-#include "../ripple_hyperleveldb/ripple_hyperleveldb.h"
-
namespace ripple
{
#include "peers/ripple_PeerSet.cpp"
-#include "misc/ripple_InfoSub.cpp"
#include "misc/ripple_OrderBook.cpp"
#include "misc/ripple_ProofOfWork.cpp"
#include "misc/ripple_ProofOfWorkFactory.h"
@@ -26,26 +20,6 @@ namespace ripple
#include "shamap/ripple_SHAMapSyncFilters.cpp" // requires Application
- #include "main/ripple_FatalErrorReporter.h"
-#include "main/ripple_FatalErrorReporter.cpp"
- #include "main/ripple_RippleMain.h"
- #include "node/ripple_HyperLevelDBBackendFactory.h"
- #include "node/ripple_KeyvaDBBackendFactory.h"
- #include "node/ripple_LevelDBBackendFactory.h"
- #include "node/ripple_MdbBackendFactory.h"
- #include "node/ripple_MemoryBackendFactory.h"
- #include "node/ripple_NullBackendFactory.h"
- #include "node/ripple_SqliteBackendFactory.h"
-#include "main/ripple_RippleMain.cpp"
-
-#include "node/ripple_HyperLevelDBBackendFactory.cpp"
-#include "node/ripple_KeyvaDBBackendFactory.cpp"
-#include "node/ripple_LevelDBBackendFactory.cpp"
-#include "node/ripple_MemoryBackendFactory.cpp"
-#include "node/ripple_NullBackendFactory.cpp"
-#include "node/ripple_MdbBackendFactory.cpp"
-#include "node/ripple_SqliteBackendFactory.cpp"
-
#ifdef _MSC_VER
# pragma warning (push)
# pragma warning (disable: 4244) // conversion, possible loss of data
@@ -58,13 +32,3 @@ namespace ripple
#endif
}
-
-//------------------------------------------------------------------------------
-
-// Must be outside the namespace for obvious reasons
-//
-int main (int argc, char** argv)
-{
- ripple::RippleMain rippled;
- return rippled.runFromMain (argc, argv);
-}
diff --git a/modules/ripple_app/ripple_app_pt3.cpp b/modules/ripple_app/ripple_app_pt3.cpp
index a75f551b0..5fc2720fb 100644
--- a/modules/ripple_app/ripple_app_pt3.cpp
+++ b/modules/ripple_app/ripple_app_pt3.cpp
@@ -22,7 +22,6 @@ namespace ripple
# pragma warning (pop)
#endif
-#include "basics/ripple_BuildInfo.cpp"
#include "node/ripple_NodeObject.cpp"
#include "shamap/ripple_SHAMapDelta.cpp"
diff --git a/modules/ripple_app/ripple_app_pt4.cpp b/modules/ripple_app/ripple_app_pt4.cpp
index f7575e8b3..47b4ba5d1 100644
--- a/modules/ripple_app/ripple_app_pt4.cpp
+++ b/modules/ripple_app/ripple_app_pt4.cpp
@@ -8,6 +8,8 @@
#include "ripple_app.h"
+#include "../ripple_net/ripple_net.h"
+
namespace ripple
{
diff --git a/modules/ripple_app/ripple_app_pt5.cpp b/modules/ripple_app/ripple_app_pt5.cpp
index 98503e27d..90e6f7751 100644
--- a/modules/ripple_app/ripple_app_pt5.cpp
+++ b/modules/ripple_app/ripple_app_pt5.cpp
@@ -7,6 +7,7 @@
#include "BeastConfig.h"
#include "ripple_app.h"
+#include "../ripple_net/ripple_net.h"
namespace ripple
{
diff --git a/modules/ripple_app/ripple_app_pt8.cpp b/modules/ripple_app/ripple_app_pt8.cpp
index 7387fbf8f..3559fed88 100644
--- a/modules/ripple_app/ripple_app_pt8.cpp
+++ b/modules/ripple_app/ripple_app_pt8.cpp
@@ -8,6 +8,14 @@
#include "ripple_app.h"
+#include "../ripple_client/ripple_client.h"
+#include "../ripple_net/ripple_net.h"
+
+#ifdef _MSC_VER
+#pragma warning (push)
+#pragma warning (disable: 4309) // truncation of constant value
+#endif
+
namespace ripple
{
@@ -15,23 +23,16 @@ namespace ripple
#include "rpc/RPCUtil.h"
#include "websocket/WSConnection.h" // needs RPCErr
-#include "rpc/RPCErr.cpp"
-#include "rpc/RPCUtil.cpp"
-
#ifdef _MSC_VER
#pragma warning (push)
#pragma warning (disable: 4018) // signed/unsigned mismatch
#pragma warning (disable: 4244) // conversion, possible loss of data
#endif
-#include "rpc/CallRPC.cpp"
#include "rpc/RPCHandler.cpp"
#ifdef _MSC_VER
#pragma warning (pop)
#endif
-#include "rpc/RPCSub.cpp"
-
-#include "basics/ripple_RPCServerHandler.cpp" // needs RPCUtil
#include "paths/ripple_PathRequest.cpp" // needs RPCErr.h
#include "paths/ripple_RippleCalc.cpp"
#include "paths/ripple_PathState.cpp"
@@ -41,16 +42,12 @@ namespace ripple
#include "paths/ripple_RippleLineCache.cpp"
#include "ledger/SerializedValidation.cpp"
-#ifdef _MSC_VER
-#pragma warning (push)
-#pragma warning (disable: 4309) // truncation of constant value
-#endif
#include "websocket/WSConnection.cpp"
#include "websocket/WSDoor.cpp"
#include "websocket/WSServerHandler.cpp"
-#ifdef _MSC_VER
-#pragma warning (pop)
-#endif
}
+#ifdef _MSC_VER
+#pragma warning (pop)
+#endif
diff --git a/modules/ripple_basics/ripple_basics.h b/modules/ripple_basics/ripple_basics.h
index be5e477d9..d605e015e 100644
--- a/modules/ripple_basics/ripple_basics.h
+++ b/modules/ripple_basics/ripple_basics.h
@@ -39,8 +39,7 @@
//------------------------------------------------------------------------------
-// Must come before
-#include "beast/modules/beast_core/beast_core.h"
+#include "beast/modules/beast_core/beast_core.h" // Must come before
#include "system/ripple_BoostIncludes.h"
diff --git a/modules/ripple_client/ripple_client.cpp b/modules/ripple_client/ripple_client.cpp
index 9d1980036..227966b19 100644
--- a/modules/ripple_client/ripple_client.cpp
+++ b/modules/ripple_client/ripple_client.cpp
@@ -7,7 +7,17 @@
#include "BeastConfig.h"
#include "../ripple_client/ripple_client.h"
+#include "../ripple_core/ripple_core.h"
+#include "../ripple_net/ripple_net.h"
namespace ripple
{
+
+# include "../ripple_app/rpc/RPCErr.h"
+#include "../ripple_app/rpc/RPCErr.cpp"
+#include "../ripple_app/rpc/RPCUtil.cpp"
+#include "../ripple_app/rpc/CallRPC.cpp"
+#include "../ripple_app/rpc/RPCSub.cpp"
+#include "../ripple_app/misc/ripple_InfoSub.cpp"
+
}
diff --git a/modules/ripple_client/ripple_client.h b/modules/ripple_client/ripple_client.h
index b7a8e917e..9165bf380 100644
--- a/modules/ripple_client/ripple_client.h
+++ b/modules/ripple_client/ripple_client.h
@@ -14,4 +14,21 @@
#ifndef RIPPLE_CLIENT_H
#define RIPPLE_CLIENT_H
+#include "beast/modules/beast_core/beast_core.h" // Must come before
+
+#include // InfoSub
+
+#include "../ripple_core/ripple_core.h"
+#include "../ripple_data/ripple_data.h"
+
+namespace ripple
+{
+
+#include "../ripple_app/rpc/RPCUtil.h" // only for RPCServerHandler
+#include "../ripple_app/rpc/CallRPC.h"
+ #include "../ripple_app/misc/ripple_InfoSub.h"
+#include "../ripple_app/rpc/RPCSub.h"
+
+}
+
#endif
diff --git a/modules/ripple_net/ripple_net.cpp b/modules/ripple_net/ripple_net.cpp
index 1ed0a1a44..9b34383a8 100644
--- a/modules/ripple_net/ripple_net.cpp
+++ b/modules/ripple_net/ripple_net.cpp
@@ -12,8 +12,7 @@
#include "BeastConfig.h"
-// Must come before
-#include "beast/modules/beast_core/beast_core.h"
+#include "beast/modules/beast_core/beast_core.h" // Must come before
#include
#include