diff --git a/Builds/VisualStudio2012/RippleD.vcxproj b/Builds/VisualStudio2012/RippleD.vcxproj
index e3aa0abd48..f1d7fe86b3 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj
+++ b/Builds/VisualStudio2012/RippleD.vcxproj
@@ -1587,6 +1587,7 @@
+
diff --git a/Builds/VisualStudio2012/RippleD.vcxproj.filters b/Builds/VisualStudio2012/RippleD.vcxproj.filters
index 5c8e4bf5d8..75ba69a4ac 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2012/RippleD.vcxproj.filters
@@ -154,6 +154,9 @@
{2c4e5c32-0aab-4650-b9a1-22708e9ddc92}
+
+ {a99a2905-0d36-40c0-84f5-06db41e48367}
+
@@ -1797,6 +1800,9 @@
1. Modules\ripple_basics\system
+
+ 1. Modules\ripple_app\basics
+
diff --git a/modules/ripple_app/basics/ripple_BuildVersion.h b/modules/ripple_app/basics/ripple_BuildVersion.h
new file mode 100644
index 0000000000..6d5504c422
--- /dev/null
+++ b/modules/ripple_app/basics/ripple_BuildVersion.h
@@ -0,0 +1,45 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+#ifndef RIPPLE_BUILDVERSION_RIPPLEHEADER
+#define RIPPLE_BUILDVERSION_RIPPLEHEADER
+
+/** Versioning information for the build.
+*/
+
+class BuildVersion
+{
+public:
+ /** Retrieve the build version number.
+
+ This is typically incremented when an official version is publshed
+ with a list of changes.
+
+ Format is:
+
+ ..
+ */
+ static char const* getBuildVersion ()
+ {
+ return "0.0.1";
+ }
+
+ /** Retrieve the client API version number.
+
+ The client API version is incremented whenever a new feature
+ or breaking change is made to the websocket / RPC interface.
+
+ Format is:
+
+
+ */
+ static char const* getClientVersion ()
+ {
+ return "1";
+ }
+};
+
+#endif
diff --git a/modules/ripple_app/ripple_app.cpp b/modules/ripple_app/ripple_app.cpp
index fb366439b9..b0cb6ea470 100644
--- a/modules/ripple_app/ripple_app.cpp
+++ b/modules/ripple_app/ripple_app.cpp
@@ -85,10 +85,7 @@ namespace ripple
// linearize the include sequence and view it in one place.
//
-// VFALCO BEGIN CLEAN AREA These are all include-stripped
-
#include "src/cpp/ripple/ripple_HashedObject.h"
-
#include "src/cpp/ripple/ripple_SHAMapItem.h"
#include "src/cpp/ripple/ripple_SHAMapNode.h"
#include "src/cpp/ripple/ripple_SHAMapTreeNode.h"
@@ -96,7 +93,6 @@ namespace ripple
#include "src/cpp/ripple/ripple_SHAMapSyncFilter.h"
#include "src/cpp/ripple/ripple_SHAMapAddNode.h"
#include "src/cpp/ripple/ripple_SHAMap.h"
-
#include "src/cpp/ripple/ripple_SerializedTransaction.h"
#include "src/cpp/ripple/ripple_SerializedLedger.h"
#include "src/cpp/ripple/TransactionMeta.h"
@@ -104,11 +100,8 @@ namespace ripple
#include "src/cpp/ripple/ripple_AccountState.h"
#include "src/cpp/ripple/ripple_NicknameState.h"
#include "src/cpp/ripple/Ledger.h"
-
#include "src/cpp/ripple/SerializedValidation.h"
#include "src/cpp/ripple/ripple_ILoadManager.h"
-
-// These have few dependencies
#include "src/cpp/ripple/ripple_DatabaseCon.h"
#include "src/cpp/ripple/ripple_ProofOfWork.h"
#include "src/cpp/ripple/ripple_InfoSub.h"
@@ -116,8 +109,6 @@ namespace ripple
#include "src/cpp/ripple/ripple_HashedObjectStore.h"
#include "src/cpp/ripple/ripple_OrderBook.h"
#include "src/cpp/ripple/ripple_SHAMapSyncFilters.h"
-
-// Abstract interfaces
#include "src/cpp/ripple/ripple_IFeatures.h"
#include "src/cpp/ripple/ripple_IFeeVote.h"
#include "src/cpp/ripple/ripple_IHashRouter.h"
@@ -126,34 +117,15 @@ namespace ripple
#include "src/cpp/ripple/ripple_IProofOfWorkFactory.h"
#include "src/cpp/ripple/ripple_IUniqueNodeList.h"
#include "src/cpp/ripple/ripple_IValidations.h"
-
#include "src/cpp/ripple/ripple_PeerSet.h"
#include "src/cpp/ripple/ripple_InboundLedger.h"
#include "src/cpp/ripple/ripple_InboundLedgers.h"
-
#include "src/cpp/ripple/ripple_Database.h"
#include "src/cpp/ripple/ripple_SqliteDatabase.h"
-
-// VFALCO END CLEAN AREA
-
-//------------------------------------------------------------------------------
-
-// VFALCO NOTE Order matters! If you get compile errors, move just 1
-// include upwards as little as possible to fix it.
-//
#include "src/cpp/ripple/ScriptData.h"
#include "src/cpp/ripple/Contract.h"
#include "src/cpp/ripple/Interpreter.h"
#include "src/cpp/ripple/Operation.h"
-// VFALCO NOTE Order matters
-
-// -----------
-// VFALCO NOTE These have all been include-stripped
-// ORDER MATTERS A LOT!
-
-
-
-
#include "src/cpp/ripple/ripple_AccountItem.h"
#include "src/cpp/ripple/ripple_AccountItems.h"
#include "src/cpp/ripple/ripple_AcceptedLedgerTx.h"
@@ -161,16 +133,10 @@ namespace ripple
#include "src/cpp/ripple/ripple_LedgerEntrySet.h"
#include "src/cpp/ripple/TransactionEngine.h"
#include "src/cpp/ripple/ripple_CanonicalTXSet.h"
-
#include "src/cpp/ripple/ripple_LedgerHistory.h"
#include "src/cpp/ripple/LedgerMaster.h"
-
#include "src/cpp/ripple/LedgerProposal.h"
#include "src/cpp/ripple/NetworkOPs.h"
-
-//
-// -----------
-
#include "src/cpp/ripple/TransactionMaster.h"
#include "src/cpp/ripple/ripple_LocalCredentials.h"
#include "src/cpp/ripple/WSDoor.h"
@@ -179,7 +145,6 @@ namespace ripple
#include "src/cpp/ripple/TransactionQueue.h"
#include "src/cpp/ripple/OrderBookDB.h"
#include "src/cpp/ripple/ripple_DatabaseCon.h"
-
#include "src/cpp/ripple/ripple_IApplication.h"
#include "src/cpp/ripple/CallRPC.h"
#include "src/cpp/ripple/Transactor.h"
@@ -195,12 +160,10 @@ namespace ripple
#include "src/cpp/ripple/OfferCreateTransactor.h"
#include "src/cpp/ripple/ripple_PathRequest.h"
#include "src/cpp/ripple/ParameterTable.h"
-
#include "src/cpp/ripple/ripple_RippleLineCache.h"
#include "src/cpp/ripple/ripple_PathState.h"
#include "src/cpp/ripple/ripple_RippleCalc.h"
#include "src/cpp/ripple/ripple_Pathfinder.h"
-
#include "src/cpp/ripple/PaymentTransactor.h"
#include "src/cpp/ripple/PeerDoor.h"
#include "src/cpp/ripple/RPC.h"
@@ -218,6 +181,8 @@ namespace ripple
#include "src/cpp/ripple/WSHandler.h"
#include "src/cpp/ripple/WalletAddTransactor.h"
+#include "basics/ripple_BuildVersion.h" // private
+
}
//------------------------------------------------------------------------------
diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp
index a9e7f51965..cbdbcdd6c7 100644
--- a/src/cpp/ripple/NetworkOPs.cpp
+++ b/src/cpp/ripple/NetworkOPs.cpp
@@ -1345,6 +1345,9 @@ Json::Value NetworkOPs::getServerInfo (bool human, bool admin)
{
Json::Value info = Json::objectValue;
+ info ["build_version"] = BuildVersion::getBuildVersion ();
+ info ["client_version"] = BuildVersion::getClientVersion ();
+
if (theConfig.TESTNET)
info["testnet"] = theConfig.TESTNET;