Refactor ripple_websocket.h out of the main header material

This commit is contained in:
Vinnie Falco
2013-09-01 03:27:58 -07:00
parent 5f1a8670dc
commit 027fba44ed
7 changed files with 19 additions and 43 deletions

View File

@@ -954,12 +954,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\basics\RPCServer.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\basics\SNTPClient.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -1539,6 +1533,7 @@
<ClInclude Include="..\..\modules\ripple_leveldb\ripple_leveldb.h" />
<ClInclude Include="..\..\modules\ripple_mdb\ripple_mdb.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\impl\MultiSocketType.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\impl\RPCServerImp.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\RippleSSLContext.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\HTTPRequest.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\HTTPClient.h" />

View File

@@ -840,9 +840,6 @@
<ClCompile Include="..\..\modules\ripple_net\basics\MultiSocket.cpp">
<Filter>[1] Ripple\ripple_net\basics</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\basics\RPCServer.cpp">
<Filter>[1] Ripple\ripple_net\basics</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_net\basics\SNTPClient.cpp">
<Filter>[1] Ripple\ripple_net\basics</Filter>
</ClCompile>
@@ -1706,6 +1703,9 @@
<ClInclude Include="..\..\modules\ripple_net\rpc\InfoSub.h">
<Filter>[1] Ripple\ripple_net\rpc</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_net\basics\impl\RPCServerImp.h">
<Filter>[1] Ripple\ripple_net\basics\impl</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\modules\ripple_data\protocol\ripple.proto">

View File

@@ -39,8 +39,9 @@ public:
void startListening ()
{
RPCServer::pointer new_connection = RPCServer::New (
mAcceptor.get_io_service (), m_sslContext->get (), m_rpcServerHandler);
// VFALCO NOTE Why not use make_shared?
RPCServerImp::pointer new_connection (boost::make_shared <RPCServerImp> (
mAcceptor.get_io_service (), m_sslContext->get (), m_rpcServerHandler));
mAcceptor.set_option (boost::asio::ip::tcp::acceptor::reuse_address (true));
@@ -66,7 +67,7 @@ public:
//--------------------------------------------------------------------------
void handleConnect (RPCServer::pointer new_connection, boost::system::error_code const& error)
void handleConnect (RPCServerImp::pointer new_connection, boost::system::error_code const& error)
{
bool delay = false;

View File

@@ -8,16 +8,10 @@
#define RIPPLE_NET_BASICS_RPCSERVER_H_INCLUDED
/** Provides RPC services to a client.
Each client has a separate instance of this object.
*/
// VFALCO NOTE This looks like intrusve shared object?
//
class RPCServer : public boost::enable_shared_from_this <RPCServer>
class RPCServer
{
public:
typedef boost::shared_ptr <RPCServer> pointer;
public:
/** Handles a RPC client request.
*/
@@ -42,20 +36,12 @@ public:
virtual std::string processRequest (std::string const& request, std::string const& remoteAddress) = 0;
};
static pointer New (
boost::asio::io_service& io_service,
boost::asio::ssl::context& context,
Handler& handler);
virtual ~RPCServer () { }
/** Called when the connection is established.
*/
virtual void connected () = 0;
// VFALCO TODO AutoSocket exposes all sorts of boost::asio interface
virtual AutoSocket& getSocket () = 0;
// VFALCO TODO Remove this since it exposes boost
virtual boost::asio::ip::tcp::socket& getRawSocket () = 0;

View File

@@ -6,9 +6,14 @@
SETUP_LOG (RPCServer)
class RPCServerImp : public RPCServer, LeakChecked <RPCServerImp>
class RPCServerImp
: public RPCServer
, public boost::enable_shared_from_this <RPCServerImp>
, public LeakChecked <RPCServerImp>
{
public:
typedef boost::shared_ptr <RPCServerImp> pointer;
RPCServerImp (
boost::asio::io_service& io_service,
boost::asio::ssl::context& context,
@@ -20,7 +25,7 @@ public:
}
//--------------------------------------------------------------------------
private:
enum
{
maxQueryBytes = 1024 * 1024
@@ -256,13 +261,3 @@ private:
HTTPRequest mHTTPRequest;
};
//------------------------------------------------------------------------------
RPCServer::pointer RPCServer::New (
boost::asio::io_service& io_service,
boost::asio::ssl::context& context,
Handler& handler)
{
return pointer (new RPCServerImp (io_service, context, handler));
}

View File

@@ -28,6 +28,8 @@
#include "ripple_net.h"
#include "../ripple_websocket/ripple_websocket.h" // for HTTPClient, RPCDoor
namespace ripple
{
@@ -36,8 +38,8 @@ namespace ripple
#include "basics/MultiSocket.cpp"
#include "basics/HTTPRequest.cpp"
#include "basics/HTTPClient.cpp"
# include "basics/impl/RPCServerImp.h"
#include "basics/RPCDoor.cpp"
#include "basics/RPCServer.cpp"
#include "basics/SNTPClient.cpp"
#include "rpc/RPCCall.cpp"

View File

@@ -17,9 +17,6 @@
#include "../ripple_core/ripple_core.h"
#include "../ripple_data/ripple_data.h"
// VFALCO TODO MOVE TO .cpp ASAP!, make users abstract!
#include "../ripple_websocket/ripple_websocket.h"
namespace ripple
{