X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fyacsloader%2FLoadState.hxx;h=633589eca1347c414b1999cc1d585258a7cd3f71;hb=91945d98482a02a05a3f5df7511a4e5760db2a94;hp=865256c32ebe84d98600c317e7a3ec40a8fe01e6;hpb=88c5f67088445931a1598331e1faae6df0145c0b;p=modules%2Fyacs.git diff --git a/src/yacsloader/LoadState.hxx b/src/yacsloader/LoadState.hxx index 865256c32..633589eca 100644 --- a/src/yacsloader/LoadState.hxx +++ b/src/yacsloader/LoadState.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2014 CEA/DEN, EDF R&D +// Copyright (C) 2006-2021 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 @@ -22,9 +22,12 @@ #include "YACSloaderExport.hxx" #include "xmlParserBase.hxx" +#include "InputPort.hxx" #include "define.hxx" #include "Exception.hxx" +#include +#include namespace YACS { @@ -32,6 +35,9 @@ namespace YACS { class Proc; class Runtime; + class SequenceAny; + class Any; + class TypeCode; //! Load state from a file into a Proc /*! @@ -96,6 +102,7 @@ namespace YACS static std::map _nodeStates; }; +#ifndef SWIG class YACSLOADER_EXPORT graphParser: public stateParser { public: @@ -105,14 +112,18 @@ namespace YACS }; + class loopPortParser; class YACSLOADER_EXPORT nodeParser: public stateParser { public: virtual void init(const xmlChar** p, xmlParserBase* father=0); virtual void onStart (const XML_Char* elem, const xmlChar** p); virtual void onEnd (const XML_Char* name); + Any* xmlToAny(const std::string& data, const TypeCode* tc)const; std::string _nodeName; std::string _nodeState; + private: + std::list _loopSamples; }; class YACSLOADER_EXPORT attrParser: public stateParser @@ -172,6 +183,37 @@ namespace YACS virtual void charData(std::string data); }; + class YACSLOADER_EXPORT loopPortParser: public stateParser + { + public: + virtual void init(const xmlChar** p, xmlParserBase* father=0); + virtual void onStart (const XML_Char* elem, const xmlChar** p); + virtual void onEnd (const XML_Char* name); + virtual void charData(std::string data); + void addSample(int index, const std::string data); + unsigned int getNbSamples()const; + unsigned int getSampleId(unsigned int i)const; + const std::string& getSampleData(unsigned int i)const; + const std::string& getPortName()const; + private: + std::vector _ids; + std::vector _sampleData; + }; + + class YACSLOADER_EXPORT sampleParser: public stateParser + { + public: + sampleParser(loopPortParser* father); + virtual void init(const xmlChar** p, xmlParserBase* father=0); + virtual void onStart (const XML_Char* elem, const xmlChar** p); + virtual void onEnd (const XML_Char* name); + virtual void charData(std::string data); + //protected: + // Any* xmlToAny()throw(ConversionException); + private: + loopPortParser* _sampleFather; + }; +#endif } } #endif