48 lines
1.5 KiB
C
48 lines
1.5 KiB
C
|
/*
|
||
|
* CCSDSDistributorIF.h
|
||
|
*
|
||
|
* Created on: 21.11.2012
|
||
|
* Author: baetz
|
||
|
*/
|
||
|
|
||
|
#ifndef CCSDSDISTRIBUTORIF_H_
|
||
|
#define CCSDSDISTRIBUTORIF_H_
|
||
|
|
||
|
#include <framework/ipc/MessageQueue.h>
|
||
|
#include <framework/tmtcservices/AcceptsTelecommandsIF.h>
|
||
|
/**
|
||
|
* This is the Interface to a CCSDS Distributor.
|
||
|
* On a CCSDS Distributor, Applications (in terms of CCSDS) may register themselves,
|
||
|
* either by passing a pointer to themselves (and implementing the CCSDSApplicationIF,
|
||
|
* or by explicitly passing an APID and a MessageQueueId to route the TC's to.
|
||
|
* \ingroup tc_distribution
|
||
|
*/
|
||
|
class CCSDSDistributorIF {
|
||
|
public:
|
||
|
/**
|
||
|
* With this call, a class implementing the CCSDSApplicationIF can register at the
|
||
|
* distributor.
|
||
|
* @param application A pointer to the Application to register.
|
||
|
* @return - \c RETURN_OK on success,
|
||
|
* - \c RETURN_FAILED on failure.
|
||
|
*/
|
||
|
virtual ReturnValue_t registerApplication( AcceptsTelecommandsIF* application ) = 0;
|
||
|
/**
|
||
|
* With this call, other Applications can register to the CCSDS distributor.
|
||
|
* This is done by passing an APID and a MessageQueueId to the method.
|
||
|
* @param apid The APID to register.
|
||
|
* @param id The MessageQueueId of the message queue to send the TC Packets to.
|
||
|
* @return - \c RETURN_OK on success,
|
||
|
* - \c RETURN_FAILED on failure.
|
||
|
*/
|
||
|
virtual ReturnValue_t registerApplication( uint16_t apid, MessageQueueId_t id ) = 0;
|
||
|
/**
|
||
|
* The empty virtual destructor.
|
||
|
*/
|
||
|
virtual ~CCSDSDistributorIF() {
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif /* CCSDSDISTRIBUTORIF_H_ */
|