1#ifndef REQUEST_TRANSFER_H
2#define REQUEST_TRANSFER_H
4#include "../reentrancy.h"
5#include "./transfer_data.h"
17 const size_t cNibbleBitLength{4};
18 const uint8_t cRequestOutOfRange{0x31};
19 const uint8_t cUploadDownloadNotAccepted{0x70};
20 const std::string cMaxNumberOfBlockLengthKey{
"MaxNumberOfBlockLength"};
48 const std::vector<uint8_t> &requestData,
49 uint8_t &dataFormatIdentifier,
50 uint8_t &addressAndLengthFormatIdentifier,
51 std::vector<uint8_t> &memoryAddressAndSize)
const;
61 uint8_t dataFormatIdentifier,
62 uint8_t addressAndLengthFormatIdentifier,
63 const std::vector<uint8_t> &memoryAddressAndSize,
64 size_t &memoryAddress,
65 size_t &memorySize)
const;
88 uint8_t dataFormatIdentifier,
89 uint8_t addressAndLengthFormatIdentifier,
90 std::vector<uint8_t> memoryAddressAndSize,
96 const std::vector<uint8_t> &requestData,
AUTOSAR shortname-path wrapper.
Definition: instance_specifier.h:14
A wrapper class around a conversation cancellation handler callback.
Definition: cancellation_handler.h:12
Request data transfer in a certian direction (download/upload)
Definition: request_transfer.h:15
bool TryParseLengthFormat(uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, const std::vector< uint8_t > &memoryAddressAndSize, size_t &memoryAddress, size_t &memorySize) const
Try to parse a memory length format.
Definition: request_transfer.cpp:53
bool TryGeneratePositiveResponse(MetaInfo &metaInfo, OperationOutput &response) const
Try to generate a positive response to a transfer request.
Definition: request_transfer.cpp:114
std::future< void > RequestDataTransfer(uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, std::vector< uint8_t > memoryAddressAndSize, MetaInfo &metaInfo, CancellationHandler &&cancellationHandler)
Request diagnostic data transfer.
Definition: request_transfer.cpp:145
std::future< OperationOutput > HandleMessage(const std::vector< uint8_t > &requestData, MetaInfo &metaInfo, CancellationHandler &&cancellationHandler) override
Handle an UDS request message.
Definition: request_transfer.cpp:194
bool TryRequestTransfer(size_t memoryAddress, size_t memorySize)
Try to request a transfer in a certain direction (download/upload)
Definition: request_transfer.cpp:107
bool TryParseRequest(const std::vector< uint8_t > &requestData, uint8_t &dataFormatIdentifier, uint8_t &addressAndLengthFormatIdentifier, std::vector< uint8_t > &memoryAddressAndSize) const
Try to parse a transfer request.
Definition: request_transfer.cpp:22
An UDS service to handle a diagnostic request by offering itself to a router.
Definition: routable_uds_service.h:28
A class to transfer data between diagnostic clients and the server.
Definition: transfer_data.h:23
TransferDirection
Transfer data direction between diagnostic clients and the server.
Definition: transfer_data.h:15
ReentrancyType
Reentrancy type of an instance.
Definition: reentrancy.h:12
Positive response of a handled UDS request.
Definition: routable_uds_service.h:17