|
|
@ -9,6 +9,11 @@ |
|
|
|
|
|
|
|
|
|
|
|
static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers; |
|
|
|
static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const char *MSG_HASHBLOCK = "hashblock"; |
|
|
|
|
|
|
|
static const char *MSG_HASHTX = "hashtx"; |
|
|
|
|
|
|
|
static const char *MSG_RAWBLOCK = "rawblock"; |
|
|
|
|
|
|
|
static const char *MSG_RAWTX = "rawtx"; |
|
|
|
|
|
|
|
|
|
|
|
// Internal function to send multipart message
|
|
|
|
// Internal function to send multipart message
|
|
|
|
static int zmq_send_multipart(void *sock, const void* data, size_t size, ...) |
|
|
|
static int zmq_send_multipart(void *sock, const void* data, size_t size, ...) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -125,7 +130,7 @@ bool CZMQPublishHashBlockNotifier::NotifyBlock(const CBlockIndex *pindex) |
|
|
|
char data[32]; |
|
|
|
char data[32]; |
|
|
|
for (unsigned int i = 0; i < 32; i++) |
|
|
|
for (unsigned int i = 0; i < 32; i++) |
|
|
|
data[31 - i] = hash.begin()[i]; |
|
|
|
data[31 - i] = hash.begin()[i]; |
|
|
|
int rc = zmq_send_multipart(psocket, "hashblock", 9, data, 32, 0); |
|
|
|
int rc = zmq_send_multipart(psocket, MSG_HASHBLOCK, 9, data, 32, 0); |
|
|
|
return rc == 0; |
|
|
|
return rc == 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -136,7 +141,7 @@ bool CZMQPublishHashTransactionNotifier::NotifyTransaction(const CTransaction &t |
|
|
|
char data[32]; |
|
|
|
char data[32]; |
|
|
|
for (unsigned int i = 0; i < 32; i++) |
|
|
|
for (unsigned int i = 0; i < 32; i++) |
|
|
|
data[31 - i] = hash.begin()[i]; |
|
|
|
data[31 - i] = hash.begin()[i]; |
|
|
|
int rc = zmq_send_multipart(psocket, "hashtx", 6, data, 32, 0); |
|
|
|
int rc = zmq_send_multipart(psocket, MSG_HASHTX, 6, data, 32, 0); |
|
|
|
return rc == 0; |
|
|
|
return rc == 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -158,7 +163,7 @@ bool CZMQPublishRawBlockNotifier::NotifyBlock(const CBlockIndex *pindex) |
|
|
|
ss << block; |
|
|
|
ss << block; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int rc = zmq_send_multipart(psocket, "rawblock", 8, &(*ss.begin()), ss.size(), 0); |
|
|
|
int rc = zmq_send_multipart(psocket, MSG_RAWBLOCK, 8, &(*ss.begin()), ss.size(), 0); |
|
|
|
return rc == 0; |
|
|
|
return rc == 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -168,6 +173,6 @@ bool CZMQPublishRawTransactionNotifier::NotifyTransaction(const CTransaction &tr |
|
|
|
LogPrint("zmq", "zmq: Publish rawtx %s\n", hash.GetHex()); |
|
|
|
LogPrint("zmq", "zmq: Publish rawtx %s\n", hash.GetHex()); |
|
|
|
CDataStream ss(SER_NETWORK, PROTOCOL_VERSION); |
|
|
|
CDataStream ss(SER_NETWORK, PROTOCOL_VERSION); |
|
|
|
ss << transaction; |
|
|
|
ss << transaction; |
|
|
|
int rc = zmq_send_multipart(psocket, "rawtx", 5, &(*ss.begin()), ss.size(), 0); |
|
|
|
int rc = zmq_send_multipart(psocket, MSG_RAWTX, 5, &(*ss.begin()), ss.size(), 0); |
|
|
|
return rc == 0; |
|
|
|
return rc == 0; |
|
|
|
} |
|
|
|
} |
|
|
|