DataObjectPtr PSD::makeDuplicate() const { PSDPtr powerspectrum = store()->createObject<PSD>(); Q_ASSERT(powerspectrum); powerspectrum->writeLock(); powerspectrum->setVector(_inputVectors[INVECTOR]); powerspectrum->setFrequency(_Frequency); powerspectrum->setAverage(_Average); powerspectrum->setLength(_averageLength); powerspectrum->setApodize(_Apodize); powerspectrum->setRemoveMean(_RemoveMean); powerspectrum->setVectorUnits(_vectorUnits); powerspectrum->setRateUnits(_rateUnits); powerspectrum->setApodizeFxn(_apodizeFxn); powerspectrum->setGaussianSigma(_gaussianSigma); powerspectrum->setOutput(_Output); powerspectrum->setInterpolateHoles(_interpolateHoles); if (descriptiveNameIsManual()) { powerspectrum->setDescriptiveName(descriptiveName()); } powerspectrum->registerChange(); powerspectrum->unlock(); return DataObjectPtr(powerspectrum); }
DataObjectPtr BasicPlugin::makeDuplicate() const { #if 0 BasicPluginPtr plugin = kst_cast<BasicPlugin>(DataObject::createPlugin(propertyString())); // use same inputs for (VectorMap::ConstIterator iter = _inputVectors.begin(); iter != _inputVectors.end(); ++iter) { plugin->inputVectors().insert(iter.key(), iter.value()); } for (ScalarMap::ConstIterator iter = _inputScalars.begin(); iter != _inputScalars.end(); ++iter) { plugin->inputScalars().insert(iter.key(), iter.value()); } for (StringMap::ConstIterator iter = _inputStrings.begin(); iter != _inputStrings.end(); ++iter) { plugin->inputStrings().insert(iter.key(), iter.value()); } // create new outputs for (VectorMap::ConstIterator iter = outputVectors().begin(); iter != outputVectors().end(); ++iter) { KstWriteLocker blockVectorUpdates(&vectorList.lock()); VectorPtr v = new Vector(ObjectTag(iter.value()->tag().tag() + "'", iter.value()->tag().context()), 0, plugin.data()); // FIXME: unique tag generation plugin->outputVectors().insert(iter.key(), v); } for (ScalarMap::ConstIterator iter = outputScalars().begin(); iter != outputScalars().end(); ++iter) { ScalarPtr s = new Scalar(ObjectTag(iter.value()->tag().tag() + "'", iter.value()->tag().context()), plugin.data()); // FIXME: unique tag generation plugin->outputScalars().insert(iter.key(), s); } for (StringMap::ConstIterator iter = outputStrings().begin(); iter != outputStrings().end(); ++iter) { StringPtr s = new String(ObjectTag(iter.value()->tag().tag() + "'", iter.value()->tag().context()), plugin.data()); // FIXME: unique tag generation plugin->outputStrings().insert(iter.key(), s); } // set the same plugin plugin->setTagName(ObjectTag(tag().tag() + "'", tag().context())); // FIXME: unique tag generation method map.insert(this, DataObjectPtr(plugin)); return DataObjectPtr(plugin); #endif // FIXME: implement this return 0L; }
DataObjectPtr Histogram::makeDuplicate() const { HistogramPtr histogram = store()->createObject<Histogram>(); histogram->setVector(_inputVectors[RAWVECTOR]); histogram->setXRange(_MinX, _MaxX); histogram->setNumberOfBins(_NumberOfBins); histogram->setNormalizationType(_NormalizationMode); histogram->setRealTimeAutoBin(_realTimeAutoBin); if (descriptiveNameIsManual()) { histogram->setDescriptiveName(descriptiveName()); } histogram->writeLock(); histogram->registerChange(); histogram->unlock(); return DataObjectPtr(histogram); }
DataObjectPtr EventMonitorEntry::makeDuplicate() const { EventMonitorEntryPtr eventMonitor = store()->createObject<EventMonitorEntry>(); eventMonitor->setScriptCode(_script); eventMonitor->setEvent(_event); eventMonitor->setDescription(_description); eventMonitor->setLevel(_level); eventMonitor->setLogDebug(_logDebug); eventMonitor->setLogEMail(_logEMail); eventMonitor->setLogELOG(_logELOG); eventMonitor->setEMailRecipients(_eMailRecipients); if (descriptiveNameIsManual()) { eventMonitor->setDescriptiveName(descriptiveName()); } eventMonitor->reparse(); eventMonitor->writeLock(); eventMonitor->registerChange(); eventMonitor->unlock(); return DataObjectPtr(eventMonitor); }
DataObjectPtr CSD::makeDuplicate() const{ CSDPtr csd = store()->createObject<CSD>(); csd->change(_inputVectors[CSD_INVECTOR], _frequency, _average, _removeMean, _apodize, _apodizeFxn, _windowSize, _averageLength, _gaussianSigma, _outputType, _vectorUnits, _rateUnits); if (descriptiveNameIsManual()) { csd->setDescriptiveName(descriptiveName()); } csd->writeLock(); csd->registerChange(); csd->unlock(); return DataObjectPtr(csd); }