#include #include #include ChildHandlerBase::ChildHandlerBase(uint32_t ioBoardAddress, object_id_t setObjectId, object_id_t deviceCommunication, uint32_t maxDeviceReplyLen, uint8_t setDeviceSwitch, uint32_t thermalStatePoolId, uint32_t thermalRequestPoolId, uint32_t parent, FailureIsolationBase* customFdir, uint32_t cmdQueueSize) : DeviceHandlerBase(ioBoardAddress, setObjectId, maxDeviceReplyLen, setDeviceSwitch, deviceCommunication, thermalStatePoolId, thermalRequestPoolId, (customFdir == NULL? &childHandlerFdir : customFdir), cmdQueueSize), parentId( parent), childHandlerFdir(setObjectId) { } ChildHandlerBase::~ChildHandlerBase() { } ReturnValue_t ChildHandlerBase::initialize() { ReturnValue_t result = DeviceHandlerBase::initialize(); if (result != HasReturnvaluesIF::RETURN_OK) { return result; } MessageQueueId_t parentQueue = 0; if (parentId != 0) { SubsystemBase *parent = objectManager->get(parentId); if (parent == NULL) { return RETURN_FAILED; } parentQueue = parent->getCommandQueue(); parent->registerChild(getObjectId()); } healthHelper.setParentQeueue(parentQueue); modeHelper.setParentQueue(parentQueue); return RETURN_OK; }