#ifndef LINUX_OBC_VCINTERFACEIF_H_
#define LINUX_OBC_VCINTERFACEIF_H_

#include <mission/tmtc/DirectTmSinkIF.h>
#include <stddef.h>

#include "fsfw/returnvalues/returnvalue.h"

/**
 * @brief   Interface class for managing different virtual channels of the PTME IP core implemented
 *          in the programmable logic.
 * @details
 * Also implements @DirectTmSinkIF to allow wiriting to the VC directly.
 * @author  J. Meier
 */
class VirtualChannelIF : public DirectTmSinkIF {
 public:
  virtual ~VirtualChannelIF(){};

  virtual ReturnValue_t initialize() = 0;
  virtual void cancelTransfer() = 0;
};

#endif /* LINUX_OBC_VCINTERFACEIF_H_ */