+// Copyright (C) 2006-2023 CEA, EDF
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
#include "ConditionInputPort.hxx"
#include "WhileLoop.hxx"
#include "OutputPort.hxx"
return _outOfScopeBackLink!=0;
}
-void ConditionInputPort::edNotifyReferencedBy(OutPort *fromPort)
+void ConditionInputPort::edNotifyReferencedBy(OutPort *fromPort, bool isLoopProof)
{
if(!((ComposedNode*)(_node))->isInMyDescendance(fromPort->getNode()))
{
if(_outOfScopeBackLink)
throw Exception("ConditionInputPort::edNotifyReferenced : already linked from outside");
_outOfScopeBackLink=fromPort;
- return ;
}
- InputPort::edNotifyReferencedBy(fromPort);
+ InputPort::edNotifyReferencedBy(fromPort,isLoopProof);
}
void ConditionInputPort::edNotifyDereferencedBy(OutPort *fromPort)
return (void *)_value;
}
-void ConditionInputPort::put(const void *data) throw(ConversionException)
+void ConditionInputPort::put(const void *data)
+{
+ put((Any*)data);
+}
+
+void ConditionInputPort::releaseData()
{
- Any *dataCst=(Any *)data;
if(_value)
_value->decrRef();
- _value=dataCst;
+ _value=nullptr;
+}
+
+void ConditionInputPort::put(Any *data)
+{
+ ConditionInputPort::releaseData();
+ _value=data;
_value->incrRef();
}
xmldump="<value><boolean>false</boolean></value>\n";
return xmldump;
}
+
+std::string ConditionInputPort::getAsString()
+{
+ return (getValue() ? "True" : "False");
+}
+