Add module ripple_basio and ripple_net

This commit is contained in:
Vinnie Falco
2013-07-08 09:29:16 -07:00
parent 87f3c1e597
commit 394328e202
21 changed files with 412 additions and 78 deletions

View File

@@ -71,11 +71,13 @@ SOURCES += \
../../modules/ripple_app/ripple_app_pt7.cpp \ ../../modules/ripple_app/ripple_app_pt7.cpp \
../../modules/ripple_app/ripple_app_pt8.cpp \ ../../modules/ripple_app/ripple_app_pt8.cpp \
../../modules/ripple_basics/ripple_basics.cpp \ ../../modules/ripple_basics/ripple_basics.cpp \
../../modules/ripple_basio/ripple_basio.cpp \
../../modules/ripple_core/ripple_core.cpp \ ../../modules/ripple_core/ripple_core.cpp \
../../modules/ripple_client/ripple_client.cpp \ ../../modules/ripple_client/ripple_client.cpp \
../../modules/ripple_data/ripple_data.cpp \ ../../modules/ripple_data/ripple_data.cpp \
../../modules/ripple_json/ripple_json.cpp \ ../../modules/ripple_json/ripple_json.cpp \
../../modules/ripple_leveldb/ripple_leveldb.cpp \ ../../modules/ripple_leveldb/ripple_leveldb.cpp \
../../modules/ripple_net/ripple_net.cpp \
../../modules/ripple_sqlite/ripple_sqlite.c \ ../../modules/ripple_sqlite/ripple_sqlite.c \
../../modules/ripple_websocket/ripple_websocket.cpp ../../modules/ripple_websocket/ripple_websocket.cpp

View File

