@@ -25,10 +25,18 @@ using namespace zenoh;
2525
2626int _main (int argc, char **argv) {
2727 const char *expr = " demo/example/**" ;
28- const char *value = " Get from C++" ;
29- Config config = parse_args (argc, argv, {}, {{" key_expression" , &expr}, {" payload_value" , &value}});
28+ const char *value = nullptr ;
29+ const char *target = " BEST_MATCHING" ;
30+ const char *timeout = " 10000" ;
3031
31- KeyExpr keyexpr (expr);
32+ Config config = parse_args (argc, argv, {}, {},
33+ {{" -s" , CmdArg{" Query selector (string)" , &expr}},
34+ {" -p" , CmdArg{" Query payload (string)" , &value}},
35+ {" -t" , CmdArg{" Query target (BEST_MATCHING | ALL | ALL_COMPLETE)" , &target}},
36+ {" -o" , CmdArg{" Timeout in ms (number)" , &timeout}}});
37+ uint64_t timeout_ms = std::stoi (timeout);
38+ QueryTarget query_target = parse_query_target (target);
39+ Selector selector = parse_selector (expr);
3240
3341 std::cout << " Opening session...\n " ;
3442 auto session = Session::open (std::move (config));
@@ -55,14 +63,13 @@ int _main(int argc, char **argv) {
5563 done_signal.notify_all ();
5664 };
5765
58- #if __cpp_designated_initializers >= 201707L
59- session.get (keyexpr, " " , on_reply, on_done, {.target = Z_QUERY_TARGET_ALL, .payload = Bytes::serialize (value)});
60- #else
6166 Session::GetOptions options;
62- options.target = Z_QUERY_TARGET_ALL;
63- options.payload = value;
64- session.get (keyexpr, " " , on_reply, on_done, std::move (options));
65- #endif
67+ options.target = query_target;
68+ if (value != nullptr ) {
69+ options.payload = value;
70+ }
71+ options.timeout_ms = timeout_ms;
72+ session.get (selector.key_expr , selector.parameters , on_reply, on_done, std::move (options));
6673
6774 std::unique_lock lock (m);
6875 done_signal.wait (lock, [&done] { return done; });
0 commit comments