Commit d89291b509e17885744539617a5dd60702029f94
1 parent
d43a11d1
Add failing binary data pubsub test
Showing
2 changed files
with
54 additions
and
0 deletions
CMakeLists.txt
| @@ -142,6 +142,9 @@ if (examples) | @@ -142,6 +142,9 @@ if (examples) | ||
| 142 | add_executable(binary_data examples/binary_data.cpp) | 142 | add_executable(binary_data examples/binary_data.cpp) |
| 143 | target_link_libraries(binary_data redox) | 143 | target_link_libraries(binary_data redox) |
| 144 | 144 | ||
| 145 | + add_executable(binary_data_publish examples/binary_data_publish.cpp) | ||
| 146 | + target_link_libraries(binary_data_publish redox) | ||
| 147 | + | ||
| 145 | add_executable(pub_sub examples/pub_sub.cpp) | 148 | add_executable(pub_sub examples/pub_sub.cpp) |
| 146 | target_link_libraries(pub_sub redox) | 149 | target_link_libraries(pub_sub redox) |
| 147 | 150 |
examples/binary_data_publish.cpp
0 → 100644
| 1 | +/** | ||
| 2 | +* Basic use of Redox to publish and subscribe binary data. | ||
| 3 | +*/ | ||
| 4 | + | ||
| 5 | +#include <iostream> | ||
| 6 | +#include <algorithm> | ||
| 7 | +#include <random> | ||
| 8 | +#include <chrono> | ||
| 9 | +#include "redox.hpp" | ||
| 10 | + | ||
| 11 | +using namespace std; | ||
| 12 | +using redox::Redox; | ||
| 13 | +using redox::Command; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | +* Random string generator. | ||
| 17 | +*/ | ||
| 18 | +std::string random_string(size_t length) { | ||
| 19 | + std::string str(length, 0); | ||
| 20 | + std::generate_n(str.begin(), length, []{ return (unsigned char)rand(); }); | ||
| 21 | + return str; | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +int main(int argc, char* argv[]) { | ||
| 25 | + | ||
| 26 | + redox::Redox rdx; // Initialize Redox | ||
| 27 | + redox::Subscriber sub; // Initialize Subscriber | ||
| 28 | + | ||
| 29 | + if(!rdx.connect("localhost", 6379)) return 1; | ||
| 30 | + if(!sub.connect("localhost", 6379)) return 1; | ||
| 31 | + | ||
| 32 | + string binary_key = random_string(100); | ||
| 33 | + string binary_data = random_string(10000); | ||
| 34 | + | ||
| 35 | + cout << "binary data size " << binary_data.length() << endl; | ||
| 36 | + | ||
| 37 | + sub.subscribe("test", [binary_data](const string& topic, const string& msg) { | ||
| 38 | + cout << "msg data size " << msg.length() << endl; | ||
| 39 | + if(msg == binary_data) cout << "Binary data matches!" << endl; | ||
| 40 | + }); | ||
| 41 | + | ||
| 42 | + this_thread::sleep_for( chrono::milliseconds(1000) ); | ||
| 43 | + | ||
| 44 | + rdx.publish("test", binary_data); | ||
| 45 | + cout << "published!" << endl; | ||
| 46 | + this_thread::sleep_for( chrono::milliseconds(1000) ); | ||
| 47 | + | ||
| 48 | + rdx.disconnect(); | ||
| 49 | + sub.disconnect(); | ||
| 50 | + return 0; | ||
| 51 | +} |