diff --git a/cmd/really/really.cpp b/cmd/really/really.cpp index 0a67e025..c4924fdd 100644 --- a/cmd/really/really.cpp +++ b/cmd/really/really.cpp @@ -165,6 +165,7 @@ class ReallyServerDelegate : public quicr::ServerDelegate void onPublisherObject(const qtransport::TransportConnId& conn_id, [[maybe_unused]] const qtransport::DataContextId& data_ctx_id, + [[maybe_unused]] bool reliable, quicr::messages::PublishDatagram&& datagram) override { const auto list = subscribeList.find(datagram.header.name); diff --git a/dependencies/transport b/dependencies/transport index 9070d02f..7ad6ff54 160000 --- a/dependencies/transport +++ b/dependencies/transport @@ -1 +1 @@ -Subproject commit 9070d02f76ee7fefc53362838b61cb022d481e5d +Subproject commit 7ad6ff540983e675836830af19f580840eb318cc diff --git a/include/quicr/quicr_server_delegate.h b/include/quicr/quicr_server_delegate.h index fad98a34..294b611a 100644 --- a/include/quicr/quicr_server_delegate.h +++ b/include/quicr/quicr_server_delegate.h @@ -74,6 +74,8 @@ class ServerDelegate * * @param conn_id : Context id the message was received on * @param data_ctx_id : Stream ID the message was received on + * @param reliable : Indicates if object was received using + * reliable transport * @param datagram : QuicR Published Message Datagram * * @note: It is important that the implementations not perform @@ -87,6 +89,7 @@ class ServerDelegate */ virtual void onPublisherObject(const qtransport::TransportConnId& conn_id, const qtransport::DataContextId& data_ctx_id, + bool reliable, messages::PublishDatagram&& datagram) = 0; /** diff --git a/src/quicr_server_raw_session.cpp b/src/quicr_server_raw_session.cpp index d94d7861..f5d8d268 100644 --- a/src/quicr_server_raw_session.cpp +++ b/src/quicr_server_raw_session.cpp @@ -579,7 +579,8 @@ ServerRawSession::handle_publish(qtransport::TransportConnId conn_id, #endif } - delegate->onPublisherObject(conn_id, *data_ctx_id, std::move(datagram)); + // NOTE: if stream_id is nullopt, it means it's not reliable and MUST be datagram + delegate->onPublisherObject(conn_id, *data_ctx_id, stream_id.has_value(), std::move(datagram)); } void diff --git a/test/fake_transport.h b/test/fake_transport.h index c99e2c29..25347483 100644 --- a/test/fake_transport.h +++ b/test/fake_transport.h @@ -55,6 +55,10 @@ struct FakeTransport : public ITransport [[maybe_unused]] DataContextId data_ctx_id, [[maybe_unused]] uint64_t stream_id) override {} + void setDataCtxPriority([[maybe_unused]] const TransportConnId conn_id, + [[maybe_unused]] DataContextId data_ctx_id, + [[maybe_unused]] uint8_t priority) override {} + std::shared_ptr> getStreamBuffer(TransportConnId, uint64_t) override { return nullptr;} void close(const TransportConnId& /* conn_id */) override {}; diff --git a/test/quicr_server.cpp b/test/quicr_server.cpp index 56b895d0..c8b84471 100644 --- a/test/quicr_server.cpp +++ b/test/quicr_server.cpp @@ -60,6 +60,7 @@ class TestServerDelegate : public ServerDelegate void onPublisherObject([[maybe_unused]] const qtransport::TransportConnId& conn_id, [[maybe_unused]] const qtransport::DataContextId& data_ctx_id, + [[maybe_unused]] bool reliable, [[maybe_unused]] messages::PublishDatagram&& datagram) override { }