2023-07-24 10:52:38 +02:00
|
|
|
#pragma once
|
2023-07-24 11:35:26 +02:00
|
|
|
|
2023-07-24 11:57:33 +02:00
|
|
|
#include "fsfw/ipc/MessageQueueIF.h"
|
|
|
|
#include "fsfw/storagemanager/StorageManagerIF.h"
|
|
|
|
|
2023-07-24 11:35:26 +02:00
|
|
|
namespace cfdp {
|
|
|
|
|
2023-07-24 11:57:33 +02:00
|
|
|
/**
|
|
|
|
* This class parses messages to user for special CFDP messages and converts them to appropriate
|
|
|
|
* CFDP requests sent via the IPC store where applicable. It also provides an API to retrieve
|
|
|
|
* custom messages which are not special CFDP messages from a provided bytestream.
|
|
|
|
*/
|
2023-07-24 16:40:25 +02:00
|
|
|
class ReservedMessageParser {
|
2023-07-24 11:57:33 +02:00
|
|
|
public:
|
2023-07-24 16:40:25 +02:00
|
|
|
ReservedMessageParser(StorageManagerIF& ipcStore, MessageQueueIF& msgQueue,
|
|
|
|
MessageQueueId_t userDestination);
|
2023-07-24 11:57:33 +02:00
|
|
|
|
2023-07-24 16:40:25 +02:00
|
|
|
ReturnValue_t parseForReserverMessages(const uint8_t* msgsToUserPtr, size_t sizeOfMessages);
|
2023-07-24 11:35:26 +02:00
|
|
|
|
2023-07-24 11:57:33 +02:00
|
|
|
private:
|
2023-07-24 16:38:11 +02:00
|
|
|
MessageQueueIF& msgQueue;
|
2023-07-24 11:57:33 +02:00
|
|
|
StorageManagerIF& ipcStore;
|
2023-07-24 16:38:11 +02:00
|
|
|
MessageQueueId_t userDestination;
|
2023-07-24 11:35:26 +02:00
|
|
|
};
|
|
|
|
|
2023-07-24 11:57:33 +02:00
|
|
|
} // namespace cfdp
|