@@ -136,6 +136,13 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\modules\ripple_basio\boost\ripple_IoService.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_basio\ripple_basio.cpp" />
<ClCompile Include="..\..\modules\ripple_client\ripple_client.cpp" /> <ClCompile Include="..\..\modules\ripple_client\ripple_client.cpp" />
<ClCompile Include="..\..\modules\ripple_core\functional\ripple_Config.cpp"> <ClCompile Include="..\..\modules\ripple_core\functional\ripple_Config.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
@@ -345,6 +352,13 @@
</ClCompile> </ClCompile>
<ClCompile Include="..\..\modules\ripple_json\ripple_json.cpp" /> <ClCompile Include="..\..\modules\ripple_json\ripple_json.cpp" />
<ClCompile Include="..\..\modules\ripple_leveldb\ripple_leveldb.cpp" /> <ClCompile Include="..\..\modules\ripple_leveldb\ripple_leveldb.cpp" />
<ClCompile Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\ripple_net.cpp" />
<ClCompile Include="..\..\modules\ripple_sqlite\ripple_sqlite.c" /> <ClCompile Include="..\..\modules\ripple_sqlite\ripple_sqlite.c" />
<ClCompile Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.cpp"> <ClCompile Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
@@ -384,12 +398,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\HTTPRequest.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\HttpsClient.cpp"> <ClCompile Include="..\..\src\cpp\ripple\HttpsClient.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -1336,6 +1344,10 @@
<ClInclude Include="..\..\modules\ripple_basics\utility\ripple_ThreadName.h" /> <ClInclude Include="..\..\modules\ripple_basics\utility\ripple_ThreadName.h" />
<ClInclude Include="..\..\modules\ripple_basics\utility\ripple_Time.h" /> <ClInclude Include="..\..\modules\ripple_basics\utility\ripple_Time.h" />
<ClInclude Include="..\..\modules\ripple_basics\utility\ripple_UptimeTimer.h" /> <ClInclude Include="..\..\modules\ripple_basics\utility\ripple_UptimeTimer.h" />
<ClInclude Include="..\..\modules\ripple_basio\boost\ripple_IoService.h" />
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio.h" />
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio_fwdecl.h" />
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio_impl.h" />
<ClInclude Include="..\..\modules\ripple_client\ripple_client.h" /> <ClInclude Include="..\..\modules\ripple_client\ripple_client.h" />
<ClInclude Include="..\..\modules\ripple_core\functional\ripple_Config.h" /> <ClInclude Include="..\..\modules\ripple_core\functional\ripple_Config.h" />
<ClInclude Include="..\..\modules\ripple_core\functional\ripple_ILoadFeeTrack.h" /> <ClInclude Include="..\..\modules\ripple_core\functional\ripple_ILoadFeeTrack.h" />
@@ -1378,6 +1390,8 @@
<ClInclude Include="..\..\modules\ripple_json\json\json_writer.h" /> <ClInclude Include="..\..\modules\ripple_json\json\json_writer.h" />
<ClInclude Include="..\..\modules\ripple_json\ripple_json.h" /> <ClInclude Include="..\..\modules\ripple_json\ripple_json.h" />
<ClInclude Include="..\..\modules\ripple_leveldb\ripple_leveldb.h" /> <ClInclude Include="..\..\modules\ripple_leveldb\ripple_leveldb.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.h" />
<ClInclude Include="..\..\modules\ripple_net\ripple_net.h" />
<ClInclude Include="..\..\modules\ripple_sqlite\ripple_sqlite.h" /> <ClInclude Include="..\..\modules\ripple_sqlite\ripple_sqlite.h" />
<ClInclude Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.h" /> <ClInclude Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.h" />
<ClInclude Include="..\..\modules\ripple_websocket\ripple_websocket.h" /> <ClInclude Include="..\..\modules\ripple_websocket\ripple_websocket.h" />
@@ -1385,7 +1399,6 @@
<ClInclude Include="..\..\src\cpp\ripple\CallRPC.h" /> <ClInclude Include="..\..\src\cpp\ripple\CallRPC.h" />
<ClInclude Include="..\..\src\cpp\ripple\ChangeTransactor.h" /> <ClInclude Include="..\..\src\cpp\ripple\ChangeTransactor.h" />
<ClInclude Include="..\..\src\cpp\ripple\Contract.h" /> <ClInclude Include="..\..\src\cpp\ripple\Contract.h" />
<ClInclude Include="..\..\src\cpp\ripple\HTTPRequest.h" />
<ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h" /> <ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h" />
<ClInclude Include="..\..\src\cpp\ripple\Interpreter.h" /> <ClInclude Include="..\..\src\cpp\ripple\Interpreter.h" />
<ClInclude Include="..\..\src\cpp\ripple\Ledger.h" /> <ClInclude Include="..\..\src\cpp\ripple\Ledger.h" />
@@ -1566,6 +1579,8 @@
<None Include="..\..\modules\ripple_json\json\json_internalarray.inl" /> <None Include="..\..\modules\ripple_json\json\json_internalarray.inl" />
<None Include="..\..\modules\ripple_json\json\json_internalmap.inl" /> <None Include="..\..\modules\ripple_json\json\json_internalmap.inl" />
<None Include="..\..\modules\ripple_json\json\json_valueiterator.inl" /> <None Include="..\..\modules\ripple_json\json\json_valueiterator.inl" />
<None Include="..\..\SConstruct" />
<None Include="..\QtCreator\rippled.pro" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Text Include="..\..\TODO.txt" /> <Text Include="..\..\TODO.txt" />

View File

