fsfw/src/fsfw/cfdp/handler/ReservedMessageParser.h

28 lines
839 B
C
Raw Normal View History

#pragma once
#include "fsfw/cfdp/tlv/MessageToUserTlv.h"
2023-07-24 11:57:33 +02:00
#include "fsfw/ipc/MessageQueueIF.h"
#include "fsfw/storagemanager/StorageManagerIF.h"
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
ReturnValue_t parse(const MessageToUserTlv* msgsToUserArray, size_t numMsgsToUser);
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:57:33 +02:00
} // namespace cfdp