Korina Šimičević
0e62d8f8b3
Consistently use BOOST_TEST instead of BOOST_CHECK in tests
...
Summary:
related to T13767
We used BOOST_CHECK in older tests and BOOST_TEST macro in newer tests.
Now we use BOOST_TEST consistently.
Reviewers: ivica!
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D31701
2024-10-08 15:25:36 +02:00
Korina Šimičević
4cbae1056b
#includes revision and housekeeping
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D31700
2024-10-08 13:13:31 +02:00
Korina Šimičević
0d9bb94db5
Forward declare asio::ssl::stream to avoid OpenSSL dependancy
...
Summary: related to T13767, #14
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D31524
2024-09-24 15:10:03 +02:00
Korina Šimičević
10f75b9e02
Replace ring_buffer with std::deque in async_mutex
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D30933
2024-08-19 12:06:49 +02:00
Korina Šimičević
f477a02f89
Fix broken rebind_executor doc by adding a reference to Executor concept
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D30864
2024-08-09 09:51:39 +02:00
Korina Šimičević
40b1f7e00c
Initiation lambdas replaced with classes with executor_type/get_executor
...
Summary:
related to #13 , T13767
`asio::cancel_at` and `asio::cancel_after` (coming with Boost 1.86) use associated executor
from the initiation object to construct the underlying timer.
Therefore, initiation lambdas are replaced with classes with executor_type/get_executor to allow that functionality
(like Asio/Beast).
Alternative solutions:
1) asio::bind_executor(get_executor(), initiation)
2) async_compose
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D30861
2024-08-09 09:01:45 +02:00
Korina Šimičević
0330df77a3
Add missing assignment operators
...
Summary:
related to T13767
- add missing assignment operators
- marked single argument constructors as explicit where needed
- add even more missing includes
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D30813
2024-08-08 10:59:38 +02:00
Korina Šimičević
b55ec679bf
Add support for immediate executors
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: iljazovic, miljen
Differential Revision: https://repo.mireo.local/D30809
2024-08-08 08:08:34 +02:00
Korina Šimičević
7bc1ccf072
Add support for default completion tokens
...
Summary: related to #12 T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen
Differential Revision: https://repo.mireo.local/D30725
2024-08-06 08:22:16 +02:00
Korina Šimičević
d52090f438
Add support for g++-13,14
...
Summary:
related to T13767, #9
fix compilation error on g++-14
add g++-13 & g++-14 workflow to CI (requires ubuntu 24.04)
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29794
2024-06-03 09:57:24 +02:00
Korina Šimičević
927c1c6e3a
Update license to BSL-1.0
...
Summary: related to T13767 T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29686
2024-05-27 10:59:59 +02:00
Korina Šimičević
3570d56d9e
Update versions of CI & coverage github actions
...
Summary:
related to T13767
Upgraded github actions to versions that run on node 20 (v4).
Previous versions run on node 16 and are deprecated.
https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29494
2024-05-16 12:34:14 +02:00
Korina Šimičević
dc2b2d9bbb
Do not use temporaries in co_await expressions (g++ compiler bug)
...
Summary: related to T13767
Reviewers: iljazovic
Reviewed By: iljazovic
Subscribers: miljen
Differential Revision: https://repo.mireo.local/D29449
2024-05-15 08:50:04 +02:00
Korina Šimičević
68840dda95
Add missing topic alias name validation
...
Summary:
related to T13767
- allow empty topic name + topic alias in props
- add mqtt features tests
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29445
2024-05-15 07:43:44 +02:00
Korina Šimičević
b2338d4135
async_run's associated ex will not replace mqtt_client's default ex
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29383
2024-05-13 08:56:20 +02:00
Korina Šimičević
794f48e915
Add support for g++-9 compiler
...
Summary: related to #7 , T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29302
2024-05-09 14:55:04 +02:00
Korina Šimičević
73ec4431ff
Fix colours in README code box
...
Summary: related to T13767
Reviewers: iljazovic
Reviewed By: iljazovic
Subscribers: miljen
Differential Revision: https://repo.mireo.local/D29246
2024-05-03 12:15:08 +02:00
Korina Šimičević
27c4ca1535
Add a build with CMake example to README and Introduction page
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29243
2024-05-03 12:04:07 +02:00
Korina Šimičević
9b7f852342
Update documentation and examples for clarity
...
Summary:
related to T13767
- Rewrite chaining of configuration functions
- Move examples not related to documentation to dev folder
- Rewrite links for clarity
- Update CMakeLists.txt to run one of the examples
- Rewrite auto reconnect and auto retry mechanism for clarity
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D29044
2024-04-24 14:08:46 +02:00
Korina Šimičević
bfae05f7a9
Remove deprecated API usage
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28958
2024-04-16 11:54:46 +02:00
Bruno Iljazovic
ccc8d48efc
Fix MSVC warning and test fail.
...
Reviewers: korina
Reviewed By: korina
Differential Revision: https://repo.mireo.local/D28583
2024-03-22 11:37:22 +01:00
Bruno Iljazovic
174b0c312f
Maintain publish order even when throttling.
...
Summary: When broker sets receive maximum, and multiple messages with QoS 0 and QoS > 0 are published at the same time, we should maintain order in which async_publish calls were made. Before, QoS > 0 publishes would always be put at the end of the buffer.
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D28456
2024-03-22 10:45:18 +01:00
Korina Šimičević
aea5175e8a
Add a chapter on multithreading and thread safety
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28563
2024-03-21 14:59:37 +01:00
Korina Šimičević
c7a4fcd507
Add a chapter on asio compliance - allocators
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28543
2024-03-21 08:31:23 +01:00
Korina Šimičević
b545d67e26
Add a chapter on asio compliance - per operation cancellation
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28516
2024-03-20 10:29:13 +01:00
Korina Šimičević
0d6bbbc424
Add a chapter on asio compliance - executors
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28496
2024-03-20 10:11:55 +01:00
Korina Šimičević
8dfbdf2d38
Update publisher and receiver examples
...
Summary:
related to T12804
publisher example will now showcase how to publish a message every 5 seconds
receiver example will now show how to subscribe, indefinitely receive messages and resubscribe if needed
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28472
2024-03-15 15:23:33 +01:00
Korina Šimičević
4b65ffc194
Add a chapter on disconnection
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28465
2024-03-15 07:39:58 +01:00
Korina Šimičević
bbcc7b1cd0
Add a chapter on optimising communication (multiflight, packet queing)
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28440
2024-03-13 15:00:02 +01:00
Korina Šimičević
5886fbf82b
Add a chapter on maintaing a healthy connection (keep alive, ping, read timeout)
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28240
2024-03-12 12:32:17 +01:00
Korina Šimičević
f34705d74e
Add a chapter on auto-reconnect and retry mechanism
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28198
2024-02-29 14:19:28 +01:00
Korina Šimičević
a1249b433d
Reconnect on every Reason Code > 0x80 received in the CONNACK packet
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28217
2024-02-29 14:18:33 +01:00
Korina Šimičević
3abacf7a41
Documentation rework - add Configuring the Client chapter
...
Summary: related to T12804
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28182
2024-02-28 10:30:32 +01:00
Bruno Iljazovic
701698e5ec
resend terminal disconnect
...
Summary:
- if we are in the process of connecting when user invokes async_disconnect we should send a disconnect packet after connect completes
- move integration disconnect tests to integration folder
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D28119
v1.0.1
2024-02-23 14:40:00 +01:00
Korina Šimičević
2f055e8894
Remove connection error codes
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28117
2024-02-23 14:01:28 +01:00
Korina Šimičević
3d80f47010
Open and set socket options on the lowest layer before initiating connect_op
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28111
2024-02-23 13:25:59 +01:00
Korina Šimičević
20f7f2fd5d
Add Windows specific error codes to should-reconnect condition
...
Summary: related to T11798
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28103
2024-02-23 10:55:29 +01:00
Korina Šimičević
c51b570f6a
Document per-operation cancellation for all asynchronous operations
...
Summary:
related to T12804
- document per-operation cancellation for all async ops
- async_disconnect no longer copies documentation from other overload
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28085
2024-02-22 13:10:58 +01:00
Korina Šimičević
29054b4f3c
Move any_authenticator, control_packet and pid_allocator to detail namespace
...
Summary: related to T13767
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28084
2024-02-22 12:37:01 +01:00
Korina Šimičević
634a4bdfa9
async_disconnect will close the connection regardless of the current connection state
...
Summary: related to T13761
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28057
2024-02-22 12:14:24 +01:00
Korina Šimičević
1c29b86030
Use basic_channel instead of basic_concurrent_channel
...
Summary: related to T11798
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D28061
2024-02-22 10:03:35 +01:00
Bruno Iljazovic
22d3b644c5
add subscription_identifers unit test
...
Reviewers: korina
Reviewed By: korina
Differential Revision: https://repo.mireo.local/D28003
2024-02-19 14:19:24 +01:00
Korina Šimičević
7cbd7725fc
Wait exponentially longer when all hosts have been exhausted during reconnect
...
Summary: related to T13746
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D27995
2024-02-19 13:26:12 +01:00
Bruno Iljazovic
38f2cb2496
Add bool conversion operator to subscription_identifiers.
...
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D27993
2024-02-19 12:03:00 +01:00
Bruno Iljazovic
03f37345b6
Remove temporaries from co_awaited expressions.
...
Summary: - some older gcc versions don't handle temporaries in co_awaited expressions correctly, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98401
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D27990
2024-02-19 11:54:15 +01:00
Bruno Iljazovic
c9a7184459
Use properties by reference when validating them.
...
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D27963
2024-02-16 13:49:52 +01:00
Bruno Iljazovic
1acdd99f28
Support multiple subscription identifiers in received messages.
...
Summary:
- refactor property encoding
- change user property type to be std::pair<std::string, std::string>
Reviewers: ivica
Reviewed By: ivica
Subscribers: korina
Differential Revision: https://repo.mireo.local/D27867
2024-02-16 10:59:07 +01:00
Korina Šimičević
b40ddb3ced
Separate tests to compile and run all configuration-related client functions
...
Summary: related to T12015
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D27945
2024-02-16 07:38:58 +01:00
Korina Šimičević
eb510ae1d4
Fixed inconsistencies in connect/connack property accessor function signatures
...
Summary: related to T11798
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D27941
2024-02-15 13:26:45 +01:00
Korina Šimičević
9cb54f73a4
Remove unnecessary casts to unsigned types
...
Summary: related to T12015
Reviewers: ivica
Reviewed By: ivica
Subscribers: miljen, iljazovic
Differential Revision: https://repo.mireo.local/D27927
2024-02-15 12:00:42 +01:00