diff options
| author | Eric Lombrozo <[email protected]> | 2013-01-07 08:07:51 -0800 |
|---|---|---|
| committer | Eric Lombrozo <[email protected]> | 2013-06-05 20:36:10 -0700 |
| commit | 663224c2324d64134f8587fe77d1d787c0353b20 (patch) | |
| tree | db06935be9f6e57b6478e866b63f72b3a5934d81 /src | |
| parent | Moved unrelated-to-network calls in StartNode and StopNode into init.cpp (diff) | |
| download | discoin-663224c2324d64134f8587fe77d1d787c0353b20.tar.xz discoin-663224c2324d64134f8587fe77d1d787c0353b20.zip | |
Removed net.cpp's dependency on init.h.
Added explicit include of main.h in init.cpp, changed include of init.h to include of main.h in net.cpp.
Added function registration for net.cpp in init.cpp's network initialization.
Removed protocol.cpp's dependency on main.h.
TODO: Remove main.h include in net.cpp.
Diffstat (limited to 'src')
| -rw-r--r-- | src/init.cpp | 7 | ||||
| -rw-r--r-- | src/net.cpp | 28 | ||||
| -rw-r--r-- | src/net.h | 11 | ||||
| -rw-r--r-- | src/protocol.cpp | 1 |
4 files changed, 42 insertions, 5 deletions
diff --git a/src/init.cpp b/src/init.cpp index 48fd5ae97..1eee4d247 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -3,11 +3,12 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include "init.h" +#include "main.h" #include "txdb.h" #include "walletdb.h" #include "bitcoinrpc.h" #include "net.h" -#include "init.h" #include "util.h" #include "ui_interface.h" #include "checkpoints.h" @@ -569,6 +570,10 @@ bool AppInit2(boost::thread_group& threadGroup) // ********************************************************* Step 6: network initialization + SetProcessMessagesHandler(ProcessMessages); + SetSendMessagesHandler(SendMessages); + SetStartShutdownHandler(StartShutdown); + int nSocksVersion = GetArg("-socks", 5); if (nSocksVersion != 4 && nSocksVersion != 5) return InitError(strprintf(_("Unknown -socks proxy version requested: %i"), nSocksVersion)); diff --git a/src/net.cpp b/src/net.cpp index 7a1fcc503..5932f5f8e 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -5,7 +5,7 @@ #include "db.h" #include "net.h" -#include "init.h" +#include "main.h" #include "addrman.h" #include "ui_interface.h" #include "script.h" @@ -68,6 +68,28 @@ CCriticalSection cs_vAddedNodes; static CSemaphore *semOutbound = NULL; +// +// Handlers that need to be registered +// +static ProcessMessagesHandler fnProcessMessages = NULL; +static SendMessagesHandler fnSendMessages = NULL; +static StartShutdownHandler fnStartShutdown = NULL; + +void SetProcessMessagesHandler(ProcessMessagesHandler handler) +{ + fnProcessMessages = handler; +} + +void SetSendMessagesHandler(SendMessagesHandler handler) +{ + fnSendMessages = handler; +} + +void SetStartShutdownHandler(StartShutdownHandler handler) +{ + fnStartShutdown = handler; +} + void AddOneShot(string strDest) { LOCK(cs_vOneShots); @@ -1632,8 +1654,8 @@ void ThreadMessageHandler() // Send messages { TRY_LOCK(pnode->cs_vSend, lockSend); - if (lockSend) - SendMessages(pnode, pnode == pnodeTrickle); + if (lockSend && fnSendMessages) + fnSendMessages(pnode, pnode == pnodeTrickle); } boost::this_thread::interruption_point(); } @@ -45,6 +45,17 @@ void StartNode(boost::thread_group& threadGroup); bool StopNode(); void SocketSendData(CNode *pnode); +// +// Handlers that require registration +// +typedef bool (*ProcessMessagesHandler)(CNode* pfrom); +typedef bool (*SendMessagesHandler)(CNode* pto, bool fSendTrickle); +typedef void (*StartShutdownHandler)(); + +void SetProcessMessagesHandler(ProcessMessagesHandler handler); +void SetSendMessagesHandler(SendMessagesHandler handler); +void SetStartShutdownHandler(StartShutdownHandler handler); + enum { LOCAL_NONE, // unknown diff --git a/src/protocol.cpp b/src/protocol.cpp index 88bbe49af..1e22467a3 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -6,7 +6,6 @@ #include "protocol.h" #include "util.h" #include "netbase.h" -#include "main.h" #ifndef WIN32 # include <arpa/inet.h> |