|
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