/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile$ Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) 2000 National Library of Medicine All rights reserved. See COPYRIGHT.txt for copyright details. =========================================================================*/ #include "cmCableCommand.h" #include "cmCacheManager.h" // cmCableCommand /** * Constructor initializes to empty m_CableData. */ cmCableCommand::cmCableCommand(): m_CableData(0) { } /** * Destructor frees the cmCableData only if this command is its owner. */ cmCableCommand::~cmCableCommand() { if(m_CableData && m_CableData->OwnerIs(this)) { delete m_CableData; } } /** * Write a CABLE configuration file header. */ void cmCableCommand::WriteConfigurationHeader(std::ostream& os) const { os << "" << std::endl << "" << std::endl; } /** * Write a CABLE configuration file footer. */ void cmCableCommand::WriteConfigurationFooter(std::ostream& os) const { os << "" << std::endl; } /** * Ensure that this cmCableCommand has a valid m_CableData pointer. */ void cmCableCommand::SetupCableData() { // Only do something if the pointer is invalid. if(m_CableData) { return; } // Look through the vector of commands from the makefile. const std::vector& usedCommands = m_Makefile->GetUsedCommands(); for(std::vector::const_iterator commandIter = usedCommands.begin(); commandIter != usedCommands.end(); ++commandIter) { // If this command is a cmCableCommand, see if it has a cmCableData // instance. cmCableCommand* command = cmCableCommand::SafeDownCast(*commandIter); if(command) { m_CableData = command->m_CableData; } // If we found an instance of cmCableData, then we are done. if(m_CableData) { return; } } // We didn't find another cmCableCommand with a valid cmCableData. // We must allocate the new cmCableData ourselves, and with this // command as its owner. m_CableData = new cmCableData(this); }