00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include <QVSynchronizerBlock>
00026
00027 bool QVSynchronizer::linkProperty(QString sourcePropName, QVPropertyContainer *destinyContainer, QString destinyPropName, LinkType linkType)
00028 {
00029 return QVPropertyContainer::linkProperty(sourcePropName, destinyContainer, destinyPropName, linkType);
00030 }
00031
00032 bool QVSynchronizer::linkProperty(QString sourcePropertyName, QVPropertyContainer &destinyContainer, QString destinyPropertyName, LinkType linkType)
00033 {
00034 return linkProperty(sourcePropertyName, &destinyContainer, destinyPropertyName, linkType);
00035 }
00036
00037 bool QVSynchronizer::linkProperty(QVPropertyContainer *destCont, QString propName, LinkType linkType)
00038 {
00039 if (linkType == QVProcessingBlock::SynchronousLink) {
00040 addPropertyFromQVariant(propName, inputFlag | outputFlag, destCont->getPropertyQVariantValue(propName), destCont->getPropertyInfo(propName));
00041 return QVPropertyContainer::linkProperty(propName, destCont, propName, linkType);
00042 }
00043 else {
00044 std::cerr << "ERROR: QVSychronizer::linkProperty(): a QVSychronizer new link must be Synchronous" << std::endl;
00045 return FALSE;
00046 }
00047 }
00048
00049 bool QVSynchronizer::linkProperty(QVPropertyContainer &destinyContainer, QString destinyPropertyName, LinkType linkType)
00050 {
00051 return linkProperty(&destinyContainer, destinyPropertyName, linkType);
00052 }
00053
00054 bool QVSynchronizer::linkProperty(QString sourcePropName, QVPropertyContainer *destinyContainer, LinkType linkType)
00055 {
00056 return QVPropertyContainer::linkProperty(sourcePropName, destinyContainer, linkType);
00057 }
00058
00059 bool QVSynchronizer::linkProperty(QString sourcePropertyName, QVPropertyContainer &destinyContainer, LinkType linkType)
00060 {
00061 return linkProperty(sourcePropertyName, &destinyContainer, linkType);
00062 }
00063
00064 void QVSynchronizer::linkProperty(QVPropertyContainer *, LinkType)
00065 {
00066 std::cerr << "ERROR: QVSychronizer::linkProperty(): a QVSychronizer has not output properties to be linked" << std::endl;
00067 }
00068
00069 void QVSynchronizer::linkProperty(QVPropertyContainer &container, LinkType linkType)
00070 {
00071 linkProperty(&container, linkType);
00072 }
00073
00074 bool QVSynchronizer::unlinkProperty(QString origName, QVPropertyContainer *destCont, QString destName)
00075 {
00076 return QVPropertyContainer::unlinkProperty(origName, destCont, destName);
00077 }
00078
00079 bool QVSynchronizer::unlinkProperty(QString origName, QVPropertyContainer &destCont, QString destName)
00080 {
00081 return unlinkProperty(origName, &destCont, destName);
00082 }
00083
00084 bool QVSynchronizer::linkUnspecifiedInputProperty(QVPropertyContainer *sourceCont, QString propName, LinkType linkType)
00085 {
00086 if (linkType == QVProcessingBlock::SynchronousLink) {
00087 addPropertyFromQVariant(propName, inputFlag | outputFlag, sourceCont->getPropertyQVariantValue(propName), sourceCont->getPropertyInfo(propName));
00088 return sourceCont->linkProperty(propName, this, propName, linkType);
00089 }
00090 else {
00091 std::cerr << "ERROR: QVSychronizer::linkProperty(): a QVSychronizer new link must be Synchronous" << std::endl;
00092 return FALSE;
00093 }
00094 }
00095
00096 bool QVSynchronizer::treatUnlinkInputProperty(QString destPropName, QVPropertyContainer *, QString sourcePropName)
00097 {
00098 if ( (destPropName != "max block iterations") && (destPropName != "stats enabled") && (destPropName != "cpu stats") )
00099 removeProperty(sourcePropName);
00100
00101 return true;
00102 }
00103