-// Copyright (C) 2006-2012 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2019 CEA/DEN, EDF R&D
//
// 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.
+// 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
#include "Switch.hxx"
#include "InputPort.hxx"
#include "TypeCode.hxx"
+#include "HomogeneousPoolContainer.hxx"
#include "ComponentInstance.hxx"
#include "InputDataStreamPort.hxx"
#include "OutputDataStreamPort.hxx"
_out << " state=\"disabled\"";
if (!nbranch->isEmpty())
_out << " nbranch=\"" << nbranch->getIntValue() << "\"";
+ _out << " loopWeight=\"" << node->getWeight()->getSimpleLoopWeight() << "\"";
if (node->edGetSamplePort())
_out << " type=\"" << node->edGetSamplePort()->edGetType()->name() << "\"";
_out << ">" << endl;
_out << " state=\"disabled\"";
if (!nbranch->isEmpty())
_out << " nbranch=\"" << nbranch->getIntValue() << "\"";
+ _out << " loopWeight=\"" << node->getWeight()->getSimpleLoopWeight() << "\"";
_out << " lib=\"" << node->getAlgLib() << "\"";
_out << " entry=\"" << node->getSymbol() << "\"";
_out << ">" << endl;
DEBTRACE("START visitInlineNode " << _root->getChildName(node));
beginCase(node);
int depth = depthNode(node);
- if(node->getExecutionMode()=="local")
+ if(node->getExecutionMode()==InlineNode::LOCAL_STR)
_out << indent(depth) << "<inline name=\"" << node->getName() << "\"";
else
- _out << indent(depth) << "<remote name=\"" << node->getName() << "\"";
+ {
+ _out << indent(depth) << "<remote name=\"" << node->getName() << "\"";
+ _out << " elementaryWeight=\"" << node->getWeight()->getElementaryWeight() << "\"";
+ }
if (node->getState() == YACS::DISABLED)
_out << " state=\"disabled\">" << endl;
else
writeOutputPorts(node);
writeOutputDataStreamPorts(node);
- if(node->getExecutionMode()=="local")
+ if(node->getExecutionMode()==InlineNode::LOCAL_STR)
_out << indent(depth) << "</inline>" << endl;
else
_out << indent(depth) << "</remote>" << endl;
DEBTRACE("START visitInlineFuncNode " << _root->getChildName(node));
beginCase(node);
int depth = depthNode(node);
- if(node->getExecutionMode()=="local")
+ if(node->getExecutionMode()==InlineNode::LOCAL_STR)
_out << indent(depth) << "<inline name=\"" << node->getName() << "\"";
else
- _out << indent(depth) << "<remote name=\"" << node->getName() << "\"";
+ {
+ _out << indent(depth) << "<remote name=\"" << node->getName() << "\"";
+ _out << " elementaryWeight=\"" << node->getWeight()->getElementaryWeight() << "\"";
+ }
if (node->getState() == YACS::DISABLED)
_out << " state=\"disabled\">" << endl;
else
writeOutputPorts(node);
writeOutputDataStreamPorts(node);
- if(node->getExecutionMode()=="local")
+ if(node->getExecutionMode()==InlineNode::LOCAL_STR)
_out << indent(depth) << "</inline>" << endl;
else
_out << indent(depth) << "</remote>" << endl;
{
string name = it->first;
_out << indent(depth) << "<container name=\"" << name << "\">" << endl;
+ _out << indent(depth+1) << "<property name=\"" << Container::KIND_ENTRY << "\" value=\"" << it->second->getKind() << "\"/>" << endl;
+ _out << indent(depth+1) << "<property name=\"" << Container::AOC_ENTRY << "\" value=\"" << (int)it->second->isAttachedOnCloning() << "\"/>" << endl;
map<string, string> properties = (it->second)->getProperties();
map<string, string>::iterator itm;
for(itm = properties.begin(); itm != properties.end(); ++itm)
- _out << indent(depth+1) << "<property name=\"" << (*itm).first
- << "\" value=\"" << (*itm).second << "\"/>" << endl;
+ {
+ if((*itm).first==Container::KIND_ENTRY)
+ continue;
+ if((*itm).first==Container::AOC_ENTRY)
+ continue;
+ if((*itm).first!=HomogeneousPoolContainer::INITIALIZE_SCRIPT_KEY)
+ {
+ _out << indent(depth+1) << "<property name=\"" << (*itm).first << "\" value=\"" << (*itm).second << "\"/>" << endl;
+ }
+ else
+ {
+ _out << indent(depth+1) << "<initializescriptkey><code><![CDATA[" << (*itm).second << "]]></code></initializescriptkey>" << endl;
+ }
+ }
_out << indent(depth) << "</container>" << endl;
}
}
for (list<Node*>::iterator ic = setOfChildren.begin(); ic != setOfChildren.end(); ++ic)
{
// --- Control links from direct descendant to nodes inside the bloc
- set<InGate*> setOfInGates = (*ic)->getOutGate()->edSetInGate();
- for (set<InGate*>::iterator ig = setOfInGates.begin(); ig != setOfInGates.end(); ++ig)
+ list<InGate*> setOfInGates = (*ic)->getOutGate()->edSetInGate();
+ for (list<InGate*>::iterator ig = setOfInGates.begin(); ig != setOfInGates.end(); ++ig)
{
Node *to = (*ig)->getNode();
if (node->isInMyDescendance(to))
{
int depth = 1;
list<InputPort *> setOfInputPort = node->getLocalInputPorts();
- if (ForEachLoop* foreach = dynamic_cast<ForEachLoop*>(node))
- {
- DEBTRACE("writeParametersNode foreach");
- setOfInputPort.push_back( foreach->edGetSeqOfSamplesPort());
- }
list<InputPort *>::iterator iter;
for(iter = setOfInputPort.begin(); iter != setOfInputPort.end(); ++iter)
{