#pragma once #include "fsfw/cfdp/tlv/MessageToUserTlv.h" #include "fsfw/ipc/MessageQueueIF.h" #include "fsfw/storagemanager/StorageManagerIF.h" namespace cfdp { /** * 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. */ class ReservedMessageParser { public: ReservedMessageParser(StorageManagerIF& ipcStore, MessageQueueIF& msgQueue, MessageQueueId_t userDestination); ReturnValue_t parse(const MessageToUserTlv* msgsToUserArray, size_t numMsgsToUser); private: MessageQueueIF& msgQueue; StorageManagerIF& ipcStore; MessageQueueId_t userDestination; }; } // namespace cfdp