@@ -133,6 +133,24 @@
<Filter Include="[1] Ripple\ripple_app\_shamap"> <Filter Include="[1] Ripple\ripple_app\_shamap">
<UniqueIdentifier>{e54bae0e-09f1-483e-bcf7-fb6b17b8d561}</UniqueIdentifier> <UniqueIdentifier>{e54bae0e-09f1-483e-bcf7-fb6b17b8d561}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="[1] Ripple\ripple_basio">
<UniqueIdentifier>{c6a852db-1174-4bf6-a726-ebaabf595743}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_basio\boost">
<UniqueIdentifier>{c977169f-d68b-4a59-aa0b-f7d49157d9ac}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_net">
<UniqueIdentifier>{c84fc3af-f487-4eba-af78-d4be009f76d1}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_net\basics">
<UniqueIdentifier>{febf2e7e-f071-4a6c-9b81-68498fc8ea57}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_net\client">
<UniqueIdentifier>{10893147-455d-4a9e-ad3b-ec12d296a03d}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_net\peer">
<UniqueIdentifier>{03c077b7-8ae4-4e00-9eb5-78295cfd377d}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\Subtrees\sqlite\sqlite3.c"> <ClCompile Include="..\..\Subtrees\sqlite\sqlite3.c">
@@ -654,9 +672,6 @@
<ClCompile Include="..\..\src\cpp\ripple\ripple_Validations.cpp"> <ClCompile Include="..\..\src\cpp\ripple\ripple_Validations.cpp">
<Filter>[1] Ripple\ripple_app\_misc</Filter> <Filter>[1] Ripple\ripple_app\_misc</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\HTTPRequest.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\HttpsClient.cpp"> <ClCompile Include="..\..\src\cpp\ripple\HttpsClient.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile> </ClCompile>
@@ -717,9 +732,6 @@
<ClCompile Include="..\..\src\cpp\ripple\RPCHandler.cpp"> <ClCompile Include="..\..\src\cpp\ripple\RPCHandler.cpp">
<Filter>[1] Ripple\ripple_app\_rpc</Filter> <Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\RPCServer.cpp">
<Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\RPCSub.cpp"> <ClCompile Include="..\..\src\cpp\ripple\RPCSub.cpp">
<Filter>[1] Ripple\ripple_app\_rpc</Filter> <Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClCompile> </ClCompile>
@@ -825,6 +837,21 @@
<ClCompile Include="..\..\modules\ripple_data\protocol\ripple_LedgerFormats.cpp"> <ClCompile Include="..\..\modules\ripple_data\protocol\ripple_LedgerFormats.cpp">
<Filter>[1] Ripple\ripple_data\protocol</Filter> <Filter>[1] Ripple\ripple_data\protocol</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\modules\ripple_basio\ripple_basio.cpp">
<Filter>[1] Ripple\ripple_basio</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_basio\boost\ripple_IoService.cpp">
<Filter>[1] Ripple\ripple_basio\boost</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\ripple_net.cpp">
<Filter>[1] Ripple\ripple_net</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.cpp">
<Filter>[1] Ripple\ripple_net\basics</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\RPCServer.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\Subtrees\sqlite\sqlite3.h"> <ClInclude Include="..\..\Subtrees\sqlite\sqlite3.h">
@@ -1374,9 +1401,6 @@
<ClInclude Include="..\..\src\cpp\ripple\ripple_SerializedTransaction.h"> <ClInclude Include="..\..\src\cpp\ripple\ripple_SerializedTransaction.h">
<Filter>[1] Ripple\ripple_app\_misc</Filter> <Filter>[1] Ripple\ripple_app\_misc</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\HTTPRequest.h">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h"> <ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude> </ClInclude>
@@ -1449,9 +1473,6 @@
<ClInclude Include="..\..\src\cpp\ripple\RPCHandler.h"> <ClInclude Include="..\..\src\cpp\ripple\RPCHandler.h">
<Filter>[1] Ripple\ripple_app\_rpc</Filter> <Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\RPCServer.h">
<Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\CallRPC.h"> <ClInclude Include="..\..\src\cpp\ripple\CallRPC.h">
<Filter>[1] Ripple\ripple_app\_rpc</Filter> <Filter>[1] Ripple\ripple_app\_rpc</Filter>
</ClInclude> </ClInclude>
@@ -1542,6 +1563,27 @@
<ClInclude Include="..\..\modules\ripple_data\protocol\ripple_LedgerFormats.h"> <ClInclude Include="..\..\modules\ripple_data\protocol\ripple_LedgerFormats.h">
<Filter>[1] Ripple\ripple_data\protocol</Filter> <Filter>[1] Ripple\ripple_data\protocol</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio.h">
<Filter>[1] Ripple\ripple_basio</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio_impl.h">
<Filter>[1] Ripple\ripple_basio</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_basio\ripple_basio_fwdecl.h">
<Filter>[1] Ripple\ripple_basio</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_basio\boost\ripple_IoService.h">
<Filter>[1] Ripple\ripple_basio\boost</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_net\ripple_net.h">
<Filter>[1] Ripple\ripple_net</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.h">
<Filter>[1] Ripple\ripple_net\basics</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\RPCServer.h">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\cpp\ripple\ripple.proto" /> <CustomBuild Include="..\..\src\cpp\ripple\ripple.proto" />
@@ -1559,6 +1601,8 @@
<None Include="..\..\CheatSheet.md" /> <None Include="..\..\CheatSheet.md" />
<None Include="..\..\CodingStyle.md" /> <None Include="..\..\CodingStyle.md" />
<None Include="..\..\Doxyfile" /> <None Include="..\..\Doxyfile" />
<None Include="..\..\SConstruct" />
<None Include="..\QtCreator\rippled.pro" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Text Include="..\..\TODO.txt" /> <Text Include="..\..\TODO.txt" />

