|
24 | 24 | namespace py = pybind11;
|
25 | 25 |
|
26 | 26 | Producer Client_createProducer(Client& client, const std::string& topic, const ProducerConfiguration& conf) {
|
27 |
| - Producer producer; |
28 |
| - |
29 |
| - waitForAsyncValue(std::function<void(CreateProducerCallback)>([&](CreateProducerCallback callback) { |
30 |
| - client.createProducerAsync(topic, conf, callback); |
31 |
| - }), |
32 |
| - producer); |
33 |
| - |
34 |
| - return producer; |
| 27 | + return waitForAsyncValue<Producer>( |
| 28 | + [&](CreateProducerCallback callback) { client.createProducerAsync(topic, conf, callback); }); |
35 | 29 | }
|
36 | 30 |
|
37 | 31 | Consumer Client_subscribe(Client& client, const std::string& topic, const std::string& subscriptionName,
|
38 | 32 | const ConsumerConfiguration& conf) {
|
39 |
| - Consumer consumer; |
40 |
| - |
41 |
| - waitForAsyncValue(std::function<void(SubscribeCallback)>([&](SubscribeCallback callback) { |
42 |
| - client.subscribeAsync(topic, subscriptionName, conf, callback); |
43 |
| - }), |
44 |
| - consumer); |
45 |
| - |
46 |
| - return consumer; |
| 33 | + return waitForAsyncValue<Consumer>( |
| 34 | + [&](SubscribeCallback callback) { client.subscribeAsync(topic, subscriptionName, conf, callback); }); |
47 | 35 | }
|
48 | 36 |
|
49 | 37 | Consumer Client_subscribe_topics(Client& client, const std::vector<std::string>& topics,
|
50 | 38 | const std::string& subscriptionName, const ConsumerConfiguration& conf) {
|
51 |
| - Consumer consumer; |
52 |
| - |
53 |
| - waitForAsyncValue(std::function<void(SubscribeCallback)>([&](SubscribeCallback callback) { |
54 |
| - client.subscribeAsync(topics, subscriptionName, conf, callback); |
55 |
| - }), |
56 |
| - consumer); |
57 |
| - |
58 |
| - return consumer; |
| 39 | + return waitForAsyncValue<Consumer>( |
| 40 | + [&](SubscribeCallback callback) { client.subscribeAsync(topics, subscriptionName, conf, callback); }); |
59 | 41 | }
|
60 | 42 |
|
61 | 43 | Consumer Client_subscribe_pattern(Client& client, const std::string& topic_pattern,
|
62 | 44 | const std::string& subscriptionName, const ConsumerConfiguration& conf) {
|
63 |
| - Consumer consumer; |
64 |
| - |
65 |
| - waitForAsyncValue(std::function<void(SubscribeCallback)>([&](SubscribeCallback callback) { |
66 |
| - client.subscribeWithRegexAsync(topic_pattern, subscriptionName, conf, callback); |
67 |
| - }), |
68 |
| - consumer); |
69 |
| - |
70 |
| - return consumer; |
| 45 | + return waitForAsyncValue<Consumer>([&](SubscribeCallback callback) { |
| 46 | + client.subscribeWithRegexAsync(topic_pattern, subscriptionName, conf, callback); |
| 47 | + }); |
71 | 48 | }
|
72 | 49 |
|
73 | 50 | Reader Client_createReader(Client& client, const std::string& topic, const MessageId& startMessageId,
|
74 | 51 | const ReaderConfiguration& conf) {
|
75 |
| - Reader reader; |
76 |
| - |
77 |
| - waitForAsyncValue(std::function<void(ReaderCallback)>([&](ReaderCallback callback) { |
78 |
| - client.createReaderAsync(topic, startMessageId, conf, callback); |
79 |
| - }), |
80 |
| - reader); |
81 |
| - |
82 |
| - return reader; |
| 52 | + return waitForAsyncValue<Reader>( |
| 53 | + [&](ReaderCallback callback) { client.createReaderAsync(topic, startMessageId, conf, callback); }); |
83 | 54 | }
|
84 | 55 |
|
85 | 56 | std::vector<std::string> Client_getTopicPartitions(Client& client, const std::string& topic) {
|
86 |
| - std::vector<std::string> partitions; |
87 |
| - |
88 |
| - waitForAsyncValue(std::function<void(GetPartitionsCallback)>([&](GetPartitionsCallback callback) { |
89 |
| - client.getPartitionsForTopicAsync(topic, callback); |
90 |
| - }), |
91 |
| - partitions); |
92 |
| - |
93 |
| - return partitions; |
| 57 | + return waitForAsyncValue<std::vector<std::string>>( |
| 58 | + [&](GetPartitionsCallback callback) { client.getPartitionsForTopicAsync(topic, callback); }); |
94 | 59 | }
|
95 | 60 |
|
96 | 61 | void Client_close(Client& client) {
|
|
0 commit comments