diff --git a/receiver/src/receiver_data_server/rds_net_server.h b/receiver/src/receiver_data_server/rds_net_server.h index 7498f77949dda50f94c8d91eaef12779523d64d7..7465a583869c23fae5000a65302cbb71aa1c2e4b 100644 --- a/receiver/src/receiver_data_server/rds_net_server.h +++ b/receiver/src/receiver_data_server/rds_net_server.h @@ -10,7 +10,8 @@ namespace asapo { class RdsNetServer { public: virtual GenericRequests GetNewRequests(Error* err) const noexcept = 0; - virtual Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept = 0; + virtual Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept = 0; virtual Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, diff --git a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp index c8668d763ab3b517db140dc90a398cda5b5c3b40..c064a9772f379e1f78100307a1a63df437f04d17 100644 --- a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp +++ b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp @@ -19,7 +19,7 @@ Error ReceiverDataServerRequestHandler::SendResponse(const ReceiverDataServerReq GenericNetworkResponse response{}; response.op_code = kOpcodeGetBufferData; response.error_code = code; - return server_->SendResponse(request->source_id, &response); + return server_->SendResponse(request, request->source_id, &response); } Error ReceiverDataServerRequestHandler::SendResponseAndSlotData(const ReceiverDataServerRequest* request, diff --git a/receiver/src/receiver_data_server/tcp_server.cpp b/receiver/src/receiver_data_server/tcp_server.cpp index 36c72c4fde0306f6e825930e5ebd826cfae110f9..6dd04c6368970992bdd23d39299f4f5b0780ddc1 100644 --- a/receiver/src/receiver_data_server/tcp_server.cpp +++ b/receiver/src/receiver_data_server/tcp_server.cpp @@ -94,7 +94,8 @@ void TcpServer::HandleAfterError(uint64_t source_id) const noexcept { CloseSocket(source_id); } -Error TcpServer::SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept { +Error TcpServer::SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept { Error err; io__->Send(source_id, response, sizeof(*response), &err); if (err) { @@ -109,7 +110,7 @@ TcpServer::SendResponseAndSlotData(const ReceiverDataServerRequest* request, uin const CacheMeta* cache_slot) const noexcept { Error err; - err = SendResponse(source_id, response); + err = SendResponse(nullptr, source_id, response); if (err) { return err; } diff --git a/receiver/src/receiver_data_server/tcp_server.h b/receiver/src/receiver_data_server/tcp_server.h index 12d9aac118dba7bc7e77446d15c4c4a62eec1bf1..c7caf5eccb87c891bd9bca09c905799ecb6b17bd 100644 --- a/receiver/src/receiver_data_server/tcp_server.h +++ b/receiver/src/receiver_data_server/tcp_server.h @@ -14,7 +14,8 @@ class TcpServer : public RdsNetServer { explicit TcpServer(std::string address); ~TcpServer() override; GenericRequests GetNewRequests(Error* err) const noexcept override ; - Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept override; + Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept override; Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept override; diff --git a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h index bfe19e4098a50110037bed22e1250f1320a4f362..dc8c1ef9e2bdbde6f7a7128dd505494db16831c2 100644 --- a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h +++ b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h @@ -27,10 +27,12 @@ class MockNetServer : public RdsNetServer { MOCK_CONST_METHOD1(GetNewRequests_t, std::vector<ReceiverDataServerRequest> (ErrorInterface** error)); - Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept override { - return Error{SendResponse_t(source_id, response)}; + Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept override { + return Error{SendResponse_t(request, source_id, response)}; }; - MOCK_CONST_METHOD2(SendResponse_t, ErrorInterface * (uint64_t source_id, const GenericNetworkResponse* response)); + MOCK_CONST_METHOD3(SendResponse_t, ErrorInterface * (const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response)); Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, diff --git a/receiver/unittests/receiver_data_server/test_request_handler.cpp b/receiver/unittests/receiver_data_server/test_request_handler.cpp index 7334eb182bba1a42667d4acc44173281d1eb5f9b..613aaf47761f722bc7ac7b8f028acdcc327c4881 100644 --- a/receiver/unittests/receiver_data_server/test_request_handler.cpp +++ b/receiver/unittests/receiver_data_server/test_request_handler.cpp @@ -87,6 +87,7 @@ void RequestHandlerTests::MockGetSlotAndUnlockIt(bool return_without_error) { void RequestHandlerTests::MockSendResponse(asapo::NetworkErrorCode expected_response_code, bool return_without_error) { EXPECT_CALL(mock_net, SendResponse_t( + &request, expected_source_id, M_CheckResponse(asapo::kOpcodeGetBufferData, expected_response_code, "") )).WillOnce( diff --git a/receiver/unittests/receiver_data_server/test_tcp_server.cpp b/receiver/unittests/receiver_data_server/test_tcp_server.cpp index 1d9127a5098399fb97b7a75fa7cb152748142ce0..40b1a4a82ddfe55b30661e27c415a797fbcbc596 100644 --- a/receiver/unittests/receiver_data_server/test_tcp_server.cpp +++ b/receiver/unittests/receiver_data_server/test_tcp_server.cpp @@ -236,8 +236,9 @@ TEST_F(TCPServerTests, GetNewRequestsReadOk) { TEST_F(TCPServerTests, SendResponse) { asapo::GenericNetworkResponse tmp {}; + asapo::ReceiverDataServerRequest expectedRequest {{}, 30}; - EXPECT_CALL(mock_io, Send_t(1, &tmp, sizeof(asapo::GenericNetworkResponse), _)) + EXPECT_CALL(mock_io, Send_t(30, &tmp, sizeof(asapo::GenericNetworkResponse), _)) .WillOnce( DoAll( testing::SetArgPointee<3>(asapo::IOErrorTemplates::kUnknownIOError.Generate().release()), @@ -246,7 +247,7 @@ TEST_F(TCPServerTests, SendResponse) { EXPECT_CALL(mock_logger, Error(HasSubstr("cannot send"))); - auto err = tcp_server.SendResponse(1, &tmp); + auto err = tcp_server.SendResponse(&expectedRequest, 30, &tmp); ASSERT_THAT(err, Ne(nullptr)); }