bool COutputHandler::compile(std::vector< CCopasiContainer * > listOfContainer, const CCopasiDataModel* pDataModel) { bool success = true; mObjects.clear(); std::set< COutputInterface *>::iterator it = mInterfaces.begin(); std::set< COutputInterface *>::iterator end = mInterfaces.end(); std::set< const CCopasiObject * >::const_iterator itObj; std::set< const CCopasiObject * >::const_iterator endObj; for (; it != end; ++it) { success &= (*it)->compile(listOfContainer, pDataModel); // Assure that this is the only one master. COutputHandler * pHandler = dynamic_cast< COutputHandler * >(*it); if (pHandler != NULL) pHandler->setMaster(this); // Collect the list of objects const std::set< const CCopasiObject * > & Objects = (*it)->getObjects(); for (itObj = Objects.begin(), endObj = Objects.end(); itObj != endObj; ++itObj) mObjects.insert(*itObj); } if (mpMaster == NULL) success &= compileRefresh(listOfContainer, pDataModel); return success; }
void COutputHandler::addInterface(COutputInterface * pInterface) { mInterfaces.insert(pInterface); // Assure that this is the only one master. COutputHandler * pHandler = dynamic_cast< COutputHandler * >(pInterface); if (pHandler != NULL) pHandler->setMaster(this); }
void COutputHandler::removeInterface(COutputInterface * pInterface) { mInterfaces.erase(pInterface); // Assure that the removed handler is its own master. COutputHandler * pHandler = dynamic_cast< COutputHandler * >(pInterface); if (pHandler != NULL) pHandler->setMaster(NULL); }
bool COutputHandler::compile(CObjectInterface::ContainerList listOfContainer) { CObjectInterface::ContainerList::const_iterator itContainer = listOfContainer.begin(); CObjectInterface::ContainerList::const_iterator endContainer = listOfContainer.end(); for (mpContainer = NULL; itContainer != endContainer && mpContainer == NULL; ++itContainer) { mpContainer = dynamic_cast< const CMathContainer * >(*itContainer); } assert(mpContainer != NULL); bool success = true; mObjects.clear(); std::set< COutputInterface *>::iterator it = mInterfaces.begin(); std::set< COutputInterface *>::iterator end = mInterfaces.end(); CObjectInterface::ObjectSet::const_iterator itObj; CObjectInterface::ObjectSet::const_iterator endObj; for (; it != end; ++it) { success &= (*it)->compile(listOfContainer); // Assure that this is the only one master. COutputHandler * pHandler = dynamic_cast< COutputHandler * >(*it); if (pHandler != NULL) pHandler->setMaster(this); // Collect the list of objects const CObjectInterface::ObjectSet & Objects = (*it)->getObjects(); for (itObj = Objects.begin(), endObj = Objects.end(); itObj != endObj; ++itObj) mObjects.insert(*itObj); } if (mpMaster == NULL) success &= compileUpdateSequence(listOfContainer); return success; }