tc distrib changed taken over

This commit is contained in:
Robin Müller 2020-12-14 21:34:29 +01:00
parent 796f0e2e17
commit 1c79da0e75

View File

@ -77,14 +77,14 @@ ReturnValue_t PUSDistributor::callbackAfterSending(ReturnValue_t queueStatus) {
tcStatus = queueStatus; tcStatus = queueStatus;
} }
if (tcStatus != RETURN_OK) { if (tcStatus != RETURN_OK) {
this->verifyChannel.sendFailureReport(TC_VERIFY::ACCEPTANCE_FAILURE, this->verifyChannel.sendFailureReport(tc_verification::ACCEPTANCE_FAILURE,
currentPacket, tcStatus); currentPacket, tcStatus);
// A failed packet is deleted immediately after reporting, // A failed packet is deleted immediately after reporting,
// otherwise it will block memory. // otherwise it will block memory.
currentPacket->deletePacket(); currentPacket->deletePacket();
return RETURN_FAILED; return RETURN_FAILED;
} else { } else {
this->verifyChannel.sendSuccessReport(TC_VERIFY::ACCEPTANCE_SUCCESS, this->verifyChannel.sendSuccessReport(tc_verification::ACCEPTANCE_SUCCESS,
currentPacket); currentPacket);
return RETURN_OK; return RETURN_OK;
} }
@ -95,16 +95,19 @@ uint16_t PUSDistributor::getIdentifier() {
} }
ReturnValue_t PUSDistributor::initialize() { ReturnValue_t PUSDistributor::initialize() {
currentPacket = new TcPacketStored();
if(currentPacket == nullptr) {
// Should not happen, memory allocation failed!
return ObjectManagerIF::CHILD_INIT_FAILED;
}
CCSDSDistributorIF* ccsdsDistributor = CCSDSDistributorIF* ccsdsDistributor =
objectManager->get<CCSDSDistributorIF>(packetSource); objectManager->get<CCSDSDistributorIF>(packetSource);
currentPacket = new TcPacketStored();
if (ccsdsDistributor == nullptr) { if (ccsdsDistributor == nullptr) {
sif::error << "PUSDistributor::initialize: Packet source invalid." sif::error << "PUSDistributor::initialize: Packet source invalid."
<< " Make sure it exists and implements CCSDSDistributorIF!" << " Make sure it exists and implements CCSDSDistributorIF!"
<< std::endl; << std::endl;
return RETURN_FAILED; return RETURN_FAILED;
} }
else {
return ccsdsDistributor->registerApplication(this); return ccsdsDistributor->registerApplication(this);
}
} }