/** * @file MapPacketExtractionIF.h * @brief This file defines the MapPacketExtractionIF class. * @date 25.03.2013 * @author baetz */ #ifndef MAPPACKETEXTRACTIONIF_H_ #define MAPPACKETEXTRACTIONIF_H_ #include "CCSDSReturnValuesIF.h" #include "TcTransferFrame.h" /** * This is the interface for MAP Packet Extraction classes. * All classes implementing this interface shall be able to extract blocked or segmented Space * Packets on a certain MAP channel. This is done in accordance with the CCSDS TC Space Data Link * Protocol. */ class MapPacketExtractionIF : public CCSDSReturnValuesIF { protected: static const uint8_t FIRST_PORTION = 0b01; //!< Identification of the first part of a segmented Packet. static const uint8_t CONTINUING_PORTION = 0b00; //!< Identification of a continuing part of segmented Packets. static const uint8_t LAST_PORTION = 0b10; //!< The last portion of a segmented Packet. static const uint8_t NO_SEGMENTATION = 0b11; //!< A Frame without segmentation but maybe with blocking. public: /** * Empty virtual destructor. */ virtual ~MapPacketExtractionIF() { } /** * Method to call to handle a single Transfer Frame. * The method tries to extract Packets from the frame as stated in the Standard. * @param frame * @return */ virtual ReturnValue_t extractPackets( TcTransferFrame* frame ) = 0; /** * Any post-instantiation initialization shall be done in this method. * @return */ virtual ReturnValue_t initialize() = 0; }; #endif /* MAPPACKETEXTRACTIONIF_H_ */