Skip to content

Commit 2167903

Browse files
committed
Update DelegateMQ source
1 parent dd2a1ef commit 2167903

File tree

11 files changed

+22
-13
lines changed

11 files changed

+22
-13
lines changed

DelegateMQ/delegate/Delegate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
/// @file
99
/// @brief Delegate series of classes are used to invoke a function synchronously.
10-
/// @details Delgates support binding to free functions, class instance functions, class
10+
/// @details Delegates support binding to free functions, class instance functions, class
1111
/// static function, and std::function targets. Lambda functions can be bound to a delegate
1212
/// when assigned to a `std::function`. The classes are not thread-safe.
1313
///

DelegateMQ/delegate/DelegateRemote.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,7 @@ class DelegateFreeRemote<RetType(Args...)> : public DelegateFree<RetType(Args...
353353

354354
if (!is.good()) {
355355
RaiseError(m_id, DelegateError::ERR_STREAM_NOT_GOOD);
356+
return false;
356357
}
357358

358359
// Invoke the delegate function synchronously
@@ -521,6 +522,7 @@ class DelegateFreeRemote<RetType(Args...)> : public DelegateFree<RetType(Args...
521522
/// @param[in] auxCode Optional auxiliary code.
522523
/// @throws std::runtime_error If no error handler is registered.
523524
void RaiseError(DelegateRemoteId id, DelegateError error, DelegateErrorAux auxCode = 0) {
525+
m_error = error;
524526
if (m_errorHandler) {
525527
m_errorHandler(id, error, auxCode);
526528
} else {
@@ -862,6 +864,7 @@ class DelegateMemberRemote<TClass, RetType(Args...)> : public DelegateMember<TCl
862864

863865
if (!is.good()) {
864866
RaiseError(m_id, DelegateError::ERR_STREAM_NOT_GOOD);
867+
return false;
865868
}
866869

867870
// Invoke the delegate function synchronously
@@ -1030,6 +1033,7 @@ class DelegateMemberRemote<TClass, RetType(Args...)> : public DelegateMember<TCl
10301033
/// @param[in] auxCode Optional auxiliary code.
10311034
/// @throws std::runtime_error If no error handler is registered.
10321035
void RaiseError(DelegateRemoteId id, DelegateError error, DelegateErrorAux auxCode = 0) {
1036+
m_error = error;
10331037
if (m_errorHandler) {
10341038
m_errorHandler(id, error, auxCode);
10351039
} else {
@@ -1073,8 +1077,7 @@ struct DelegateFunctionRemote; // Not defined
10731077

10741078
/// @brief `DelegateFunctionRemote<>` class asynchronously invokes a `std::function` target function.
10751079
/// @details Caution when binding to a `std::function` using this class. `std::function` cannot be
1076-
/// compared for equality directly in a meaningful way using `operator==`. Therefore, the delegate
1077-
/// library used
1080+
/// compared for equality directly in a meaningful way using `operator==`.
10781081
///
10791082
/// See `DelegateFunction<>` base class for important usage limitations.
10801083
///
@@ -1312,6 +1315,7 @@ class DelegateFunctionRemote<RetType(Args...)> : public DelegateFunction<RetType
13121315

13131316
if (!is.good()) {
13141317
RaiseError(m_id, DelegateError::ERR_STREAM_NOT_GOOD);
1318+
return false;
13151319
}
13161320

13171321
// Invoke the delegate function synchronously
@@ -1480,6 +1484,7 @@ class DelegateFunctionRemote<RetType(Args...)> : public DelegateFunction<RetType
14801484
/// @param[in] auxCode Optional auxiliary code.
14811485
/// @throws std::runtime_error If no error handler is registered.
14821486
void RaiseError(DelegateRemoteId id, DelegateError error, DelegateErrorAux auxCode = 0) {
1487+
m_error = error;
14831488
if (m_errorHandler) {
14841489
m_errorHandler(id, error, auxCode);
14851490
} else {

DelegateMQ/delegate/UnicastDelegateSafe.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
/// @file
55
/// @brief Delegate container for storing an invoking a single delegate instance.
6-
/// Class is not thread-safe.
6+
/// Class is thread-safe.
77

88
#include "UnicastDelegate.h"
99
#include <mutex>

DelegateMQ/predef/serialize/msgpack/Serializer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class Serializer<RetType(Args...)> : public dmq::ISerializer<RetType(Args...)>
5454
// Write arguments to a stream
5555
virtual std::ostream& Write(std::ostream& os, Args... args) override {
5656
try {
57+
os.seekp(0, std::ios::beg);
5758
msgpack::sbuffer buffer;
5859
make_serialized(buffer, args...);
5960
os.write(buffer.data(), buffer.size());

DelegateMQ/predef/serialize/rapidjson/Serializer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class Serializer<RetType(Args...)> : public dmq::ISerializer<RetType(Args...)>
4949
// Write arguments to a stream
5050
virtual std::ostream& Write(std::ostream& os, Args... args) override {
5151
try {
52+
os.seekp(0, std::ios::beg);
5253
rapidjson::StringBuffer sb;
5354
rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(sb);
5455

DelegateMQ/predef/serialize/serialize/Serializer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class Serializer<RetType(Args...)> : public dmq::ISerializer<RetType(Args...)>
4545
// Write arguments to a stream
4646
virtual std::ostream& Write(std::ostream& os, Args... args) override {
4747
try {
48+
os.seekp(0, std::ios::beg);
4849
serialize ser;
4950
make_serialized(ser, os, args...);
5051
}

DelegateMQ/predef/transport/mqtt/MqttTransport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class MqttTransport : public ITransport
145145
ss << seqNum << "] ";
146146

147147
// Insert delegate arguments from the stream (os)
148-
ss << os.rdbuf();
148+
ss << os.str();
149149

150150
size_t payloadLen = ss.str().length();
151151

DelegateMQ/predef/transport/win32-pipe/Win32PipeTransport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class Win32PipeTransport : public ITransport
9292
ss.write(reinterpret_cast<const char*>(&seqNum), sizeof(seqNum));
9393

9494
// Insert delegate arguments from the stream (os)
95-
ss << os.rdbuf();
95+
ss << os.str();
9696

9797
size_t length = ss.str().length();
9898
char* sendBuf = (char*)malloc(length);

DelegateMQ/predef/transport/win32-udp/Win32UdpTransport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class Win32UdpTransport : public ITransport
100100
ss.write(reinterpret_cast<const char*>(&seqNum), sizeof(seqNum));
101101

102102
// Insert delegate arguments from the stream (os)
103-
ss << os.rdbuf();
103+
ss << os.str();
104104

105105
size_t length = ss.str().length();
106106

DelegateMQ/predef/transport/zeromq/ZeroMqTransport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ class ZeroMqTransport : public ITransport
129129
ss.write(reinterpret_cast<const char*>(&seqNum), sizeof(seqNum));
130130

131131
// Insert delegate arguments from the stream (os)
132-
ss << os.rdbuf();
132+
ss << os.str();
133133

134134
size_t length = ss.str().length();
135135

0 commit comments

Comments
 (0)