File tree 2 files changed +31
-3
lines changed
2 files changed +31
-3
lines changed Original file line number Diff line number Diff line change @@ -151,6 +151,18 @@ TEST_CASE("message equality non equal lhs empty", "[message]")
151
151
CHECK (msg_a != msg_b);
152
152
}
153
153
154
+ TEST_CASE (" message to string" , " [message]" )
155
+ {
156
+ const zmq::message_t a;
157
+ const zmq::message_t b (" Foo" , 3 );
158
+ CHECK (a.to_string () == " " );
159
+ CHECK (b.to_string () == " Foo" );
160
+ #ifdef ZMQ_CPP17
161
+ CHECK (a.to_string_view () == " " );
162
+ CHECK (b.to_string_view () == " Foo" );
163
+ #endif
164
+ }
165
+
154
166
#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
155
167
TEST_CASE (" message routing id persists" , " [message]" )
156
168
{
Original file line number Diff line number Diff line change @@ -552,9 +552,25 @@ class message_t
552
552
}
553
553
#endif
554
554
555
- /* * Dump content to string. Ascii chars are readable, the rest is printed as hex.
556
- * Probably ridiculously slow.
557
- */
555
+ // interpret message content as a string
556
+ std::string to_string () const
557
+ {
558
+ return std::string (static_cast <const char *>(data ()), size ());
559
+ }
560
+ #ifdef ZMQ_CPP17
561
+ // interpret message content as a string
562
+ std::string_view to_string_view () const noexcept
563
+ {
564
+ return std::string_view (static_cast <const char *>(data ()), size ());
565
+ }
566
+ #endif
567
+
568
+ /* * Dump content to string for debugging.
569
+ * Ascii chars are readable, the rest is printed as hex.
570
+ * Probably ridiculously slow.
571
+ * Use to_string() or to_string_view() for
572
+ * interpreting the message as a string.
573
+ */
558
574
std::string str () const
559
575
{
560
576
// Partly mutuated from the same method in zmq::multipart_t
You can’t perform that action at this time.
0 commit comments