View File

@@ -121,13 +121,6 @@ INCLUDE_PATHS = [
COMPILED_FILES = [ COMPILED_FILES = [
'Subtrees/beast/modules/beast_core/beast_core.cpp', 'Subtrees/beast/modules/beast_core/beast_core.cpp',
'Subtrees/beast/modules/beast_basics/beast_basics.cpp', 'Subtrees/beast/modules/beast_basics/beast_basics.cpp',
'modules/ripple_basics/ripple_basics.cpp',
'modules/ripple_core/ripple_core.cpp',
'modules/ripple_data/ripple_data.cpp',
'modules/ripple_json/ripple_json.cpp',
'modules/ripple_leveldb/ripple_leveldb.cpp',
'modules/ripple_websocket/ripple_websocket.cpp',
'modules/ripple_sqlite/ripple_sqlite.c',
'modules/ripple_app/ripple_app_pt1.cpp', 'modules/ripple_app/ripple_app_pt1.cpp',
'modules/ripple_app/ripple_app_pt2.cpp', 'modules/ripple_app/ripple_app_pt2.cpp',
'modules/ripple_app/ripple_app_pt3.cpp', 'modules/ripple_app/ripple_app_pt3.cpp',
@@ -135,7 +128,16 @@ COMPILED_FILES = [
'modules/ripple_app/ripple_app_pt5.cpp', 'modules/ripple_app/ripple_app_pt5.cpp',
'modules/ripple_app/ripple_app_pt6.cpp', 'modules/ripple_app/ripple_app_pt6.cpp',
'modules/ripple_app/ripple_app_pt7.cpp', 'modules/ripple_app/ripple_app_pt7.cpp',
'modules/ripple_app/ripple_app_pt8.cpp' 'modules/ripple_app/ripple_app_pt8.cpp',
'modules/ripple_basics/ripple_basics.cpp',
'modules/ripple_basio/ripple_basio.cpp',
'modules/ripple_core/ripple_core.cpp',
'modules/ripple_data/ripple_data.cpp',
'modules/ripple_json/ripple_json.cpp',
'modules/ripple_leveldb/ripple_leveldb.cpp',
'modules/ripple_net/ripple_net.cpp',
'modules/ripple_websocket/ripple_websocket.cpp',
'modules/ripple_sqlite/ripple_sqlite.c'
] ]
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------

View File

@@ -75,6 +75,8 @@
#include "../ripple_data/ripple_data.h" #include "../ripple_data/ripple_data.h"
#include "../ripple_net/ripple_net.h"
#include "../modules/ripple_websocket/ripple_websocket.h" #include "../modules/ripple_websocket/ripple_websocket.h"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -151,7 +153,6 @@ namespace ripple
#include "src/cpp/ripple/CallRPC.h" #include "src/cpp/ripple/CallRPC.h"
#include "src/cpp/ripple/Transactor.h" #include "src/cpp/ripple/Transactor.h"
#include "src/cpp/ripple/ChangeTransactor.h" #include "src/cpp/ripple/ChangeTransactor.h"
#include "src/cpp/ripple/HTTPRequest.h"
#include "src/cpp/ripple/HttpsClient.h" #include "src/cpp/ripple/HttpsClient.h"
#include "src/cpp/ripple/ripple_TransactionAcquire.h" #include "src/cpp/ripple/ripple_TransactionAcquire.h"
#include "src/cpp/ripple/ripple_DisputedTx.h" #include "src/cpp/ripple/ripple_DisputedTx.h"
@@ -260,7 +261,6 @@ static const uint64 tenTo17m1 = tenTo17 - 1;
#include "src/cpp/ripple/AccountSetTransactor.cpp" #include "src/cpp/ripple/AccountSetTransactor.cpp"
#include "src/cpp/ripple/ripple_CanonicalTXSet.cpp" #include "src/cpp/ripple/ripple_CanonicalTXSet.cpp"
#include "src/cpp/ripple/Contract.cpp" #include "src/cpp/ripple/Contract.cpp"
#include "src/cpp/ripple/HTTPRequest.cpp"
#include "src/cpp/ripple/LedgerProposal.cpp" #include "src/cpp/ripple/LedgerProposal.cpp"
#include "src/cpp/ripple/ripple_LoadManager.cpp" #include "src/cpp/ripple/ripple_LoadManager.cpp"
#include "src/cpp/ripple/ripple_NicknameState.cpp" #include "src/cpp/ripple/ripple_NicknameState.cpp"

View File

@@ -17,9 +17,11 @@
@defgroup ripple_app @defgroup ripple_app
*/ */
#ifndef RIPPLE_MAIN_H #ifndef RIPPLE_APP_H_INCLUDED
#define RIPPLE_MAIN_H #define RIPPLE_APP_H_INCLUDED
#include "modules/ripple_basics/ripple_basics.h" #include "modules/ripple_basics/ripple_basics.h"
#include "modules/ripple_basio/ripple_basio.h"
#endif #endif

View File

@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
namespace basio
{
IoService* IoService::New (std::size_t concurrency_hint)
{
return new IoService (concurrency_hint);
}
IoService::~IoService ()
{
}
IoService::operator boost::asio::io_service& ()
{
return *m_impl;
}
IoService::IoService (std::size_t concurrency_hint)
: m_impl (new boost::asio::io_service (concurrency_hint))
{
}
void IoService::stop ()
{
m_impl->stop ();
}
bool IoService::stopped ()
{
return m_impl->stopped ();
}
void IoService::run ()
{
m_impl->run ();
}
}

View File

@@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_IOSERVICE_H_INCLUDED
#define RIPPLE_IOSERVICE_H_INCLUDED
namespace basio
{
/** Hides a boost::asio::ioservice implementation.
*/
class IoService
{
public:
static IoService* New (std::size_t concurrency_hint);
virtual ~IoService ();
operator boost::asio::io_service& ();
void stop ();
bool stopped ();
void run ();
private:
explicit IoService (std::size_t concurrency_hint);
private:
beast::ScopedPointer <boost::asio::io_service> m_impl;
};
}
#endif

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
/** Add this to get the @ref ripple_basio module.
@file ripple_basio.cpp
@ingroup ripple_basio
*/
//------------------------------------------------------------------------------
#include "BeastConfig.h"
#include "ripple_basio.h"
#include "ripple_basio_impl.h"
namespace ripple
{
#include "boost/ripple_IoService.cpp"
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_BASIO_H_INCLUDED
#define RIPPLE_BASIO_H_INCLUDED
#include "beast/modules/beast_core/beast_core.h"
// Must be outside the namespace
#include "ripple_basio_fwdecl.h"
/** Abstractions for boost::asio
This is the first step to removing the dependency on boost::asio.
These classes are designed to move boost::asio header material out of
the majority of include paths.
@ingroup ripple_basio
@file ripple_basio.h
*/
namespace ripple
{
using namespace beast;
#include "boost/ripple_IoService.h"
}
#endif

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_BASIO_FWDECL_H_INCLUDED
#define RIPPLE_BASIO_FWDECL_H_INCLUDED
/** Forward declarations for boost::asio.
These allow the header material for boost::asio to be omitted for
most translation units.
*/
namespace boost {
namespace asio {
class io_service;
}
}
#endif

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_BASIO_IMPL_H_INCLUDED
#define RIPPLE_BASIO_IMPL_H_INCLUDED
// Once everything is converted, these can be moved to ripple_basio.cpp
#include <boost/asio/io_service.hpp>
/** Implementations for boost::asio abstractions.
These require boost::asio header material to be included.
*/
namespace ripple
{
}
#endif

View File

@@ -18,7 +18,7 @@ void HTTPRequest::reset ()
eState = await_request; eState = await_request;
} }
HTTPRequestAction HTTPRequest::requestDone (bool forceClose) HTTPRequest::Action HTTPRequest::requestDone (bool forceClose)
{ {
if (forceClose || bShouldClose) if (forceClose || bShouldClose)
return haCLOSE_CONN; return haCLOSE_CONN;
@@ -35,7 +35,7 @@ std::string HTTPRequest::getReplyHeaders (bool forceClose)
return "Connection: Keep-Alive\r\n"; return "Connection: Keep-Alive\r\n";
} }
HTTPRequestAction HTTPRequest::consume (boost::asio::streambuf& buf) HTTPRequest::Action HTTPRequest::consume (boost::asio::streambuf& buf)
{ {
std::string line; std::string line;
std::istream is (&buf); std::istream is (&buf);

View File

@@ -4,10 +4,15 @@
*/ */
//============================================================================== //==============================================================================
#ifndef HTTPREQUEST__HPP #ifndef RIPPLE_HTTPREQUEST_H_INCLUDED
#define HTTPREQUEST__HPP #define RIPPLE_HTTPREQUEST_H_INCLUDED
enum HTTPRequestAction /** An HTTP request we are handling from a client.
*/
class HTTPRequest
{
public:
enum Action
{ {
// What the application code needs to do // What the application code needs to do
haERROR = 0, haERROR = 0,
@@ -17,11 +22,6 @@ enum HTTPRequestAction
haCLOSE_CONN = 4 haCLOSE_CONN = 4
}; };
class HTTPRequest
{
// an HTTP request we are handling from a client
public:
HTTPRequest () : eState (await_request), iDataSize (0), bShouldClose (true) HTTPRequest () : eState (await_request), iDataSize (0), bShouldClose (true)
{ {
; ;
@@ -59,8 +59,8 @@ public:
} }
std::string getReplyHeaders (bool forceClose); std::string getReplyHeaders (bool forceClose);
HTTPRequestAction consume (boost::asio::streambuf&); Action consume (boost::asio::streambuf&);
HTTPRequestAction requestDone (bool forceClose); // call after reply is sent Action requestDone (bool forceClose); // call after reply is sent
int getDataSize () int getDataSize ()
{ {

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
/** Add this to get the @ref ripple_net module.
@file ripple_net.cpp
@ingroup ripple_net
*/
#include "BeastConfig.h"
#include "ripple_net.h"
namespace ripple
{
#include "basics/ripple_HTTPRequest.cpp"
}

View File

@@ -0,0 +1,32 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_NET_H_INCLUDED
#define RIPPLE_NET_H_INCLUDED
/** Include this to get the @ref ripple_net module.
@file ripple_net.h
@ingroup ripple_net
*/
/** Network classes.
This module provides classes that handle all network activities.
@defgroup ripple_net
*/
#include "../ripple_basics/ripple_basics.h"
namespace ripple
{
#include "basics/ripple_HTTPRequest.h"
}
#endif

View File

@@ -7,9 +7,6 @@
#ifndef __AUTOSOCKET_H_ #ifndef __AUTOSOCKET_H_
#define __AUTOSOCKET_H_ #define __AUTOSOCKET_H_
namespace basio = boost::asio;
namespace bassl = basio::ssl;
// Socket wrapper that supports both SSL and non-SSL connections. // Socket wrapper that supports both SSL and non-SSL connections.
// Generally, handle it as you would an SSL connection. // Generally, handle it as you would an SSL connection.
// To force a non-SSL connection, just don't call async_handshake. // To force a non-SSL connection, just don't call async_handshake.
@@ -18,7 +15,7 @@ namespace bassl = basio::ssl;
class AutoSocket class AutoSocket
{ {
public: public:
typedef bassl::stream<basio::ip::tcp::socket> ssl_socket; typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> ssl_socket;
typedef boost::shared_ptr<ssl_socket> socket_ptr; typedef boost::shared_ptr<ssl_socket> socket_ptr;
typedef ssl_socket::next_layer_type plain_socket; typedef ssl_socket::next_layer_type plain_socket;
typedef ssl_socket::lowest_layer_type lowest_layer_type; typedef ssl_socket::lowest_layer_type lowest_layer_type;
@@ -27,12 +24,12 @@ public:
typedef boost::function<void (error_code)> callback; typedef boost::function<void (error_code)> callback;
public: public:
AutoSocket (basio::io_service& s, bassl::context& c) : mSecure (false), mBuffer (4) AutoSocket (boost::asio::io_service& s, boost::asio::ssl::context& c) : mSecure (false), mBuffer (4)
{ {
mSocket = boost::make_shared<ssl_socket> (boost::ref (s), boost::ref (c)); mSocket = boost::make_shared<ssl_socket> (boost::ref (s), boost::ref (c));
} }
AutoSocket (basio::io_service& s, bassl::context& c, bool secureOnly, bool plainOnly) AutoSocket (boost::asio::io_service& s, boost::asio::ssl::context& c, bool secureOnly, bool plainOnly)
: mSecure (secureOnly), mBuffer ((plainOnly || secureOnly) ? 0 : 4) : mSecure (secureOnly), mBuffer ((plainOnly || secureOnly) ? 0 : 4)
{ {
mSocket = boost::make_shared<ssl_socket> (boost::ref (s), boost::ref (c)); mSocket = boost::make_shared<ssl_socket> (boost::ref (s), boost::ref (c));
@@ -112,9 +109,9 @@ public:
else else
{ {
// autodetect // autodetect
mSocket->next_layer ().async_receive (basio::buffer (mBuffer), basio::socket_base::message_peek, mSocket->next_layer ().async_receive (boost::asio::buffer (mBuffer), boost::asio::socket_base::message_peek,
boost::bind (&AutoSocket::handle_autodetect, this, cbFunc, boost::bind (&AutoSocket::handle_autodetect, this, cbFunc,
basio::placeholders::error, basio::placeholders::bytes_transferred)); boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
} }
} }
@@ -151,27 +148,27 @@ public:
void async_read_until (const Seq& buffers, Condition condition, Handler handler) void async_read_until (const Seq& buffers, Condition condition, Handler handler)
{ {
if (isSecure ()) if (isSecure ())
basio::async_read_until (*mSocket, buffers, condition, handler); boost::asio::async_read_until (*mSocket, buffers, condition, handler);
else else
basio::async_read_until (PlainSocket (), buffers, condition, handler); boost::asio::async_read_until (PlainSocket (), buffers, condition, handler);
} }
template <typename Allocator, typename Handler> template <typename Allocator, typename Handler>
void async_read_until (basio::basic_streambuf<Allocator>& buffers, const std::string& delim, Handler handler) void async_read_until (boost::asio::basic_streambuf<Allocator>& buffers, const std::string& delim, Handler handler)
{ {
if (isSecure ()) if (isSecure ())
basio::async_read_until (*mSocket, buffers, delim, handler); boost::asio::async_read_until (*mSocket, buffers, delim, handler);
else else
basio::async_read_until (PlainSocket (), buffers, delim, handler); boost::asio::async_read_until (PlainSocket (), buffers, delim, handler);
} }
template <typename Allocator, typename MatchCondition, typename Handler> template <typename Allocator, typename MatchCondition, typename Handler>
void async_read_until (basio::basic_streambuf<Allocator>& buffers, MatchCondition cond, Handler handler) void async_read_until (boost::asio::basic_streambuf<Allocator>& buffers, MatchCondition cond, Handler handler)
{ {
if (isSecure ()) if (isSecure ())
basio::async_read_until (*mSocket, buffers, cond, handler); boost::asio::async_read_until (*mSocket, buffers, cond, handler);
else else
basio::async_read_until (PlainSocket (), buffers, cond, handler); boost::asio::async_read_until (PlainSocket (), buffers, cond, handler);
} }
template <typename Buf, typename Handler> template <typename Buf, typename Handler>
@@ -202,7 +199,7 @@ public:
} }
template <typename Allocator, typename Condition, typename Handler> template <typename Allocator, typename Condition, typename Handler>
void async_read (basio::basic_streambuf<Allocator>& buffers, Condition cond, Handler handler) void async_read (boost::asio::basic_streambuf<Allocator>& buffers, Condition cond, Handler handler)
{ {
if (isSecure ()) if (isSecure ())
boost::asio::async_read (*mSocket, buffers, cond, handler); boost::asio::async_read (*mSocket, buffers, cond, handler);

View File

@@ -18,13 +18,25 @@ SETUP_LOG (NetworkOPs)
// code assumes this node is synched (and will continue to do so until // code assumes this node is synched (and will continue to do so until
// there's a functional network. // there's a functional network.
NetworkOPs::NetworkOPs (boost::asio::io_service& io_service, LedgerMaster* pLedgerMaster) : NetworkOPs::NetworkOPs (boost::asio::io_service& io_service, LedgerMaster* pLedgerMaster)
mMode (omDISCONNECTED), mNeedNetworkLedger (false), mProposing (false), mValidating (false), : mMode (omDISCONNECTED)
mFeatureBlocked (false), , mNeedNetworkLedger (false)
mNetTimer (io_service), mLedgerMaster (pLedgerMaster), mCloseTimeOffset (0), mLastCloseProposers (0), , mProposing (false)
mLastCloseConvergeTime (1000 * LEDGER_IDLE_INTERVAL), mLastCloseTime (0), mLastValidationTime (0), , mValidating (false)
mFetchPack ("FetchPack", 2048, 20), mLastFetchPack (0), mFetchSeq (static_cast<uint32> (-1)), , mFeatureBlocked (false)
mLastLoadBase (256), mLastLoadFactor (256) , mNetTimer (io_service)
, mLedgerMaster (pLedgerMaster)
, mCloseTimeOffset (0)
, mLastCloseProposers (0)
, mLastCloseConvergeTime (1000 * LEDGER_IDLE_INTERVAL)
, mLastCloseTime (0)
, mLastValidationTime (0)
, mFetchPack ("FetchPack", 2048, 20)
, mLastFetchPack (0)
// VFALCO TODO Give this magic number a name
, mFetchSeq (static_cast <uint32> (-1))
, mLastLoadBase (256)
, mLastLoadFactor (256)
{ {
} }
@@ -2278,11 +2290,18 @@ bool NetworkOPs::shouldFetchPack (uint32 seq)
int size = mFetchPack.getCacheSize (); int size = mFetchPack.getCacheSize ();
if (size == 0) if (size == 0)
{
// VFALCO TODO Give this magic number a name
//
mFetchSeq = static_cast<uint32> (-1); mFetchSeq = static_cast<uint32> (-1);
}
else if (mFetchPack.getCacheSize () > 64) else if (mFetchPack.getCacheSize () > 64)
{
return false; return false;
}
mLastFetchPack = now; mLastFetchPack = now;
return true; return true;
} }

View File

@@ -397,6 +397,11 @@ private:
TaggedCache< uint256, Blob , UptimeTimerAdapter > mFetchPack; TaggedCache< uint256, Blob , UptimeTimerAdapter > mFetchPack;
uint32 mLastFetchPack; uint32 mLastFetchPack;
// VFALCO TODO Document the special value uint32(-1) for this member
// and replace uint32(-1) with a constant. It is initialized
// in the ctor-initializer list to this constant.
//
uint32 mFetchSeq; uint32 mFetchSeq;
uint32 mLastLoadBase; uint32 mLastLoadBase;

View File

@@ -49,22 +49,22 @@ void RPCServer::handle_read_line (const boost::system::error_code& e)
if (e) if (e)
return; return;
HTTPRequestAction action = mHTTPRequest.consume (mLineBuffer); HTTPRequest::Action action = mHTTPRequest.consume (mLineBuffer);
if (action == haDO_REQUEST) if (action == HTTPRequest::haDO_REQUEST)
{ {
// request with no body // request with no body
WriteLog (lsWARNING, RPCServer) << "RPC HTTP request with no body"; WriteLog (lsWARNING, RPCServer) << "RPC HTTP request with no body";
mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)));
return; return;
} }
else if (action == haREAD_LINE) else if (action == HTTPRequest::haREAD_LINE)
{ {
boost::asio::async_read_until (mSocket, mLineBuffer, "\r\n", boost::asio::async_read_until (mSocket, mLineBuffer, "\r\n",
mStrand.wrap (boost::bind (&RPCServer::handle_read_line, shared_from_this (), mStrand.wrap (boost::bind (&RPCServer::handle_read_line, shared_from_this (),
boost::asio::placeholders::error))); boost::asio::placeholders::error)));
} }
else if (action == haREAD_RAW) else if (action == HTTPRequest::haREAD_RAW)
{ {
int rLen = mHTTPRequest.getDataSize (); int rLen = mHTTPRequest.getDataSize ();
@@ -182,9 +182,9 @@ void RPCServer::handle_write (const boost::system::error_code& e)
if (!e) if (!e)
{ {
HTTPRequestAction action = mHTTPRequest.requestDone (false); HTTPRequest::Action action = mHTTPRequest.requestDone (false);
if (action == haCLOSE_CONN) if (action == HTTPRequest::haCLOSE_CONN)
mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)));
else else
{ {

View File

@@ -208,6 +208,10 @@ private:
private: private:
boost::asio::io_service mIOService; boost::asio::io_service mIOService;
boost::asio::io_service mAuxService; boost::asio::io_service mAuxService;
// The lifetime of the io_service::work object informs the io_service
// of when the work starts and finishes. io_service::run() will not exit
// while the work object exists.
//
boost::asio::io_service::work mIOWork; boost::asio::io_service::work mIOWork;
boost::recursive_mutex mMasterLock; boost::recursive_mutex mMasterLock;