Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
cbc7a0d
Introduce QuicCommunication: Add basic connection of QUIC protocol su…
Dec 18, 2025
1bd7893
Refactor QuicCommunication: Modularize QUIC initialization, improve l…
Dec 18, 2025
f5d1ef5
Enhance QuicCommunication: Add stream callback + message sending, imp…
Dec 22, 2025
ccf380e
Add `toString` method for `ConnectionState` in QuicCommunication for …
Dec 22, 2025
a052f92
Implement message queuing and threading in QuicCommunication for bidi…
Jan 3, 2026
e55e244
Refactor `QuicCommunication`: Improve comments and documentation, rem…
Jan 5, 2026
d6f401e
Refactor `QuicCommunication`: Extract `getStreamId` method, improve l…
Jan 5, 2026
724050b
Refactor `QuicCommunication`: Simplify `StreamSend` logic, improve er…
Jan 5, 2026
6628c78
Refactor `QuicCommunication`: Add detailed event handling comments, i…
Jan 5, 2026
c32cab0
Refactor `QuicCommunication`: Extract `getProtocolSettingsString` met…
Jan 6, 2026
6245c10
Refactor `QuicCommunication`: Replace `logInfo` with `logDebug`, refi…
Jan 6, 2026
67530a5
Refactor `QuicCommunication`: Replace error logs with exceptions for …
Jan 6, 2026
e069bc5
Refactor `QuicCommunication`: Add connection state check before sendi…
Jan 6, 2026
f7bf6ec
Refactor `QuicCommunication`: Replace QuicCommunication::ConnectionSt…
Jan 7, 2026
c30c723
Refactor `QuicCommunication`: Replace hardcoded ALPN value with `sett…
Jan 7, 2026
35b56f4
Add `quic_example.json` configuration file for QUIC module settings
Jan 7, 2026
23f05e6
Refactor `ExternalConnection`: Remove redundant `return OK` statement…
Jan 7, 2026
704e33f
Clean up includes in `ExternalClient` and `QuicCommunication` for con…
Jan 7, 2026
d9d3088
Refactor `QuicCommunication`: Add `SendBuffer` abstraction for improv…
Jan 7, 2026
0bc2a53
Refactor `QuicCommunication`: Replace exceptions with `settings::Logg…
Jan 7, 2026
ecee8a3
Refactor `QuicCommunication`: Simplify `SendBuffer` by replacing `std…
Jan 7, 2026
b82f77e
Refactor `QuicCommunication`: Reorder initialization steps to ensure …
Jan 7, 2026
d1ade22
Refactor `QuicCommunication`: Replace `std::lock_guard` with `std::sc…
Jan 7, 2026
d2303a7
Refactor `QuicCommunication`: Add early exit for empty stream receive…
Jan 15, 2026
5853c70
Refactor `QuicCommunication`: Replace dynamic app name parameter in `…
Jan 19, 2026
30123d9
Refactor `QuicCommunication`: Replace `std::shared_ptr` with `std::un…
Jan 19, 2026
c1b3a8c
Update `README.md`: Add QUIC configuration details alongside MQTT, ex…
Jan 19, 2026
e74bc2a
Refactor `QuicCommunication`: Add comments and documentation for `Sen…
Jan 19, 2026
3e5df14
Refactor `EnumUtils`: Replace hardcoded connection state strings with…
Jan 19, 2026
be11942
Add `QuicSettingsParser` to parse QUIC settings and integrate with `Q…
Jan 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ FIND_PACKAGE(ZLIB 1.2.11 REQUIRED)
FIND_PACKAGE(fleet-protocol-cxx-helpers-static 1.2.0 REQUIRED)
FIND_PACKAGE(aeron 1.48.6 REQUIRED)
FIND_PACKAGE(async-function-execution-shared 1.0.0 REQUIRED)
FIND_PACKAGE(msquic CONFIG REQUIRED)

FILE(GLOB_RECURSE source_files "source/*")
ADD_LIBRARY(module-gateway-lib STATIC "${source_files}")
Expand All @@ -76,6 +77,7 @@ TARGET_LINK_LIBRARIES(module-gateway-lib PUBLIC
ZLIB::ZLIB
fleet-protocol-cxx-helpers-static::fleet-protocol-cxx-helpers-static
async-function-execution-shared::async-function-execution-shared
msquic
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The msquic shall be added as a dependency to the Fleet Protocol Context
https://github.com/bringauto/packager-fleet-protocol-context

@koudis will add it in week 19. 1. 2026

${CMAKE_DL_LIBS}
)

Expand Down
30 changes: 29 additions & 1 deletion include/bringauto/common_utils/EnumUtils.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include <bringauto/external_client/connection/ConnectionState.hpp>
#include <bringauto/structures/ExternalConnectionSettings.hpp>
#include <bringauto/logging/LoggerVerbosity.hpp>
#include <bringauto/settings/Constants.hpp>
Expand Down Expand Up @@ -32,6 +33,8 @@ class EnumUtils {
switch(toString) {
case structures::ProtocolType::MQTT:
return settings::Constants::MQTT;
case structures::ProtocolType::QUIC:
return settings::Constants::QUIC;
case structures::ProtocolType::DUMMY:
return settings::Constants::DUMMY;
case structures::ProtocolType::INVALID:
Expand Down Expand Up @@ -71,6 +74,31 @@ class EnumUtils {
}
};

};
/**
* @brief Converts connection state to string
*
* @param state external_client::connection::ConnectionState
* @return std::string_view
*/
static constexpr std::string_view connectionStateToString(
external_client::connection::ConnectionState state
) {
using enum external_client::connection::ConnectionState;

switch (state) {
case NOT_INITIALIZED:
return settings::Constants::LOG_CONNECTION_STATE_NOT_INITIALIZED;
case NOT_CONNECTED:
return settings::Constants::LOG_CONNECTION_STATE_NOT_CONNECTED;
case CONNECTING:
return settings::Constants::LOG_CONNECTION_STATE_CONNECTING;
case CONNECTED:
return settings::Constants::LOG_CONNECTION_STATE_CONNECTED;
case CLOSING:
return settings::Constants::LOG_CONNECTION_STATE_CLOSING;
default:
return settings::Constants::LOG_UNKNOWN;
}
}
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ enum class ConnectionState {
/**
* CONNECTED - Client is connected to the External server
*/
CONNECTED
CONNECTED,
/**
* CLOSING - Client closing connection to the External server
*/
CLOSING
};
}
Loading