#ifndef FSFW_TCDISTRIBUTION_PUSDISTRIBUTORIF_H_
#define FSFW_TCDISTRIBUTION_PUSDISTRIBUTORIF_H_

#include "../tmtcservices/AcceptsTelecommandsIF.h"
#include "../ipc/MessageQueueSenderIF.h"

/**
 * This interface allows PUS Services to register themselves at a PUS Distributor.
 * @ingroup tc_distribution
 */
class PUSDistributorIF {
public:
	/**
	 * The empty virtual destructor.
	 */
	virtual ~PUSDistributorIF() {
	}
/**
 * With this method, Services can register themselves at the PUS Distributor.
 * @param service A pointer to the registering Service.
 * @return	- @c RETURN_OK on success,
 * 			- @c RETURN_FAILED on failure.
 */
	virtual ReturnValue_t registerService( AcceptsTelecommandsIF* service ) = 0;
};

#endif /* FSFW_TCDISTRIBUTION_PUSDISTRIBUTORIF_H_ */