--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : AddComponent.idl
+// Author :
+// $Header$
+
+#ifndef _ADDCOMPONENT_IDL
+#define _ADDCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface Adder ;
+
+ interface AddComponent : Engines::Component {
+ Adder Addition() ;
+ double Add( in double x , in double y , out double z ) ;
+ double LastResult() ;
+ };
+
+ interface Adder : Engines::Component {
+ double Add( in double x , in double y , out double z ) ;
+ double AddAndCompare( in double x , in double y , in Adder anOtherAdder,
+ out double z ) ;
+ void SetLastResult( in double z ) ;
+ void LastResult( out double z ) ;
+ };
+
+} ;
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Calculator.idl
+// Author : Laurent DADA CEA
+// $Header$
+
+#ifndef CALCULATOR_IDL
+#define CALCULATOR_IDL
+
+#include "SALOME_Component.idl"
+#include "MED.idl"
+
+
+module Engines {
+
+interface Calculator : Component
+{
+
+ SALOME_MED::FIELDDOUBLE PutToStudy(in SALOME_MED::FIELDDOUBLE field1, in long theStudyId);
+ SALOME_MED::FIELDDOUBLE Add(in SALOME_MED::FIELDDOUBLE field1, in SALOME_MED::FIELDDOUBLE field2);
+ SALOME_MED::FIELDDOUBLE Mul(in SALOME_MED::FIELDDOUBLE field1, in double x1);
+ SALOME_MED::FIELDDOUBLE Constant(in SALOME_MED::FIELDDOUBLE field1, in double x1);
+ void writeMEDfile(in SALOME_MED::FIELDDOUBLE field1, in string fileName);
+
+};
+};
+
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DivComponent.idl
+// Author :
+// $Header$
+
+#ifndef _DIVCOMPONENT_IDL
+#define _DIVCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface DivComponent : Engines::Component {
+ void Div( in double x , in double y , out double z ) ;
+ };
+};
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : FactorialComponent.idl
+// Author :
+// $Header$
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface FactorialComponent : Engines::Component {
+ long eval(in long n);
+ };
+
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : GEOM_Gen.idl
+// Author : Lucien PIGNOLONI
+
+#ifndef __GEOM_GEN__
+#define __GEOM_GEN__
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+#include "GEOM_Shape.idl"
+
+module GEOM
+{
+ interface GEOM_Gen : Engines::Component,SALOMEDS::Driver
+ {
+ typedef sequence<string> ListOfIOR ;
+ typedef sequence<GEOM_Shape> ListOfGeomShapes ;
+
+ //--------------------------------------------------------------//
+ // Studies Management //
+ //--------------------------------------------------------------//
+ void GetCurrentStudy(in long StudyID) ;
+
+ short NbLabels();
+
+ //--------------------------------------------------------------//
+ // Shapes Management //
+ //--------------------------------------------------------------//
+ GEOM_Shape GetIORFromString (in string ior);
+ ListOfIOR GetReferencedObjects(in GEOM_Shape shape);
+ ListOfIOR GetObjects (in GEOM_Shape shape);
+
+ //--------------------------------------------------------------//
+ // Structures //
+ //--------------------------------------------------------------//
+ PointStruct MakePointStruct(in double x,
+ in double y,
+ in double z) ;
+ DirStruct MakeDirection (in PointStruct p) ;
+ AxisStruct MakeAxisStruct(in double x,
+ in double y,
+ in double z,
+ in double vx,
+ in double vy,
+ in double vz) ;
+
+ //------------------------------------------------------------//
+ // Boolean Operations //
+ //------------------------------------------------------------//
+ GEOM_Shape MakeBoolean (in GEOM_Shape shape1,
+ in GEOM_Shape shape2,
+ in long operation) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeFuse( in GEOM_Shape shape1,
+ in GEOM_Shape shape2) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Advanced Operations //
+ //-----------------------------------------------------------//
+ GEOM_Shape Partition (in ListOfIOR ListShapes,
+ in ListOfIOR ListTools,
+ in ListOfIOR ListKeepInside,
+ in ListOfIOR ListRemoveInside,
+ in short Limit)
+ raises (SALOME::SALOME_Exception) ;
+
+
+ GEOM_Shape MakeFilling(in GEOM_Shape shape,
+ in short mindeg,
+ in short maxdeg,
+ in double tol3d,
+ in double tol2d,
+ in short nbiter) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeSewing (in ListOfIOR ListShape,
+ in double precision) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeSewingShape( in GEOM_Shape aShape,
+ in double precision ) raises (SALOME::SALOME_Exception);
+
+ GEOM_Shape OrientationChange(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakePlacedBox(in double x1, in double y1, in double z1,
+ in double delta1, in double delta2, in double delta3) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePanel(in GEOM_Shape shape,
+ in short directiontype,
+ in double delta) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeGlueFaces(in GEOM_Shape shape,
+ in double tol3d) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Transformations Operations //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeCopy(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeTranslation(in GEOM_Shape shape,
+ in double x,
+ in double y,
+ in double z) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeRotation(in GEOM_Shape shape,
+ in AxisStruct axis,
+ in double angle) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeScaleTransform(in GEOM_Shape shape,
+ in PointStruct theCenterofScale,
+ in double factor) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMirrorByPlane(in GEOM_Shape shape,
+ in GEOM_Shape shapePlane) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeRevolution(in GEOM_Shape shape,
+ in AxisStruct axis,
+ in double angle) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePrism(in GEOM_Shape baseShape,
+ in PointStruct P1,
+ in PointStruct P2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePipe(in GEOM_Shape pathShape,
+ in GEOM_Shape baseShape) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Patterns Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeMultiTranslation1D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in double step,
+ in short nbtimes) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiTranslation2D(in GEOM_Shape shape,
+ in DirStruct dir1,
+ in double step1,
+ in short nbtimes1,
+ in DirStruct dir2,
+ in double step2,
+ in short nbtimes2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiRotation1D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in PointStruct loc,
+ in short nbtimes) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiRotation2D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in PointStruct loc,
+ in double ang,
+ in short nbtimes1,
+ in double step,
+ in short nbtimes2) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Mesures Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeCDG(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+
+ //-----------------------------------------------------------//
+ // Primitives Construction //
+ //-----------------------------------------------------------//
+
+ GEOM_Shape MakeVertex(in double x,
+ in double y,
+ in double z) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeVector (in PointStruct pstruct1,
+ in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeLine (in PointStruct pstruct,
+ in DirStruct dstruct) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePlane (in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double trimsize) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCircle(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeArc(in PointStruct pInit,
+ in PointStruct pCircle,
+ in PointStruct pEnd) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Primitives Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeBox (in double x1,
+ in double y1,
+ in double z1,
+ in double x2,
+ in double y2,
+ in double z2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCylinder(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius,
+ in double height) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeSphere (in double x1,
+ in double y1,
+ in double z1,
+ in double radius) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeTorus(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double major_radius,
+ in double minor_radius) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeCone(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius1,
+ in double radius2,
+ in double height) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Archimede //
+ //-----------------------------------------------------------//
+ GEOM_Shape Archimede(in GEOM_Shape shape,
+ in double Weight,
+ in double WaterDensity,
+ in double MeshingDeflection) raises (SALOME::SALOME_Exception);
+
+ //-----------------------------------------------------------//
+ // Build //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeEdge (in PointStruct pstruct1,
+ in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeWire (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCompound (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeFace (in GEOM_Shape shapeWire,
+ in boolean wantplanarface ) raises (SALOME::SALOME_Exception) ;
+
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction for GUI only //
+ //-----------------------------------------------------------//
+ GEOM_Shape SubShape(in GEOM_Shape shape,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction for TUI or GUI //
+ //-----------------------------------------------------------//
+ ListOfGeomShapes SubShapeAll(in GEOM_Shape shape,
+ in short ShapeType) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction
+ // Use it to have the same order of subshapes if their
+ // order may change as a result of <shape> reconstruction using
+ // boolean operations, fillet etc.
+ //-----------------------------------------------------------//
+ GEOM_Shape SubShapeSorted(in GEOM_Shape shape,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ ListOfGeomShapes SubShapeAllSorted(in GEOM_Shape shape,
+ in short ShapeType) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Fillet and Chamfer construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeFillet(in GEOM_Shape shape,
+ in double radius,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeChamfer(in GEOM_Shape shape,
+ in double d1,
+ in double d2,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress faces in a shape //
+ //-----------------------------------------------------------//
+ ListOfGeomShapes SuppressFaces(in GEOM_Shape shape,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress a single hole in topology (face) shell or solid //
+ // : ListOfIdEndFace may be an empty list //
+ // : used only when hole traverses the topology //
+ //-----------------------------------------------------------//
+ GEOM_Shape SuppressHole(in GEOM_Shape shape,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdFace,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdWire,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdEndFace ) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress one or more holes in a face or a shell //
+ //-----------------------------------------------------------//
+ GEOM_Shape SuppressHolesInFaceOrShell(in GEOM_Shape shapeFaceShell,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdWires ) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Import/Export //
+ //-----------------------------------------------------------//
+ GEOM_Shape ImportIGES(in string filename) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape ImportBREP(in string filename) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape ImportSTEP(in string filename) raises (SALOME::SALOME_Exception) ;
+
+ void ExportIGES(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ void ExportBREP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ void ExportSTEP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ //-----------------------------------------------------------//
+ // Check Shape //
+ //-----------------------------------------------------------//
+ boolean CheckShape(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : GEOM_Shape.idl
+// Author : Lucien PIGNOLONI
+
+#ifndef __GEOM_Shape__
+#define __GEOM_Shape__
+
+module GEOM
+{
+ //-----------------------------------------------------------------//
+ // Topological types for shapes (like Open Cascade types) //
+ //-----------------------------------------------------------------//
+
+ enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL,
+ FACE, WIRE, EDGE, VERTEX, SHAPE } ;
+
+ //----------------------------------------------------------------//
+ // Structures //
+ //--------------------------------------------------- ------------//
+ struct PointStruct { double x;
+ double y;
+ double z; } ;
+ struct DirStruct { PointStruct PS ; } ; // analog to Occ Direction
+
+ struct AxisStruct { double x;
+ double y;
+ double z;
+ double vx;
+ double vy;
+ double vz; } ;
+
+ //----------------------------------------------------------------//
+ // interface GEOM_Shape methods //
+ //----------------------------------------------------------------//
+
+ interface GEOM_Gen;
+
+ interface GEOM_Shape
+ {
+ typedef sequence<long> ListOfSubShapeID ;
+ typedef sequence<octet> TMPFile;
+
+ attribute string Name; // (to set and get) the name of shape (= CORBA IOR converted into a string)
+ attribute string MainName; // (to set and get) the name of mainshape (= CORBA IOR converted into a string)
+
+ attribute boolean IsMainShape; // (...) true if this is a main shape (not a sub shape)
+ attribute string ShapeId; // (...) the entry of the shape in geom/OCAF document
+ attribute string StudyShapeId; // (...) the entry of the shape in the study/OCAF when added
+ attribute ListOfSubShapeID Index; // (...) list of references (number) identifing the sub shapes in the main shape
+ attribute shape_type ShapeType; // (...) a topological type of the shape
+
+ attribute string NameType; // (...) a topological/geometrical name of the shape
+
+ //Transfer resulting shape to client as sequence of bytes
+ //client can extract shape from stream using BrepTools::Read function
+ TMPFile GetShapeStream();
+
+ // the generator engine
+ GEOM_Gen Engine();
+
+ };
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : GEOM_Gen.idl
+// Author : Lucien PIGNOLONI
+
+#ifndef __GEOM_GEN__
+#define __GEOM_GEN__
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+#include "GEOM_Shape.idl"
+
+module GEOM
+{
+ interface GEOM_Gen : Engines::Component,SALOMEDS::Driver
+ {
+ typedef sequence<string> ListOfIOR ;
+ typedef sequence<GEOM_Shape> ListOfGeomShapes ;
+
+ //--------------------------------------------------------------//
+ // Studies Management //
+ //--------------------------------------------------------------//
+ void GetCurrentStudy(in long StudyID) ;
+
+ short NbLabels();
+
+ //--------------------------------------------------------------//
+ // Shapes Management //
+ //--------------------------------------------------------------//
+ GEOM_Shape GetIORFromString (in string ior);
+ ListOfIOR GetReferencedObjects(in GEOM_Shape shape);
+ ListOfIOR GetObjects (in GEOM_Shape shape);
+
+ //--------------------------------------------------------------//
+ // Structures //
+ //--------------------------------------------------------------//
+ PointStruct MakePointStruct(in double x,
+ in double y,
+ in double z) ;
+ DirStruct MakeDirection (in PointStruct p) ;
+ AxisStruct MakeAxisStruct(in double x,
+ in double y,
+ in double z,
+ in double vx,
+ in double vy,
+ in double vz) ;
+
+ //------------------------------------------------------------//
+ // Boolean Operations //
+ //------------------------------------------------------------//
+ GEOM_Shape MakeBoolean (in GEOM_Shape shape1,
+ in GEOM_Shape shape2,
+ in long operation) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeFuse( in GEOM_Shape shape1,
+ in GEOM_Shape shape2) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Advanced Operations //
+ //-----------------------------------------------------------//
+ GEOM_Shape Partition (in ListOfIOR ListShapes,
+ in ListOfIOR ListTools,
+ in ListOfIOR ListKeepInside,
+ in ListOfIOR ListRemoveInside,
+ in short Limit)
+ raises (SALOME::SALOME_Exception) ;
+
+
+ GEOM_Shape MakeFilling(in GEOM_Shape shape,
+ in short mindeg,
+ in short maxdeg,
+ in double tol3d,
+ in double tol2d,
+ in short nbiter) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeSewing (in ListOfIOR ListShape,
+ in double precision) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeSewingShape( in GEOM_Shape aShape,
+ in double precision ) raises (SALOME::SALOME_Exception);
+
+ GEOM_Shape OrientationChange(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakePlacedBox(in double x1, in double y1, in double z1,
+ in double delta1, in double delta2, in double delta3) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePanel(in GEOM_Shape shape,
+ in short directiontype,
+ in double delta) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeGlueFaces(in GEOM_Shape shape,
+ in double tol3d) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Transformations Operations //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeCopy(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeTranslation(in GEOM_Shape shape,
+ in double x,
+ in double y,
+ in double z) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeRotation(in GEOM_Shape shape,
+ in AxisStruct axis,
+ in double angle) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeScaleTransform(in GEOM_Shape shape,
+ in PointStruct theCenterofScale,
+ in double factor) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMirrorByPlane(in GEOM_Shape shape,
+ in GEOM_Shape shapePlane) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeRevolution(in GEOM_Shape shape,
+ in AxisStruct axis,
+ in double angle) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePrism(in GEOM_Shape baseShape,
+ in PointStruct P1,
+ in PointStruct P2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePipe(in GEOM_Shape pathShape,
+ in GEOM_Shape baseShape) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Patterns Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeMultiTranslation1D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in double step,
+ in short nbtimes) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiTranslation2D(in GEOM_Shape shape,
+ in DirStruct dir1,
+ in double step1,
+ in short nbtimes1,
+ in DirStruct dir2,
+ in double step2,
+ in short nbtimes2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiRotation1D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in PointStruct loc,
+ in short nbtimes) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeMultiRotation2D(in GEOM_Shape shape,
+ in DirStruct dir,
+ in PointStruct loc,
+ in double ang,
+ in short nbtimes1,
+ in double step,
+ in short nbtimes2) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Mesures Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeCDG(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+
+ //-----------------------------------------------------------//
+ // Primitives Construction //
+ //-----------------------------------------------------------//
+
+ GEOM_Shape MakeVertex(in double x,
+ in double y,
+ in double z) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeVector (in PointStruct pstruct1,
+ in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeLine (in PointStruct pstruct,
+ in DirStruct dstruct) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakePlane (in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double trimsize) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCircle(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeArc(in PointStruct pInit,
+ in PointStruct pCircle,
+ in PointStruct pEnd) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Primitives Construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeBox (in double x1,
+ in double y1,
+ in double z1,
+ in double x2,
+ in double y2,
+ in double z2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCylinder(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius,
+ in double height) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeSphere (in double x1,
+ in double y1,
+ in double z1,
+ in double radius) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeTorus(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double major_radius,
+ in double minor_radius) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeCone(in PointStruct pstruct,
+ in DirStruct dstruct,
+ in double radius1,
+ in double radius2,
+ in double height) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Archimede //
+ //-----------------------------------------------------------//
+ GEOM_Shape Archimede(in GEOM_Shape shape,
+ in double Weight,
+ in double WaterDensity,
+ in double MeshingDeflection) raises (SALOME::SALOME_Exception);
+
+ //-----------------------------------------------------------//
+ // Build //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeEdge (in PointStruct pstruct1,
+ in PointStruct pstruct2) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeWire (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeCompound (in ListOfIOR ListShape) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape MakeFace (in GEOM_Shape shapeWire,
+ in boolean wantplanarface ) raises (SALOME::SALOME_Exception) ;
+
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction for GUI only //
+ //-----------------------------------------------------------//
+ GEOM_Shape SubShape(in GEOM_Shape shape,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction for TUI or GUI //
+ //-----------------------------------------------------------//
+ ListOfGeomShapes SubShapeAll(in GEOM_Shape shape,
+ in short ShapeType) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Subshapes Construction
+ // Use it to have the same order of subshapes if their
+ // order may change as a result of <shape> reconstruction using
+ // boolean operations, fillet etc.
+ //-----------------------------------------------------------//
+ GEOM_Shape SubShapeSorted(in GEOM_Shape shape,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ ListOfGeomShapes SubShapeAllSorted(in GEOM_Shape shape,
+ in short ShapeType) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Fillet and Chamfer construction //
+ //-----------------------------------------------------------//
+ GEOM_Shape MakeFillet(in GEOM_Shape shape,
+ in double radius,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ GEOM_Shape MakeChamfer(in GEOM_Shape shape,
+ in double d1,
+ in double d2,
+ in short ShapeType,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress faces in a shape //
+ //-----------------------------------------------------------//
+ ListOfGeomShapes SuppressFaces(in GEOM_Shape shape,
+ in GEOM_Shape::ListOfSubShapeID ListOfID) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress a single hole in topology (face) shell or solid //
+ // : ListOfIdEndFace may be an empty list //
+ // : used only when hole traverses the topology //
+ //-----------------------------------------------------------//
+ GEOM_Shape SuppressHole(in GEOM_Shape shape,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdFace,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdWire,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdEndFace ) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Suppress one or more holes in a face or a shell //
+ //-----------------------------------------------------------//
+ GEOM_Shape SuppressHolesInFaceOrShell(in GEOM_Shape shapeFaceShell,
+ in GEOM_Shape::ListOfSubShapeID ListOfIdWires ) raises (SALOME::SALOME_Exception) ;
+
+ //-----------------------------------------------------------//
+ // Import/Export //
+ //-----------------------------------------------------------//
+ GEOM_Shape ImportIGES(in string filename) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape ImportBREP(in string filename) raises (SALOME::SALOME_Exception) ;
+ GEOM_Shape ImportSTEP(in string filename) raises (SALOME::SALOME_Exception) ;
+
+ void ExportIGES(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ void ExportBREP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ void ExportSTEP(in string filename,in GEOM_Shape theShape) raises (SALOME::SALOME_Exception) ;
+ //-----------------------------------------------------------//
+ // Check Shape //
+ //-----------------------------------------------------------//
+ boolean CheckShape(in GEOM_Shape shape) raises (SALOME::SALOME_Exception) ;
+
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : GEOM_Shape.idl
+// Author : Lucien PIGNOLONI
+
+#ifndef __GEOM_Shape__
+#define __GEOM_Shape__
+
+module GEOM
+{
+ //-----------------------------------------------------------------//
+ // Topological types for shapes (like Open Cascade types) //
+ //-----------------------------------------------------------------//
+
+ enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL,
+ FACE, WIRE, EDGE, VERTEX, SHAPE } ;
+
+ //----------------------------------------------------------------//
+ // Structures //
+ //--------------------------------------------------- ------------//
+ struct PointStruct { double x;
+ double y;
+ double z; } ;
+ struct DirStruct { PointStruct PS ; } ; // analog to Occ Direction
+
+ struct AxisStruct { double x;
+ double y;
+ double z;
+ double vx;
+ double vy;
+ double vz; } ;
+
+ //----------------------------------------------------------------//
+ // interface GEOM_Shape methods //
+ //----------------------------------------------------------------//
+
+ interface GEOM_Gen;
+
+ interface GEOM_Shape
+ {
+ typedef sequence<long> ListOfSubShapeID ;
+ typedef sequence<octet> TMPFile;
+
+ attribute string Name; // (to set and get) the name of shape (= CORBA IOR converted into a string)
+ attribute string MainName; // (to set and get) the name of mainshape (= CORBA IOR converted into a string)
+
+ attribute boolean IsMainShape; // (...) true if this is a main shape (not a sub shape)
+ attribute string ShapeId; // (...) the entry of the shape in geom/OCAF document
+ attribute string StudyShapeId; // (...) the entry of the shape in the study/OCAF when added
+ attribute ListOfSubShapeID Index; // (...) list of references (number) identifing the sub shapes in the main shape
+ attribute shape_type ShapeType; // (...) a topological type of the shape
+
+ attribute string NameType; // (...) a topological/geometrical name of the shape
+
+ //Transfer resulting shape to client as sequence of bytes
+ //client can extract shape from stream using BrepTools::Read function
+ TMPFile GetShapeStream();
+
+ // the generator engine
+ GEOM_Gen Engine();
+
+ };
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : Logger.idl
+// Author : Vasily Rusyaev
+
+#ifndef SALOME_LOGGER_IDL
+#define SALOME_LOGGER_IDL
+
+#pragma prefix "opencascade.com"
+
+module SALOME_Logger
+{
+ interface Logger
+ {
+ //put message into one special place for all servers using Logger
+ oneway void putMessage (in string message);
+ };
+};
+
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MED.idl
+// $Header$
+
+/*!
+This file contains the main IDL difinitions of the %MED component in %SALOME application.
+*/
+#ifndef MED_IDL
+#define MED_IDL
+/*!
+ \defgroup MED SALOME MED component
+*/
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+
+module Engines {
+ /*!
+ An array of long
+ */
+ typedef sequence<long> long_array;
+ /*!
+ An array of double
+ */
+ typedef sequence<double> double_array;
+ /*!
+ An array of string
+ */
+ typedef sequence<string> string_array;
+ /*!
+ An array of boolean
+ */
+ typedef sequence<boolean> boolean_array;
+
+};
+/*! \ingroup MED
+This package contains a set of interfaces used for %SALOME %MED component.
+*/
+
+module SALOME_MED {
+
+ // interface FIELD;
+ interface FIELD;
+ interface FAMILY;
+ interface GROUP;
+ interface MESH;
+ interface SUPPORT;
+
+/*!
+This enumeration conatains a set of elements difining the type of geometrical elements which constitue
+a %Mesh.
+*/
+ enum medGeometryElement {
+ MED_NONE,
+ MED_POINT1,
+ MED_SEG2,
+ MED_SEG3,
+ MED_TRIA3,
+ MED_QUAD4,
+ MED_TRIA6,
+ MED_QUAD8,
+ MED_TETRA4,
+ MED_PYRA5,
+ MED_PENTA6,
+ MED_HEXA8,
+ MED_TETRA10,
+ MED_PYRA13,
+ MED_PENTA15,
+ MED_HEXA20,
+ MED_ALL_ELEMENTS
+ };
+/*!
+This enumeration conatains a set of elements difining the structural elements (entities) which constitue
+a %Mesh.
+*/
+
+ enum medEntityMesh {
+ MED_CELL,
+ MED_FACE,
+ MED_EDGE,
+ MED_NODE,
+ MED_ALL_ENTITIES
+ };
+
+ enum medModeSwitch {
+ MED_FULL_INTERLACE,
+ MED_NO_INTERLACE
+ };
+
+ enum medConnectivity {
+ MED_NODAL,
+ MED_DESCENDING
+ };
+/*!
+This enumeration conatains a set of elements difining the type of driver.
+*/
+
+ enum medDriverTypes {
+ MED_DRIVER , /*!<This driver is used for reading into memory of the mesh from %MED file.*/
+ VTK_DRIVER , /*!<This driver is used for visualization of the mesh imported from %MED file.*/
+ NO_DRIVER
+ };
+
+ /*!
+ An array of <VAR>medGeometryElement</VAR>
+ */
+ typedef sequence<medGeometryElement> medGeometryElement_array;
+ /*!
+ An array of %FAMILY
+ */
+ typedef sequence<FAMILY> Family_array;
+ /*!
+ An array of %GROUP
+ */
+ typedef sequence<GROUP> Group_array;
+
+ // ----------------------
+ // mesh interface
+ // ----------------------
+
+ interface MESH {
+ // Index range begins from 1
+
+ // General Informations
+ //---------------------
+
+ /*!
+ Returns the name of the mesh .
+ */
+ string getName() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns space dimension.
+ */
+ long getSpaceDimension() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns mesh dimension.
+
+ Example :
+ - we have only MED_TETRA4 in MED_CELL : MeshDimension = 3D
+ - we have only MED_QUAD4 in MED_CELL : MeshDimension = 2D
+ - we have both MED_SEG2 and MED_TRIA3 in MED_CELL : MeshDimension = 2D
+ */
+ long getMeshDimension() raises (SALOME::SALOME_Exception);
+
+ // Coordinates
+ //------------
+
+ /*!
+ Returns coordinate system :
+ - "CARTESIAN"
+ - "CYLINDRICAL"
+ - "SPHERICAL"
+ */
+ string getCoordinateSystem() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the number of nodes defined in the mesh.
+ */
+ long getNumberOfNodes() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of coordinates :
+ - X1,Y1,Z1,X2,Y2,...,Zn if MED_FULL_INTERLACE
+ - X1,X2,...Xn,Y1,Y2,...Zn if MED_NO_INTERLACE
+ */
+ Engines::double_array getCoordinates(in medModeSwitch typeSwitch)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array containing the names of coordinates.
+
+ Example :
+ - x,y,z
+ - r,teta,phi
+ - ...
+
+ It could be empty.
+ */
+ Engines::string_array getCoordinatesNames()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array containing the units of coordinates (cm, m, mm, ...)
+
+ It could be empty. By defult IS is used (meter).
+ */
+ Engines::string_array getCoordinatesUnits()
+ raises (SALOME::SALOME_Exception);
+
+ // Connectivity
+ // ------------
+
+ /*!
+ Returns the number of different <VAR>medGeometryElement</VAR> types existing
+ in the specified entity.
+
+ \note
+ Not implemented for MED_ALL_ENTITIES.
+ */
+ long getNumberOfTypes(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all <VAR>medGeometryElement</VAR> types existing
+ in the mesh.
+
+ \note
+ Not implemented for MED_ALL_ENTITIES.
+ */
+ medGeometryElement_array getTypes(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the number of elements of type <VAR>medGeometryElement</VAR>.
+
+ Note :
+ - Implemented for MED_ALL_ELEMENTS
+ - Not implemented for MED_ALL_ENTITIES
+ */
+ long getNumberOfElements(in medEntityMesh entity,
+ in medGeometryElement geomElement)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Give, in full or no interlace mode (for nodal connectivity),
+ descending or nodal connectivity.
+
+ You must give a <VAR>medEntityMesh</VAR> (ie:MED_EDGE) and a
+ <VAR>medGeometryElement</VAR> (ie:MED_SEG3).
+ */
+ Engines::long_array getConnectivity(in medModeSwitch typeSwitch,
+ in medConnectivity mode,
+ in medEntityMesh entity,
+ in medGeometryElement geomElement)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Give morse index array to use with
+ getConnectivity(MED_FULL_INTERLACE,mode,entity,MED_ALL_ELEMENTS).
+
+ Each value give start index for corresponding entity in
+ connectivity array.
+
+ Example : i-th element, j-th node of it :
+ - In C mode : Connectivity[ConnectivityIndex[i]-1+j-1]
+ - In fortran mode : Connectivity[ConnectivityIndex[i]+j]
+ */
+ Engines::long_array getConnectivityIndex(in medConnectivity mode,
+ in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Gets a global number of the element which have the same connectivity as the
+ connectivity argument.
+ */
+ long getElementNumber(in medConnectivity mode,
+ in medEntityMesh entity,
+ in medGeometryElement type,
+ in Engines::long_array connectivity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a reverse connectivity to MED_CELL.
+
+ If mode=MED_NODAL, the array contains, for each node, all cells
+ arround it.
+
+ If mode=MED_DESCENDING, the array contains, for each face (or edge),
+ the 2 cells of each side. First is cell which face normal is outgoing.
+ */
+ Engines::long_array getReverseConnectivity(in medConnectivity mode)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Give index array to use with getReverseConnectivity(MED_NODAL).
+
+ This method is not used with MED_DESCENDING mode,
+ because we have allways two cells.
+
+ See getConnectivityIndex for details.
+ */
+ Engines::long_array getReverseConnectivityIndex(in medConnectivity mode)
+ raises (SALOME::SALOME_Exception);
+
+ // Families and Groups
+ // -------------------
+
+ /*!
+ Returns the number of all families.
+ */
+ long getNumberOfFamilies(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the number of all groups.
+ */
+ long getNumberOfGroups(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all families.
+ */
+ Family_array getFamilies(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the reference to i-th family.
+
+ \note
+ i is bounded by 1 and NumberOfFamilies.
+ */
+ FAMILY getFamily(in medEntityMesh entity,in long familyNumber)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all groups.
+ */
+ Group_array getGroups(in medEntityMesh entity)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the reference to i-th group.
+
+ \note
+ i is bounded by 1 and NumberOfGroups.
+ */
+ GROUP getGroup(in medEntityMesh entity,in long groupNumber)
+ raises (SALOME::SALOME_Exception);
+
+ // Others
+ // ------
+
+ /*!
+ Returns a field on mySupport containing volume.
+
+ \note
+ mySupport must be on MED_CELL entity and MeshDimension must be 3D.
+ */
+ FIELD getVolume(in SUPPORT mySupport)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a field on mySupport containing area.
+
+ \note
+ mySupport must be on MED_FACE entity.
+ */
+ FIELD getArea(in SUPPORT mySupport)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a field on mySupport containing length.
+
+ \note
+ mySupport must be on MED_EDGE entity.
+ */
+ FIELD getLength(in SUPPORT mySupport)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a field on mySupport containing normal.
+
+ \note
+ mySupport must be on MED_FACE entity if MeshDimension and
+ SpaceDimension=3D and on MED_EDGE if MeshDimension and SpaceDimension=2D.
+ */
+ FIELD getNormal(in SUPPORT mySupport)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a field on mySupport containing barycenter.
+ */
+ FIELD getBarycenter(in SUPPORT mySupport)
+ raises (SALOME::SALOME_Exception);
+
+ /*
+ Returns a field on mySupport containing neighbourhood.
+ */
+ // FIELD getNeighbourhood(in SUPPORT mySupport)
+ // raises (SALOME::SALOME_Exception);
+
+ // Read & Write
+ // -----------
+
+ /*!
+ Adds the Mesh in the StudyManager.
+ */
+ void addInStudy(in SALOMEDS::Study myStudy, in MESH myIor )
+ raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection);
+
+ // Add a MED/VTK/... driver
+ // Multiple drivers can be added whatever the type
+ long addDriver (in medDriverTypes driverType, in string fileName, in string meshName)
+ raises (SALOME::SALOME_Exception);
+ // Remove a driver
+ void rmDriver (in long i) raises (SALOME::SALOME_Exception);
+
+ //
+ void read (in long i) raises (SALOME::SALOME_Exception);
+ void write (in long i, in string driverMeshName)
+ raises (SALOME::SALOME_Exception);
+
+/*!
+Internal Corba method.
+*/
+ long getCorbaIndex() raises (SALOME::SALOME_Exception);
+ };
+
+
+ // ----------------------
+ // Support interface
+ // ----------------------
+
+ interface SUPPORT {
+
+ /*!
+ Returns the name of the support.
+ */
+ string getName() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the description of the support.
+ */
+ string getDescription() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a reference to the mesh.
+ */
+ MESH getMesh() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the type of <VAR>medEntityMesh</VAR> used by the support.
+
+ \note
+ A support deals only with one entity's type
+ (for example : MED_FACE or MED_NODE)
+ */
+ medEntityMesh getEntity() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns True if all elements of this entity are
+ engaged, False otherwise.
+
+ If True, you must use mesh reference (getMesh) to get more information.
+ */
+ boolean isOnAllElements() raises (SALOME::SALOME_Exception);
+
+ /*!
+ If the method <VAR>isOnAllElements</VAR> returns False, this method
+ returns the number of elements in the support.
+
+ Example : number of MED_TRIA3 or MED_ALL_ELEMETNS elements
+ in entity of support.
+
+ \note
+ If %SUPPORT is defined on MED_NODE, use MED_NONE <VAR>medGeometryElement</VAR> type.
+ */
+ long getNumberOfElements(in medGeometryElement geomElement)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ If isOnAllElements is False, returns an array of <VAR>medGeometryElement</VAR>
+ types used by the support.
+
+ <VAR>medEntityMesh</VAR> is given by getEntity.
+ */
+ medGeometryElement_array getTypes() raises (SALOME::SALOME_Exception);
+
+ /*!
+ If the method <VAR>isOnAllElements</VAR> returns False, this method returns an array which
+ contains all numbers of given <VAR>medGeometryElement</VAR>.
+
+ Numbering is global, ie numbers are bounded by 1 and
+ MESH::getNumberOfElement(entity,MED_ALL_ELEMENTS) and not by 1 and
+ MESH::getNumberOfElement(entity,geomElement).
+
+ \note
+ If %SUPPORT is defined on MED_NODE, use MED_NONE <VAR>medGeometryElement</VAR> type.
+ */
+ Engines::long_array getNumber(in medGeometryElement geomElement)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ If the method <VAR>isOnAllElements</VAR> returns False, this method returns the index
+ of element number.
+
+ Use it with getNumber(MED_ALL_ELEMENTS).
+
+ \note
+ See the method <VAR>getConnectivityIndex</VAR> for more details.
+ */
+ Engines::long_array getNumberIndex()
+ raises (SALOME::SALOME_Exception);
+ /*!
+ Returns the number of Gauss points for this <VAR>medGeometryElement</VAR>.
+
+ \note
+ - Not defined if %SUPPORT is on MED_NODE.
+ - Not defined for MED_ALL_ELEMENTS <VAR>medGeometryElement</VAR> type.
+ */
+ long getNumberOfGaussPoints(in medGeometryElement geomElement)
+ raises (SALOME::SALOME_Exception);
+/*!
+Internal Corba method.
+*/
+ long getCorbaIndex() raises (SALOME::SALOME_Exception);
+ };
+
+
+ //-----------------
+ // Family interface
+ //-----------------
+
+ interface FAMILY : SUPPORT
+ {
+
+ /*!
+ Returns Family identifier (Identifier
+ of the family in the mesh).
+
+ \note
+ There is precisely only one indentifier for each family.
+ */
+ long getIdentifier() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns number of attributes.
+ */
+ long getNumberOfAttributes() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all attributes' identifiers.
+ There is one for each attribute.
+ */
+ Engines::long_array getAttributesIdentifiers()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns identifier of i-th attribute.
+
+ \note
+ i is bounded by 1 and NumberOfAttributes.
+ */
+ long getAttributeIdentifier(in long i) raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all values of the attributes .
+ There is one value for each attribute.
+ */
+ Engines::long_array getAttributesValues()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the value of i-th attribute.
+
+ \note
+ i is bounded by 1 and NumberOfAttributes.
+ */
+ long getAttributeValue(in long i) raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all descriptions of the attributes .
+ There is one description for each attribute.
+ */
+ Engines::string_array getAttributesDescriptions()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the description of i-th attribute.
+
+ \note
+ i is bounded by 1 and NumberOfAttributes.
+ */
+ string getAttributeDescription(in long i)
+ raises (SALOME::SALOME_Exception);
+ };
+
+
+ //----------------
+ // Group interface
+ //----------------
+ interface GROUP : SUPPORT
+ {
+
+ /*!
+ Returns the number of families in this group.
+ */
+ long getNumberOfFamilies() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array of all families.
+ */
+ Family_array getFamilies() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a reference to the i-th family.
+
+ \note
+ i is bounded by 1 and NumberOfFamilies.
+ */
+ FAMILY getFamily(in long i) raises (SALOME::SALOME_Exception);
+
+ };
+
+
+ //----------------
+ // Field interface
+ //----------------
+
+ interface FIELD
+ {
+
+ /*!
+ Returns the field name.
+ */
+ string getName() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the field description.
+ */
+ string getDescription() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns a reference to the support
+ on which the field is defined.
+ */
+ SUPPORT getSupport() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the number of field's components.
+ */
+ long getNumberOfComponents() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array containing components names.
+ */
+ Engines::string_array getComponentsNames()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the name of i-th component.
+
+ \note
+ - i is bounded by 1 and NumberOfComponents.
+ - Name is mandatory for each field's component.
+ */
+ string getComponentName(in long i) raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns an array containing components units.
+ */
+ Engines::string_array getComponentsUnits()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns the unit of i-th component.
+
+ \note
+ i is bounded by 1 and NumberOfComponents.
+ */
+ string getComponentUnit(in long i) raises (SALOME::SALOME_Exception);
+
+
+ long getIterationNumber() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns time for this iteration.
+ */
+ double getTime() raises (SALOME::SALOME_Exception);
+
+ /*!
+ Returns order number use for
+ internal step in this iteration.
+ */
+ long getOrderNumber() raises (SALOME::SALOME_Exception);
+
+ // Read & Write
+ // -----------
+
+ long addDriver (in medDriverTypes driverType, in string fileName, in string fieldName)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Removes a driver
+ */
+ void rmDriver (in long i)
+ raises (SALOME::SALOME_Exception);
+
+ //
+ void read (in long i)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Writes a field.
+ */
+ void write (in long i, in string driverFieldName)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ Adds the Field in the StudyManager.
+ */
+ void addInStudy(in SALOMEDS::Study myStudy, in FIELD myIor )
+ raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection);
+
+/*!
+Internal Corba method.
+*/
+ long getCorbaIndex()
+ raises (SALOME::SALOME_Exception);
+
+ };
+
+
+ interface FIELDDOUBLE : FIELD {
+
+ /*!
+ Returns an array of values of the field
+ */
+ Engines::double_array getValue(in medModeSwitch mode)
+ raises (SALOME::SALOME_Exception);
+ };
+
+ interface FIELDINT : FIELD {
+
+ /*!
+ Returns an array of values of the field
+ */
+ Engines::long_array getValue(in medModeSwitch mode)
+ raises (SALOME::SALOME_Exception);
+
+ };
+
+ // MED interface
+
+ interface MED {
+
+
+ long getNumberOfMeshes () raises (SALOME::SALOME_Exception);
+ long getNumberOfFields () raises (SALOME::SALOME_Exception);
+ Engines::string_array getMeshNames () raises (SALOME::SALOME_Exception);
+ Engines::string_array getFieldNames () raises (SALOME::SALOME_Exception);
+ MESH getMeshByName ( in string meshName) raises (SALOME::SALOME_Exception);
+ MESH getMesh ( in FIELD fieldPtr) raises (SALOME::SALOME_Exception);
+ FIELD getField ( in string fieldName,
+ in long pasTemps,
+ in long numOrdre ) raises (SALOME::SALOME_Exception);
+
+
+ // Add a MED/VTK/... driver to a MED'GEN' object to
+ // be able to read/write files preserving meshes<-->fields association
+ // Multiple drivers can be added whatever the type.
+ // The access point in the <long> returned
+ long addDriver (in medDriverTypes driverType, in string fileName)
+ raises (SALOME::SALOME_Exception);
+ /*!
+ Removes the driver
+ */
+ void rmDriver (in long i) raises (SALOME::SALOME_Exception);
+ /*!
+ Reads the structure of the %MED file
+ */
+ void readFileStruct(in long i) raises (SALOME::SALOME_Exception);
+ void writeFrom (in long i) raises (SALOME::SALOME_Exception);
+ void write (in long i) raises (SALOME::SALOME_Exception);
+
+ void addMesh (in MESH ptrMesh ) raises (SALOME::SALOME_Exception);
+ void addField (in FIELD ptrField ) raises (SALOME::SALOME_Exception);
+
+ void addInStudy (in SALOMEDS::Study myStudy, in MED medPtr) raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection);
+ };
+};
+
+#endif /* MED_IDL */
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MPIContainer.idl
+
+#ifndef _SALOME_MPICONTAINER_IDL_
+#define _SALOME_MPICONTAINER_IDL_
+
+#include "SALOME_Component.idl"
+#include "MPIObject.idl"
+
+module Engines
+{
+ interface MPIContainer:Container,MPIObject
+ {
+ } ;
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MPIObject.idl
+
+#ifndef _SALOME_MPIOBJECT_IDL_
+#define _SALOME_MPIOBJECT_IDL_
+
+module Engines
+{
+ typedef sequence<Object> IORTab;
+ interface MPIObject
+ {
+ attribute IORTab tior;
+ } ;
+} ;
+
+#endif
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#
-# generate dependencies for idl file :
#
+#
+# File : Makefile.in
+# Module : idl
-# source path
top_srcdir=@top_srcdir@
top_builddir=..
srcdir=@srcdir@
-VPATH=.:$(srcdir):${KERNEL_ROOT_DIR}/idl/salome
+VPATH=.:$(srcdir)
@COMMENCE@
IDL_FILES = \
- SALOME_Component.idl \
+ GEOM_Gen.idl \
+ SALOME_Exception.idl \
+ SALOME_ModuleCatalog.idl \
+ SALOME_DataTypeCatalog.idl \
+ SALOME_RessourcesCatalog.idl \
+ GEOM_Shape.idl \
SALOMEDS.idl \
SALOMEDS_Attributes.idl \
- SALOME_Exception.idl \
+ SALOME_Session.idl \
+ SALOME_Component.idl \
+ SALOME_TestComponent.idl \
+ SUPERV.idl \
+ SALOME_Registry.idl \
+ MED.idl \
+ Med_Gen.idl \
+ AddComponent.idl \
+ DivComponent.idl \
+ FactorialComponent.idl \
+ MulComponent.idl \
+ SubComponent.idl \
+ SyrComponent.idl \
+ SyrControlComponent.idl \
+ TypeData.idl \
+ MPIObject.idl \
+ MPIContainer.idl \
+ NPVecComponent.idl \
+ NPMatComponent.idl \
+ NPSolveComponent.idl \
+ SMESH_Gen.idl \
+ SMESH_Mesh.idl \
+ SMESH_Hypothesis.idl \
+ SMESH_BasicHypothesis.idl \
+ Calculator.idl \
Logger.idl \
- SALOME_ModuleCatalog.idl \
- SUPERV.idl
+ VISU_Gen.idl
PY_CLIENT_IDL = $(IDL_FILES)
-# we copy all idl file in $(top_builddir)/idl
-inc: $(IDL_FILES:%=$(top_builddir)/idl/%)
+# we copy all idl file in $(top_builddir)/share/salome/idl
+inc: $(IDL_FILES:%=$(top_builddir)/share/salome/idl/%)
-$(IDL_FILES:%=$(top_builddir)/idl/%):$(top_builddir)/idl/%:%
+$(IDL_FILES:%=$(top_builddir)/share/salome/idl/%):$(top_builddir)/share/salome/idl/%:%
# $(CP) $< $@
cp -f $< $@
lib: pyidl
-PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
+PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/salome
pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)
distclean:
-$(RM) *.py
- -$(RM) $(IDL_FILES:%=$(top_builddir)/idl/%)
+ -$(RM) $(IDL_FILES:%=$(top_builddir)/share/salome/idl/%)
-$(RM) Makefile
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Med_Gen.idl
+
+#ifndef _Med_GEN_IDL_
+#define _Med_GEN_IDL_
+
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+#include "MED.idl"
+
+module Engines
+{
+ interface Med_Gen : Engines::Component, SALOMEDS::Driver
+ {
+ SALOME_MED::MESH readMeshInFile(in string fileName,
+ in string studyName,
+ in string meshName )
+ raises (SALOME::SALOME_Exception);
+ SALOME_MED::FIELD readFieldInFile(in string fileName,
+ in string studyName,
+ in string fieldName,
+ in long ordre,
+ in long iter )
+ raises (SALOME::SALOME_Exception);
+ SALOME_MED::MED readStructFile(in string fileName,
+ in string studyName )
+ raises (SALOME::SALOME_Exception);
+
+ void readStructFileWithFieldType(in string fileName,
+ in string studyName )
+ raises (SALOME::SALOME_Exception);
+ };
+
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MulComponent.idl
+// Author :
+// $Header$
+
+#ifndef _MULCOMPONENT_IDL
+#define _MULCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface MulComponent : Engines::Component {
+ void Mul( in double x , in double y , out double z ) ;
+ } ;
+};
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : NPMatComponent.idl
+
+#ifndef _SALOME_NPMATCOMPONENT_IDL_
+#define _SALOME_NPMATCOMPONENT_IDL_
+
+#include "SALOME_Component.idl"
+#include "TypeData.idl"
+#include "MPIObject.idl"
+
+module Engines
+{
+ interface PCSRMat : MPIObject
+ {
+ readonly attribute CSRMatStruct csrmat;
+
+ unsigned long NbRows();
+ unsigned long NbCols();
+ void LMat(out unsigned long start, out unsigned long end);
+ CSRMatStruct ncsrmat(in unsigned long start, in unsigned long end);
+ };
+
+ interface NPMatComponent:Component,MPIObject
+ {
+
+ readonly attribute PCSRMat dmat;
+
+ void SetFileName(in string filename);
+
+ oneway void ReadDataFromFile(in string id_callback);
+ oneway void SaveDataToFile(in string id_callback);
+
+ oneway void SPGetData(in string id_callback);
+ } ;
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : NPSolveComponent.idl
+
+#ifndef _SALOME_NPSOLVECOMPONENT_IDL_
+#define _SALOME_NPSOLVECOMPONENT_IDL_
+
+#include "SALOME_Component.idl"
+#include "TypeData.idl"
+#include "MPIObject.idl"
+#include "NPVecComponent.idl"
+#include "NPMatComponent.idl"
+
+module Engines
+{
+ interface NPSolveComponent:Component,MPIObject
+ {
+ void Solve( in PCSRMat A, in PVec b, out PVec x );
+ oneway void SPSolve( in PCSRMat A, in PVec b, in string id_callback );
+ } ;
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : NPVecComponent.idl
+
+#ifndef _SALOME_NPVECCOMPONENT_IDL_
+#define _SALOME_NPVECCOMPONENT_IDL_
+
+#include "SALOME_Component.idl"
+#include "TypeData.idl"
+#include "MPIObject.idl"
+
+module Engines
+{
+ interface PVec : MPIObject
+ {
+ readonly attribute DoubleVec vec;
+
+ unsigned long Size();
+ void LVec(out unsigned long start, out unsigned long end);
+ DoubleVec nvec(in unsigned long start, in unsigned long end);
+ };
+
+ interface NPVecComponent:Component,MPIObject
+ {
+
+ attribute PVec dvec;
+
+ void SetFileName(in string filename);
+
+ oneway void ReadDataFromFile(in string id_callback);
+ oneway void SaveDataToFile(in string id_callback);
+
+ oneway void SPGetData(in string id_callback);
+ oneway void SPPutData(in PVec vec,in string id_callback);
+ } ;
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : Logger.idl
+// Author : Vasily Rusyaev
+
+#ifndef SALOME_LOGGER_IDL
+#define SALOME_LOGGER_IDL
+
+#pragma prefix "opencascade.com"
+
+module SALOME_Logger
+{
+ interface Logger
+ {
+ //put message into one special place for all servers using Logger
+ oneway void putMessage (in string message);
+ };
+};
+
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MPIContainer.idl
+
+#ifndef _SALOME_MPICONTAINER_IDL_
+#define _SALOME_MPICONTAINER_IDL_
+
+#include "SALOME_Component.idl"
+#include "MPIObject.idl"
+
+module Engines
+{
+ interface MPIContainer:Container,MPIObject
+ {
+ } ;
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : MPIObject.idl
+
+#ifndef _SALOME_MPIOBJECT_IDL_
+#define _SALOME_MPIOBJECT_IDL_
+
+module Engines
+{
+ typedef sequence<Object> IORTab;
+ interface MPIObject
+ {
+ attribute IORTab tior;
+ } ;
+} ;
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOMEDS.idl
+// Author : Yves FRICAUD
+// $Header$
+
+/*! \mainpage
+ \image html Application-About.png
+
+*/
+/*! \page page1 Mapping of IDL definitions to Python language.
+\section Intro Introduction
+%SALOME PRO is a distributed client/server application using the Common Object Request Broker Architecture (CORBA).
+CORBA architecture uses the Interface Definition Language (IDL), which specifies interfaces between CORBA objects. So with help of IDL
+CORBA's language independence is ensured . Because interfaces described in IDL can be mapped to the most of currently used programming languages, CORBA applications and components are thus
+independent of the language(s) used to implement them. In other words, a client written in C++ can communicate with a server written in Java, which in turn can communicate with
+another server written in COBOL, and so forth.
+
+One important thing to remember about IDL is that it is not an implementation language. That is, applications can't be written in IDL. The sole purpose of IDL is to define interfaces;
+providing implementations for these interfaces is performed using some other language.
+
+This page contains an abridged reference manual for mapping of IDL definitions to Python language. It will be useful for Python programmers who are not familiar
+with IDL language. All examples are taken from %SALOME PRO source files.
+The complete version of Python Language Mapping Specification can be found <A HREF="http://www.omg.org">here.</A>
+
+<BR><STRONG>CONTENTS:</STRONG>
+- \ref subsection1
+- \ref subsection2
+- \ref subsection3
+- \ref subsection4
+- \ref subsection5
+- \ref subsection6
+- \ref subsection7
+
+\subsection subsection1 Using Scoped Names
+
+Python implements a module concept that is similar to the IDL scoping mechanisms,
+except that it does not allow for nested modules. In addition, Python requires each
+object to be implemented in a module; globally visible objects are not supported.
+
+Because of these constraints, scoped names are translated into Python using the
+following rules:
+
+\95 An IDL module mapped into a Python module. Modules containing modules are
+mapped to packages (i.e., directories with an <STRONG>__init__</STRONG> module containing all
+definitions excluding the nested modules). An implementation can chose to map toplevel
+definitions (including the module CORBA) to modules in an implementationdefined
+package, to allow concurrent installations of different CORBA runtime
+libraries. In that case, the implementation must provide additional modules so that
+toplevel modules can be used without importing them from a package.
+
+\95 For all other scopes, a Python class is introduced that contains all the definitions
+inside this scope.
+
+\95 Other global definitions (except modules) appear in a module whose name is
+implementation dependent. Implementations are encouraged to use the name of the
+IDL file when defining the name of that module.
+
+For instance,
+
+\verbatim
+module SALOMEDS {
+ interface StudyManager {
+ void Close(in Study aStudy);
+ };
+};
+\endverbatim
+
+would introduce a module SALOMEDS.py, which contains the following definitions:
+
+\verbatim
+# module SALOMEDS.py
+class StudyManager:
+ def _Close(self,aStudy):
+ pass #interfaces are discussed later
+\endverbatim
+
+To avoid conflicts, IDL names that are also Python identifiers are prefixed with an underscore (\91_\92).
+
+\subsection subsection2 Mapping for Template and Array Types
+
+Both the bounded and the unbounded string type of IDL are mapped to the Python
+string type. Wide strings are represented by an implementation-defined type with the
+following properties:
+
+\95 For the wide string X and the integer n, X[n] returns the nth character, which is a
+wide string of length 1.
+
+\95 len(X) returns the number of characters of wide string X.
+
+\95 CORBA.wstr(c) returns a wide character with the code point c in an
+implementation-defined encoding.
+
+\95 X+Y returns the concatenation of wide strings X and Y.
+
+\95 CORBA.word(CORBA.wstr(c)) == c
+
+The sequence template is mapped to sequence objects (e.g., tuples or lists).
+Applications should not assume that values of a sequence type are mutable. Sequences
+and arrays of octets and characters are mapped to the string type for efficiency reasons.
+
+For example, given the IDL definitions
+
+\verbatim
+module SALOMEDS {
+ typedef sequence <string> StringSeq;
+
+ interface AttributeTableOfInteger : GenericAttribute {
+
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ };
+};
+\endverbatim
+
+a client could invoke the operation
+
+\verbatim
+print My_AttributeTableOfInteger.SetRowTitles(["X","F"])
+\endverbatim
+
+Array types are mapped like sequence templates. The application in this example also expects an
+IncorrectArgumentLength exception if it passes sequences that violate the bounds constraint or
+arrays of wrong size.
+
+Another example with arrays. The following IDL definition
+
+\verbatim
+module SALOMEDS {
+ typedef sequence<GenericAttribute> ListOfAttributes;
+ interface SObject {
+ ListOfAttributes GetAllAttributes();
+ };
+};
+\endverbatim
+
+is equal to
+
+\verbatim
+import SALOMEDS
+
+attributes=[]
+
+attributes = My_SObject.GetAllAttributes()
+
+length = len(attributes)
+
+print "Attributes number = ", length
+print attributes
+\endverbatim
+
+\subsection subsection3 Mapping for Objects and Operations
+
+A CORBA object reference is represented as a Python object at run-time. This object
+provides all the operations that are available on the interface of the object. Although
+this specification does not mandate the use of classes for stub objects, the following
+discussion uses classes to indicate the interface.
+
+The nil object is represented by <STRONG>None</STRONG>.
+
+If an operation expects parameters of the IDL Object type, any Python object
+representing an object reference might be passed as actual argument.
+
+If an operation expects a parameter of an abstract interface, either an object
+implementing that interface, or a value supporting this interface may be passed as
+actual argument. The semantics of abstract values then define whether the argument is
+passed by value or by reference.
+
+Operations of an interface map to methods available on the object references.
+Parameters with a parameter attribute of <STRONG>in</STRONG> or <STRONG>inout</STRONG>
+are passed from left to right tothe method, skipping <STRONG>out</STRONG> parameters.
+The return value of a method depends on the number of <STRONG>out</STRONG> parameters
+and the return type. If the operation returns a value, this
+value forms the first <VAR>result value</VAR>. All <STRONG>inout</STRONG> or <STRONG>out</STRONG>
+parameters form consecutive <VAR>result values</VAR>. The method result depends then on the number
+of <VAR>result values</VAR>:
+
+\95 If there is no <VAR>result value</VAR>, the method returns None.
+
+\95 If there is exactly one <VAR>result value</VAR>, it is returned as a single value.
+
+\95 If there is more than one <VAR>result value</VAR>, all of them are packed into a tuple, and this
+tuple is returned.
+
+Assuming the IDL definition
+
+\verbatim
+module SALOMEDS{
+ interface StudyBuilder{
+ boolean FindAttribute ( in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute );
+ };
+};
+\endverbatim
+
+a client could write
+
+\verbatim
+from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+
+ res,A=my_StudyBuilder.FindAttribute(Sobj, "AttributeSequenceOfReal")
+\endverbatim
+
+In this example <STRONG>A</STRONG> corresponds to the return value <STRONG>anAttribute</STRONG> and
+<STRONG>res</STRONG> to the <STRONG>boolean</STRONG> return value.
+
+If an interface defines an <STRONG>attribute name</STRONG>, for example, the attribute is mapped into an
+operation <STRONG>_get_name</STRONG>. If the attribute is not <STRONG>readonly</STRONG>, there is an
+additional operation <STRONG>_set_name</STRONG>.
+
+The IDL definition
+
+\verbatim
+module SALOMEDS{
+ interface Study{
+ attribute string Name;
+ };
+};
+\endverbatim
+
+is equal to the following
+
+\verbatim
+from SALOMEDS import Study
+My_Study=...
+ Name=My_Study._get_name();
+ Name=My_Study._set_name();
+\endverbatim
+
+\subsection subsection4 Narrowing Object References
+
+Python objects returned from CORBA operations or pseudo-operations (such as
+string_to_object) might have a dynamic type, which is more specific than the
+static type as defined in the operation signature.
+
+Since there is no efficient and reliable way of automatically creating the most specific
+type, explicit narrowing is necessary. To narrow an object reference <STRONG>A</STRONG> to an interface
+class <STRONG>AttributeSequenceOfReal</STRONG>, the client can use the following operation
+
+\verbatim
+A = A._narrow(SALOMEDS.AttributeSequenceOfReal)
+\endverbatim
+
+\subsection subsection5 Mapping for Exceptions
+
+An IDL exception is translated into a Python class derived from
+CORBA.UserException. System exceptions are derived from CORBA.SystemException.
+Both base classes are derived from CORBA.Exception. The parameters of the
+exception are mapped in the same way as the fields of a struct definition. When
+raising an exception, a new instance of the class is created; the constructor
+expects the exception parameters. For example, the definition
+
+\verbatim
+module SALOMEDS{
+ interface StudyBuilder{
+ exception LockProtection {};
+ void CommitCommand() raises(LockProtection);
+ };
+};
+\endverbatim
+
+could be used caught as
+
+\verbatim
+from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+try:
+ my_StudyBuilder.CommitCommand();
+except StudyBuilder.LockProtection,value:
+ print "Error! Study is locked for modifications"
+\endverbatim
+
+
+\subsection subsection6 Mapping for Enumeration Types
+
+An enumeration is mapped into a number of constant objects in the name space where
+the enumeration is defined. An application may only test for equivalence of two
+enumeration values, and not assume that they behave like numbers.
+For example, the definition
+
+\verbatim
+module VISU {
+ interface PrsObject{
+
+ enum PrsObjType{ TCURVE, TTABLE, TMESH, TCONTAINER,
+ TSCALARMAP, TISOSURFACE, TDEFORMEDSHAPE,
+ TCUTPLANES, TVECTORS };
+ };
+};
+\endverbatim
+
+introduces the objects
+
+\verbatim
+from VISU import PrsObject
+VISU.PrsObjType.TCURVE,VISU.PrsObjType.TTABLE,VISU.PrsObjType.TMESH,VISU.PrsObjType.TCONTAINER,
+VISU.PrsObjType.TSCALARMAP,VISU.PrsObjType.TISOSURFACE,VISU.PrsObjType.TDEFORMEDSHAPE,VISU.PrsObjType.TCUTPLANES,
+VISU.PrsObjType.TVECTORS
+\endverbatim
+
+\subsection subsection7 Mapping for Structured Types
+
+An IDL struct definition is mapped into a Python class or type. For each field in the
+struct, there is a corresponding attribute in the class with the same name as the field.
+The constructor of the class expects the field values, from left to right.
+For example, the IDL definition
+
+\verbatim
+struct SDate {
+ short Second;
+ short Minute;
+ short Hour;
+ short Day;
+ short Month;
+ short Year;
+ };
+\endverbatim
+
+could be used in the Python statements
+
+\verbatim
+Date=SDate(30, 12, 15, 26, 1, 79)
+print Date.Second,Date.Minute,Date.Hour,Date.Day,Date.Month,Date.Year
+\endverbatim
+*/
+/*! \page page2 Mapping of SALOME IDL definitions to Python language.
+
+
+ - <B>%SALOME STUDY module</B>
+ - <A href=HTML/SALOMEDS.html>Mapping of %SALOMEDS functions</A>
+ - <A href=HTML/SALOMEDS_Attributes.html>Mapping of SALOMEDS_Attributes functions</A>
+ - <B>%SAlOME KERNEL module</B>
+ - <A href=HTML/Med_Gen.html>Mapping of %Med_Gen functions</A>
+ - <A href=HTML/SALOME_Session.html>Mapping of %SALOME_Session functions</A>
+ - <A href=HTML/SALOME_ModuleCatalog.html>Mapping of %SALOME_ModuleCatalog functions</A>
+ - <A href=HTML/SALOME_Exception.html>Mapping of %SALOME_Exception functions</A>
+ - <A href=HTML/SALOME_Component.html>Mapping of %SALOME_Component functions</A>
+ - <B>%SALOME MED component</B>
+ - <A href=HTML/MED.html>Mapping of %Med functions</A>
+ - <B>%SALOME SUPERVISION module</B>
+ - <A href=HTML/SUPERV.html>Mapping of %SUPERV functions</A>
+ - <B>%SALOME %VISU module</B>
+ - <A href=HTML/VISU_Gen.html>Mapping of %VISU_Gen functions</A>
+
+*/
+
+/*! \defgroup Study SALOME STUDY module
+*/
+
+/*!
+ \file SALOMEDS.idl This file contains a set of interfaces used for creation, managment
+ and modification of the %Study
+*/
+
+#ifndef _SALOMEDS_IDL_
+#define _SALOMEDS_IDL_
+
+#include "SALOME_Exception.idl"
+
+/*! \ingroup Study
+ This package contains the interfaces used for creation, managment
+ and modification of the %Study
+*/
+module SALOMEDS
+{
+/*! \typedef URL
+ Name of the file in which the %Study is saved.
+
+*/
+ typedef string URL;
+
+/*! Main identifier of an object in %SALOME application
+*/
+ typedef string ID;
+
+/*! While saving the data, IOR is transformed into persistent reference
+*/
+ typedef string PersistentReference;
+
+/*! IOR of the study in %SALOME application
+*/
+ typedef string SalomeReference;
+/*! List of names of open studies in a %SALOME session
+*/
+ typedef sequence<string> ListOfOpenStudies;
+/*! List of file names
+*/
+ typedef sequence<string> ListOfFileNames;
+/*! List of modification dates of the study
+*/
+ typedef sequence<string> ListOfDates ;
+/*! An unbounded sequence of strings
+*/
+ typedef sequence<string> ListOfStrings ;
+/*! A byte stream which is used for binary data transfer between components
+*/
+ typedef sequence<octet> TMPFile;
+
+ // Reference to other objects is treated with function AddReference
+ // and ReferencedObject
+ // All other type of attributes defined in AttributeType enum are
+ // treated with AddAdttribute and GetAttribute
+ // The difference is made because Reference attribute don't contain
+ // strings but reference to ID of other objects
+
+ interface GenericAttribute;
+ interface Study;
+ interface StudyManager;
+ interface StudyBuilder;
+ interface SObject;
+ interface SComponent;
+ interface SComponentIterator;
+ interface ChildIterator;
+ interface Driver;
+ interface AttributeStudyProperties;
+ interface UseCaseIterator;
+ interface UseCaseBuilder;
+ interface Callback;
+/*! List of attributes
+*/
+ typedef sequence<GenericAttribute> ListOfAttributes;
+/*! Exception indicating that this feature hasn't been implemented
+*/
+ exception NotImplemented {};
+
+
+ //===========================================================================
+ /*! \brief %Study Interface
+
+ The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
+ Most of the %Study operations are handled by the StudyManager and the StudyBuilder.
+ What is left in the %Study interface are elementary inquiries.
+ (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
+ and set methods.) A %Study is explored by a set of tools, mainly iterators
+ , which are described further. Nevertheless, the %Study
+ interface allows the search of an object by name or by ID.
+ \note
+ <BR><VAR>The Path </VAR>of an object in %SALOME application is much alike a standard path of a file.
+ In general it's a string of names of directories divided by a slash '/'.
+ <BR><VAR>The Context</VAR> is the current directory of an object.</P>
+*/
+
+ interface Study
+ {
+ exception StudyInvalidContext {};
+ exception StudyInvalidComponent {};
+/*! Invalid directory of the %study exception
+*/
+ exception StudyInvalidDirectory {};
+/*! Exception pointing that this name of the study has already been used.
+*/
+ exception StudyNameAlreadyUsed {};
+ exception StudyObjectAlreadyExists {};
+/*! Invalid name of the %study exception
+*/
+ exception StudyNameError {};
+ exception StudyCommentError {};
+/*! \brief The name of the %Study
+
+ This is equivalent to the methods setName() & getName()
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief The ID of the %Study
+
+ This is equivalent to the methods setID() & getID()
+*/
+ attribute short StudyId;
+/*! Sequence containing %SObjects
+*/
+ typedef sequence<SObject> ListOfSObject;
+/*!
+ Gets a persistent reference to the %Study.
+*/
+ PersistentReference GetPersistentReference();
+/*!
+ Gets a transient reference to the %Study.
+*/
+ SalomeReference GetTransientReference();
+
+/*!
+ Returns True if the %Study is empty
+*/
+ boolean IsEmpty();
+/*!
+ Allows to find a %SComponent by its name.
+ \param aComponentName It's a string value in the Comment Attribute of the Component,
+ which is looked for, defining the data type of this Component.
+
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ SComponent FindComponent (in string aComponentName);
+/*!
+ Allows to find a %SComponent by ID of the according %SObject
+*/
+ SComponent FindComponentID(in ID aComponentID);
+/*!
+ Allows to find a %SObject by the Name Attribute of this %SObject
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SObject FindObject (in string anObjectName);
+/*!
+ Allows to find a %SObject by its ID
+*/
+ SObject FindObjectID (in ID aObjectID);
+/*!
+ Allows to find a %SObject by IOR of the object belonging to this %SObject.
+*/
+ SObject FindObjectIOR (in ID aObjectIOR);
+/*!
+ Returns a list of %SObjects belonging to this %Component. The Name Attribute
+ of these %SObjects should correspond to <VAR>anObjectName</VAR>.
+*/
+ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName);
+/*!
+ Allows to find a %SObject by the path to it.
+*/
+ SObject FindObjectByPath(in string thePath);
+/*!
+ Returns the path to the %SObject.
+*/
+ string GetObjectPath(in Object theObject);
+
+/*!
+ Sets the context of the %Study.
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetContext(in string thePath);
+/*!
+ Gets the context of the %Study
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ string GetContext();
+/*!
+ Returns a list of names of objects corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetObjectNames(in string theContext);
+/*!
+ Returns a list of names of directories and subdirectories corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetDirectoryNames(in string theContext);
+/*!
+ Returns a list of names of Files corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetFileNames(in string theContext);
+/*!
+ Returns a list of names of Components corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetComponentNames(in string theContext);
+/*! \brief Creation of a new iterator of child levels
+
+ Creates a new iterator of child levels of the %SObject
+*/
+ ChildIterator NewChildIterator(in SObject aSO);
+/*! \brief Creation of a new iterator of the %SComponent
+
+ Creates a new iterator of the %SComponent.
+*/
+ SComponentIterator NewComponentIterator();
+/*! \brief Creation of a %StudyBuilder
+
+ Creates a new %StudyBuilder to add or modify an object in the study.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ StudyBuilder NewBuilder() ;
+/*! \brief Labels dependency
+
+ Updates the map with IOR attribute. It's an inner method used for optimization.
+*/
+ void UpdateIORLabelMap(in string anIOR, in string anEntry);
+
+/*! \brief Getting properties of the study
+
+ Returns the attriubte, which contains the properties of this study.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ AttributeStudyProperties GetProperties();
+/*!
+ Determines whether the %study has been saved
+*/
+ attribute boolean IsSaved;
+/*!
+ Returns True if the %study has been modified and not saved.
+*/
+ boolean IsModified();
+/*!
+ Determines the file where the %study has been saved
+*/
+ attribute string URL;
+
+/*! \brief List of %SObjects
+
+ Returns the list of %SObjects which refers to %anObject.
+*/
+ ListOfSObject FindDependances(in SObject anObject);
+
+/*! \brief The date of the last saving of the study
+
+ Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
+*/
+ string GetLastModificationDate();
+/*! \brief The list of modification dates of the study
+
+ Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
+ Note : the first modification begins the list.
+*/
+ ListOfDates GetModificationsDate();
+/*! \brief Object conversion.
+
+ Converts an object into IOR.
+ \return IOR
+*/
+ string ConvertObjectToIOR(in Object theObject);
+/*! \brief Object conversion.
+
+ Converts IOR into an object.
+ \return An object
+*/
+ Object ConvertIORToObject(in string theIOR);
+/*!
+ Gets a new %UseCaseBuilder.
+*/
+ UseCaseBuilder GetUseCaseBuilder();
+
+/*!
+ Closes the components in the study, removes itself from the %StudyManager.
+*/
+ void Close();
+
+/*!
+ Enables(if isEnabled = True)/disables automatic addition of new %SObjects to the use case.
+*/
+ void EnableUseCaseAutoFilling(in boolean isEnabled);
+ };
+
+ //==========================================================================
+/*! \brief %Study Builder Interface
+
+ The purpose of the Builder is to add and/or remove objects and attributes.
+ A %StudyBuilder is linked to a %Study. A
+ command management is provided for the undo/redo functionalities.
+ \note
+ <BR><VAR>The Tag</VAR> of an item in %SALOME application is a symbolic description of
+ item's position in the tree-type structure of the browser. In general it has the following
+ form: <TT>0:2:1:1</TT>
+*/
+ //==========================================================================
+
+ interface StudyBuilder
+ {
+/*! \brief %LockProtection Exception
+
+ This exception is raised while attempting to modify a locked %study.
+*/
+ exception LockProtection {};
+/*! \brief Creation of a new %SComponent.
+
+ Creates a new %SComponent
+ \param ComponentDataType Data type of the %SComponent which will be created.
+
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SComponent NewComponent(in string ComponentDataType);
+/*! \brief Definition of the instance to the %SComponent
+
+ Defines the instance to the %SComponent.
+*/
+ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR);
+/*! \brief Deletion of the %SComponent
+
+ Removes the %SComponent.
+*/
+ void RemoveComponent(in SComponent aComponent);
+
+/*! \brief Creation of a new %SObject
+
+ Creates a new %SObject.
+<BR><VAR>See also <A href=exemple/Example18.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SObject NewObject (in SObject theFatherObject);
+/*! \brief Creation of a new %SObject with a definite %tag
+
+ Creates a new %SObject with a definite %tag.
+*/
+ SObject NewObjectToTag (in SObject theFatherObject, in long atag);
+/*! \brief Deletion of the %SObject
+
+ Removes a %SObject from the %StudyBuilder.
+*/
+ void RemoveObject (in SObject anObject);
+/*! \brief Deletion of the %SObject with all his child objects.
+
+ Removes the %SObject with all his child objects.
+*/
+ void RemoveObjectWithChildren(in SObject anObject);
+
+/*!
+ Loads a %SComponent.
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
+/*!
+ Loads a %SObject.
+*/
+ void Load (in SObject sco);
+
+/*! \brief Looking for or creating an attribute assigned to the %SObject
+
+ Allows to find or create an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+
+ GenericAttribute FindOrCreateAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+
+/*! \brief Looking for an attribute assigned to %SObject
+
+ Allows to find an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+ \param anAttribute Where the attribute is placed if it's found.
+ \return True if it finds an attribute.
+ */
+
+ boolean FindAttribute(in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*! \brief Deleting the attribute assigned to the %SObject
+
+ Removes the attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute.
+ \param aTypeOfAttribute Type of the attribute.
+
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void RemoveAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+/*! \brief Addition of a reference
+
+ Adds a reference between %anObject and %theReferencedObject.
+*/
+
+ void Addreference(in SObject anObject,
+ in SObject theReferencedObject) ;
+/*!
+ Adds a directory in the %Study.
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void AddDirectory(in string theName);
+
+/*! \brief Identification of the %SObject's substructure.
+
+ Identification of the %SObject's substructure by GUID.
+ It has the following format "00000000-0000-0000-0000-000000000000"
+*/
+
+ void SetGUID(in SObject anObject, in string theGUID);
+/*!
+
+ Returns True if the %SObject has GUID.
+*/
+ boolean IsGUID(in SObject anObject, in string theGUID);
+
+/*! \brief Creation of a new command
+
+ Creates a new command which can contain several different actions.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void NewCommand(); // command management
+/*! \brief Execution of the command
+
+ Commits all actions declared within this command.
+<BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void CommitCommand() raises(LockProtection); // command management
+/*!
+ Returns True if at this moment there is a command under execution.
+*/
+ boolean HasOpenCommand();
+/*! \brief Cancelation of the command
+
+ Cancels all actions declared within the command.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void AbortCommand(); // command management
+/*! \brief Undolimit
+
+ The number of actions which can be undone
+*/
+ attribute long UndoLimit;
+/*! \brief Undo method
+
+ Cancels all actions of the last command.
+<BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Undo() raises (LockProtection);
+/*! \brief Redo method
+
+ Redoes all actions of the last command.
+ <BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Redo() raises (LockProtection);
+/*!
+ Returns True if at this moment there are any actions which can be canceled.
+ <BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean GetAvailableUndos();
+/*!
+ Returns True if at this moment there are any actions which can be redone.
+ <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean GetAvailableRedos();
+/*!
+ Sets the callback for addition of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnAddSObject(in Callback theCallback);
+/*!
+ Sets the callback for removal of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnRemoveSObject(in Callback theCallback);
+
+ };
+
+ //==========================================================================
+/*! \brief %Study Manager interface
+
+ The purpose of the Manager is to manipulate the %Studies. You will find in this
+ interface the methods to create, open,
+ close, and save a %Study. Since a %SALOME session is multi-document, you will
+ also find the methods allowing to navigate
+ through the collection of studies present in a session.
+*/
+ //==========================================================================
+
+ interface StudyManager
+ {
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+
+/*! \brief Creation of a new %Study
+
+ Creates a new %Study with a definite name.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Study NewStudy(in string study_name);
+
+/*! \brief Open a study
+
+ Reads and activates the structure of the study %Objects.
+ \warning This method doesn't activate the corba objects. Only a component can do it.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception);
+
+/*! \brief Closing the study
+
+ Closes the study.
+*/
+ void Close(in Study aStudy);
+/*! \brief Saving the study
+
+ Saves the study.
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Save(in Study aStudy, in boolean theMultiFile);
+
+ void SaveASCII(in Study aStudy, in boolean theMultiFile);
+/*! \brief Saving the study in a file
+
+ Saves the study in a specified file.
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SaveAs(in URL aUrl, // if the file already exists
+ in Study aStudy,
+ in boolean theMultiFile); // overwrite (as option)
+
+ void SaveAsASCII(in URL aUrl, // if the file already exists
+ in Study aStudy,
+ in boolean theMultiFile); // overwrite (as option)
+
+
+/*! \brief List of open studies.
+
+ Returns the list of open studies in the current session.
+*/
+ ListOfOpenStudies GetOpenStudies();
+
+/*! \brief Getting a particular %Study picked by name
+
+ Activates a particular %Study
+ amongst the session collection picking it by name.
+*/
+ Study GetStudyByName (in string aStudyName);
+
+/*! \brief Getting a particular %Study picked by ID
+
+ Activates a particular %Study
+ amongst the session collection picking it by ID.
+*/
+ Study GetStudyByID (in short aStudyID);
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+/*!
+ Returns True, if the given %SObject is copied to the clipboard.
+*/
+ boolean Copy(in SObject theObject);
+/*!
+ Returns True, if the object from the clipboard can be pasted to the given %SObject.
+*/
+ boolean CanPaste(in SObject theObject);
+/*!
+ Returns the %SObject in which the object from the clipboard was pasted to.
+*/
+ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
+ };
+
+
+ //==========================================================================
+/*! \brief %SObject interface
+
+ The objects in the %study are built by the %StudyBuilder. The %SObject interface
+ provides methods for elementary inquiries, like getting an object %ID or its attribuites.
+ \note
+ <BR><VAR>Tag</VAR> of an item in %SALOME application is an integer value uniquely defining an item
+ in the tree-type data structure.
+ <BR><VAR>ID</VAR> of an item is a description of item's position in the tree-type data structure.
+ ID is a list of tags and it has the following form: <TT>0:2:1:1</TT>.
+*/
+ //==========================================================================
+
+ interface SObject
+ {
+/*! Name of the %SObject
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief Getting an object %ID
+
+ Returns ID of the %SObject.
+*/
+ ID GetID();
+/*! \brief Acquisition of the father %Component of the %SObject
+
+ Returns the father %Component of the %SObject.
+*/
+ SComponent GetFatherComponent();
+/*! \brief Acquisition of the father %SObject of the %SObject
+
+ Returns the father %SObject of the given %SObject.
+*/
+ SObject GetFather();
+/*! \brief %Tag of %SObject
+
+ Returns the %tag of the %SObject.
+*/
+ short Tag();
+/*! \brief Looking for subobjects of an object.
+
+ Returns True if it finds a subobject of the %SObject with a definite tag.
+*/
+
+ boolean FindSubObject (in long atag, out SObject obj);
+/*! \brief Looking for attributes of the %SObject
+
+ Returns True if it finds an attribute of a definite type of the %SObject.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ boolean FindAttribute(out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*!
+ Returns the object which this %SObject refers to. It also returns True if it finds
+ this object.
+*/
+ boolean ReferencedObject(out SObject obj); // A REVOIR
+/*! \brief Getting all attributes of the %SObject
+
+ Returns the list of all attributes of the %SObject.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ ListOfAttributes GetAllAttributes();
+/*! \brief Returning the study
+
+ Returns the study containing the given %SObject.
+*/
+ Study GetStudy();
+ };
+
+
+ //==========================================================================
+/*! \brief %Generic attribute interface
+
+ %Generic attribute is a base interface for all attributes which inherit
+ its methods.
+*/
+ //==========================================================================
+ interface GenericAttribute
+ {
+/*! \brief Exception locking all changes
+
+ This exception locks all modifications in attributes.
+*/
+ exception LockProtection {};
+/*! \brief Method CheckLocked
+
+ Checks whether the %Study is protected for modifications.
+ \note <BR>This exception is raised only outside the transaction.
+*/
+ void CheckLocked() raises (LockProtection);
+ };
+
+
+
+ //==========================================================================
+/*! \brief %SComponent interface
+
+ The %SComponent interface is a specialization of the %SObject interface.
+ It inherits the most of its methods from the %SObject interface.
+*/
+ //==========================================================================
+ interface SComponent : SObject
+ {
+/*! \brief Data type of the %SComponent
+
+ Returns the data type of the %SComponent.
+*/
+ string ComponentDataType();
+/*!
+ Returns IOR of the according component.
+*/
+ boolean ComponentIOR (out ID theID); //returns True if there is an instance
+ //In this case ID identifies this one
+ };
+
+
+ //==========================================================================
+/*! \brief %SComponentIterator interface
+
+ This interface contains the methods allowing to iterate over all components in the list.
+ The search is started from the first %SComponent in the list.
+*/
+ //==========================================================================
+ interface SComponentIterator
+ {
+/*! \brief Initialization of the Iterator
+
+Activates the %SComponentIterator.
+*/
+ void Init();
+/*! \brief Method More
+
+ Returns True if there is one more %SComponent in the list.
+*/
+ boolean More();
+/*! \brief Moving the iterator to the next %SComponent
+
+Moves the iterator to the next %SComponent in the list.
+*/
+ void Next();
+/*!
+ Returns the %SComponent corresponding to the current %SComponent found by the iterator.
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SComponent Value();
+ };
+
+ //==========================================================================
+/*! \brief %ChildIterator interface
+
+ This interface contains methods which allow to iterate over all child
+ levels.
+*/
+ //==========================================================================
+ interface ChildIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %ChildIterator.
+*/
+ void Init();
+/*! \brief Initialization of the Iterator for all child levels.
+
+Activates the %ChildIterator (if True) for all child levels.
+*/
+ void InitEx(in boolean allLevels);
+/*! \brief Method More
+
+ Returns True if the %ChildIterator finds one more child level.
+*/
+ boolean More();
+/*!
+ Passes the iterator to the next level.
+*/
+ void Next();
+/*!
+ Returns the %SObject corresponding to the current object found by the iterator.
+*/
+ SObject Value();
+ };
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseIterator.
+
+ This interface contains a set of methods used for iteration over the objects in the use case.
+*/
+ interface UseCaseIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %UseCaseIterator. If <VAR>allLevels</VAR> is True the Iterator is activated for all subobjects.
+*/
+ void Init(in boolean allLevels);
+/*! \brief Method More
+
+ Returns True if the %UseCaseIterator finds one more object.
+*/
+ boolean More();
+/*!
+ Passes the iterator to the next object.
+*/
+ void Next();
+/*!
+ Returns the %SObject corresponding to the current object found by the Iterator.
+*/
+ SObject Value();
+ };
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseBuilder
+
+ Use case in the study represents a user-managed subtree, containing all or some of the objects which exist in the study.
+ The %UseCaseBuilder interface contains a set of methods used for management of the use case in the study.
+*/
+ interface UseCaseBuilder
+ {
+/*!
+ Adds to the use case an object <VAR>theObject</VAR> as a child of the current object of the use case.
+*/
+ boolean Append(in SObject theObject);
+/*!
+ Removes an object <VAR>theObject</VAR> from the use case.
+*/
+ boolean Remove(in SObject theObject);
+/*!
+ Adds a child object <VAR>theObject</VAR> to the given father <VAR>theFather</VAR> object in the use case.
+*/
+ boolean AppendTo(in SObject theFather, in SObject theObject);
+/*!
+ Inserts in the use case the object <VAR>theFirst</VAR> before the object <VAR>theNext</VAR>.
+*/
+ boolean InsertBefore(in SObject theFirst, in SObject theNext);
+/*!
+ Sets the current object of the use case.
+*/
+ boolean SetCurrentObject(in SObject theObject);
+/*!
+ Makes the root object to be the current object of the use case.
+*/
+ boolean SetRootCurrent();
+/*!
+ Returns True if the given object <VAR>theObject</VAR> of the use case has child objects.
+*/
+ boolean HasChildren(in SObject theObject);
+/*!
+ Sets the name of the use case.
+*/
+ boolean SetName(in string theName);
+/*!
+ Gets the name of the use case.
+*/
+ string GetName();
+/*!
+ Returns True if the given object <VAR>theObject</VAR> represents a use case.
+*/
+ boolean IsUseCase(in SObject theObject);
+/*!
+ Gets the current object of the use case.
+*/
+ SObject GetCurrentObject();
+/*!
+ Creates a new use case in the use case browser.
+*/
+ SObject AddUseCase(in string theName);
+/*!
+ Returns the %UseCaseIterator for the given object <VAR>theObject</VAR> in the use case.
+*/
+ UseCaseIterator GetUseCaseIterator(in SObject theObject);
+ };
+ //==========================================================================
+ //==========================================================================
+/*! \brief The callback interface
+
+ The %StudyBuilder can be created with the method <VAR>NewBuilder</VAR>. While invocation of this method a new object of the class <VAR>Callback</VAR> is created
+ and this object is assigned to the newly created Builder as callback which should be called when adding and removing of the ojects.
+*/
+ interface Callback
+ {
+/*!
+ Invokes the corresponding method <VAR>Append</VAR> of the %UseCaseBuilder.
+*/
+ void OnAddSObject(in SObject theObject);
+/*!
+ Invokes the corresponding method <VAR>Remove</VAR> of the %UseCaseBuilder.
+*/
+ void OnRemoveSObject(in SObject theObject);
+ };
+
+ //==========================================================================
+/*! \brief %Driver interface
+
+ This interface contains a set of methods used for the management
+ of the object produced in the %study by a component.
+*/
+ //==========================================================================
+ interface Driver
+ {
+
+ /*! \brief Saving the data.
+
+ This method is called by the StudyManager when saving a study.
+ \param theComponent %SComponent corresponding to this Component
+ \return A byte stream TMPFile that contains all saved data
+
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+ */
+
+
+ TMPFile Save(in SComponent theComponent, in string theURL, in boolean isMultiFile);
+
+ TMPFile SaveASCII(in SComponent theComponent, in string theURL, in boolean isMultiFile);
+
+ /*! \brief Loading the data.
+
+ This method is called by the StudyManager when opening a study.
+ \param theComponent %SComponent corresponding to this Component
+ \param theStream The file which contains all data saved by the component on Save method
+ */
+
+ boolean Load(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile);
+
+ boolean LoadASCII(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile);
+
+ /*! \brief Closing of the study
+
+ This method Close is called by the StudyManager when closing a study.
+
+ */
+
+ void Close (in SComponent aSComponent);
+ //void Close ( in string aIORSComponent);
+
+ /*! \brief The type of the data
+
+ Returns the type of data produced by the Component in the study.
+ */
+
+ string ComponentDataType();
+
+ // Driver Transient -> persistent called for each object in study
+/*!
+ Transforms IOR into PersistentID of the object. It is called for each
+ object in the %study.
+*/
+ string IORToLocalPersistentID (in SObject theSObject,
+ in string IORString,
+ in boolean isMultiFile,
+ in boolean isASCII);
+/*!
+ Transforms PersistentID into IOR of the object. It is called for each
+ object in the %study.
+*/
+ string LocalPersistentIDToIOR (in SObject theSObject,
+ in string aLocalPersistentID,
+ in boolean isMultiFile,
+ in boolean isASCII)
+ raises (SALOME::SALOME_Exception);
+
+ // Publishing in the study
+/*! \brief Publishing in the study
+
+ Returns True if the given %Component can publish the %object in the %study.
+*/
+ boolean CanPublishInStudy(in Object theIOR) raises (SALOME::SALOME_Exception);
+/*! \brief Publishing in the study
+
+ Publishes the given object in the %study, using the algorithm of this component.
+ \param theStudy The %study in which the object is published
+ \param theSObject If this parameter is null the object is published for the first time. Otherwise
+ this parameter should contain a reference to the object published earlier
+ \param theObject The object which is published
+ \param theName The name of the published object. If this parameter is empty, the name is generated
+ automatically by the component.
+*/
+ SObject PublishInStudy(in Study theStudy, in SObject theSObject, in Object theObject, in string theName);
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+/*!
+ Returns the object %ID and the %TMPFile of the object from the given %SObject.
+*/
+ TMPFile CopyFrom(in SObject theObject, out long theObjectID);
+/*!
+ Returns True, if the component can paste the object with given %ID of the component with name <VAR>theComponentName</VAR>.
+*/
+ boolean CanPaste(in string theComponentName, in long theObjectID);
+/*!
+ Returns the %SObject of the pasted object.
+*/
+ SObject PasteInto(in TMPFile theStream, in long theObjectID, in SObject theObject);
+
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOMEDS.idl
+// Author : Yves FRICAUD
+// $Header$
+
+/*! \file SALOMEDS_Attributes.idl This file contains a set of interfaces
+ for the attributes which can be assigned to %SObject
+*/
+#ifndef _SALOMEDS_AttributesIDL_
+#define _SALOMEDS_AttributesIDL_
+
+#include "SALOMEDS.idl"
+
+module SALOMEDS
+{
+/*! Sequence of double values
+*/
+ typedef sequence <double> DoubleSeq;
+/*! Sequence of long values
+*/
+ typedef sequence <long> LongSeq;
+/*! Sequence of string values
+*/
+ typedef sequence <string> StringSeq;
+/*! \struct Color
+ This structure stores a set of elements defining the color based on RGB.
+*/
+ struct Color {
+/*! Red color
+*/
+ double R;
+/*! Green color
+*/
+ double G;
+/*! Blue color
+*/
+ double B;
+ };
+ //==========================================================================
+/*! \brief Attribute allowing to store a real value
+
+ Attribute allowing to store a real value
+*/
+ //==========================================================================
+ interface AttributeReal : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ double Value();
+/*!
+ Sets the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in double value);
+ };
+ //==========================================================================
+/*! \brief Attribute allowing to store an integer value
+
+ Attribute allowing to store an integer value
+*/
+ //==========================================================================
+ interface AttributeInteger : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in long value);
+ };
+ //==========================================================================
+/*! \brief Attribute - sequence of real values
+
+ Attribute - sequence of real values, indexing from 1 (like in CASCADE).
+*/
+ //==========================================================================
+ interface AttributeSequenceOfReal : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of real numbers.
+*/
+ void Assign (in DoubleSeq other);
+/*!
+ Returns the sequence of real numbers stored in the attribute.
+*/
+ DoubleSeq CorbaSequence();
+/*!
+ Adds to the end of the sequence a real number.
+ \param value A real number added to the sequence.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void Add (in double value);
+/*!
+ Removes a real number with a definite index
+ from the sequence of real numbers stored in the Attribute.
+*/
+ void Remove(in long index);
+/*!
+ Substitutes a real number with a definite index for another real number.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void ChangeValue(in long index, in double value);
+/*!
+ Returns a real number with a definite index
+ in the sequence of real numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ double Value(in short index);
+/*!
+ Returns the length of the sequence of real numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ long Length();
+ };
+ //==========================================================================
+/*! \brief Attribute - sequence of integer
+
+ Attribute - sequence of integer, indexing from 1 (like in CASCADE)
+*/
+ //==========================================================================
+ interface AttributeSequenceOfInteger : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of integer numbers.
+*/
+ void Assign (in LongSeq other);
+/*!
+ Returns the sequence of integer numbers stored in the Attribute.
+*/
+ LongSeq CorbaSequence();
+/*!
+ Adds to the end of the sequence an integer number.
+ \param value An integer number added to the sequence.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Add (in long value);
+/*!
+ Removes an integer number with a definite index
+ from the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove(in long index);
+/*!
+ Substitutes an integer number with a definite index for another integer number.
+*/
+ void ChangeValue(in long index, in long value);
+/*!
+ Returns an integer number with a definite index
+ in the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value(in short index);
+/*!
+ Returns the length of the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ long Length();
+ };
+
+ //==========================================================================
+/*! \brief Name attribute
+
+ This attribute stores a string value, which corresponds to the name of the %SObject
+ or to the name of corresponding object.
+*/
+ //==========================================================================
+
+ interface AttributeName : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief Comment attribute
+
+ This attribute stores a string value containing supplementary information about
+ the %SObject. In particular it contains the data type of the %SComponent.
+*/
+ //==========================================================================
+ interface AttributeComment : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+ //==========================================================================
+/*! \brief IOR attribute
+
+ This attribute stores a string value identifying a runtime object.In particular
+ it contains CORBA Interoperable Object Reference.
+*/
+ //==========================================================================
+ interface AttributeIOR : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief Persistent reference attribute
+
+ This attribute stores a persistent identifier of the object.
+*/
+ //==========================================================================
+ interface AttributePersistentRef : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+ //Below the list of presentation attributes for display study tree in browser
+ //==========================================================================
+
+
+ //==========================================================================
+/*! \brief Drawable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item associated to SObject is created/displayed if TRUE.
+*/
+ //==========================================================================
+ interface AttributeDrawable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsDrawable();
+/*!
+Sets the items to be drawable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
+<BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetDrawable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Selectable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item is selectable by %SALOME selection mechanism if TRUE.
+*/
+ //==========================================================================
+ interface AttributeSelectable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsSelectable();
+/*!
+Sets the items to be selectable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
+<BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetSelectable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Expandable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be expandable even if it has no children if value is TRUE. If value is FALSE
+ expandable only if it has children.
+*/
+ //==========================================================================
+ interface AttributeExpandable : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is expandable even when it has no children.
+<BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsExpandable();
+/*!
+ Sets this item to be expandable even if it has no children if <VAR>value</VAR> is TRUE, and to be
+ expandable only if it has children if <VAR>value</VAR> is FALSE (the default).
+<BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetExpandable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Opened flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children
+ are not visible) if bool is FALSE.
+*/
+ //==========================================================================
+ interface AttributeOpened : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsOpened();
+/*!
+ Sets this item to be open (its children are visible) if <VAR>value</VAR> is TRUE, and to be closed
+(its children are not visible) if <VAR>value</VAR> is FALSE.
+<BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetOpened(in boolean value);
+ };
+ //==========================================================================
+/*! \brief TextColorAttribute.
+
+ This attribute sets the color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextColor : GenericAttribute
+ {
+/*!
+ Returns the color of an item.
+<BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Color TextColor();
+/*!
+ Sets the color of an item.
+<BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetTextColor(in Color value);
+ };
+
+ //==========================================================================
+ /*! \brief TextHighlightColorAttribute.
+
+ This attribute sets the highlight color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextHighlightColor : GenericAttribute
+ {
+/*!
+ Returns the highlight color of an item.
+<BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Color TextHighlightColor();
+/*!
+ Sets the highlight color of an item.
+<BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetTextHighlightColor(in Color value);
+ };
+ //==========================================================================
+/*! \brief PixMapAttribute.
+
+ This attribute stores an icon which is put before the name of an item.
+*/
+ //==========================================================================
+ interface AttributePixMap : GenericAttribute
+ {
+/*!
+ Returns True if there is an icon before the name of the item.
+*/
+ boolean HasPixMap();
+/*!
+ Returns the name of the icon.
+<BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ string GetPixMap();
+/*!
+ Sets the name of the icon.
+<BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetPixMap(in string value);
+ };
+
+ //==========================================================================
+/*! \brief TreeNodeAttribute.
+
+ A set of these attributes on the %SObjects of the %study forms an inner auxiliary
+ tree whith its own structure and identifier. The quantity of such trees with different
+ identifiers can be arbitrary.
+<BR><VAR>See also <A href=exemple/Example18.html> an example </A> of usage of the methods of this interface in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+ interface AttributeTreeNode : GenericAttribute
+ {
+/*!
+ Sets the father TreeNode to this TreeNode.
+*/
+ void SetFather(in AttributeTreeNode value);
+/*!
+ Returns True if there is the father TreeNode of this TreeNode.
+*/
+ boolean HasFather();
+/*!
+ Returns the father Treenode of this TreeNode.
+*/
+ AttributeTreeNode GetFather();
+/*!
+ Sets the previous brother TreeNode to this treeNode.
+*/
+ void SetPrevious(in AttributeTreeNode value);
+/*!
+ Returns True if there is the previous brother TreeNode of this TreeNode.
+*/
+ boolean HasPrevious();
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetPrevious();
+/*!
+ Sets the next brother TreeNode to this treeNode.
+*/
+ void SetNext(in AttributeTreeNode value);
+/*!
+ Returns True if there is the next brother TreeNode of this TreeNode.
+*/
+ boolean HasNext();
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetNext();
+/*!
+ Sets the first child TreeNode to this treeNode.
+*/
+ void SetFirst(in AttributeTreeNode value);
+/*!
+ Returns True if there is the first child TreeNode of this TreeNode.
+*/
+ boolean HasFirst();
+/*!
+ Returns the first child TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetFirst();
+/*!
+ Sets ID of the tree. TreeNodes of one tree have the same ID.
+*/
+ void SetTreeID(in string value);
+/*!
+ Gets ID of the tree.
+*/
+ string GetTreeID();
+
+/*!
+ Adds a child TreeNode to the end of the list of children of this Treenode.
+*/
+ void Append(in AttributeTreeNode value);
+/*!
+ Adds a child TreeNode to the beginning of the list of children of this Treenode.
+
+*/
+ void Prepend(in AttributeTreeNode value);
+/*!
+ Adds a brother TreeNode before this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertBefore(in AttributeTreeNode value);
+/*!
+ Adds a brother TreeNode after this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertAfter(in AttributeTreeNode value);
+/*!
+ Deletes a TreeNode.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove();
+
+/*!
+ Returns the depth of the TreeNode in the
+ structure, it means the number of fathers of the given TreeNode.
+ (i.e.: the depth of the root TreeNode is 0).
+*/
+ long Depth();
+/*!
+ Returns True if it is a root TreeNode.
+*/
+ boolean IsRoot();
+/*!
+ Returns True if this TreeNode is a descendant of the TreeNode.
+*/
+ boolean IsDescendant(in AttributeTreeNode value);
+/*!
+ Returns True if this TreeNode is the father of the TreeNode.
+*/
+ boolean IsFather(in AttributeTreeNode value);
+/*!
+ Returns True if this TreeNode is a child of the TreeNode.
+*/
+ boolean IsChild(in AttributeTreeNode value);
+/*!
+ Returns ID of the according %SObject.
+*/
+ string Label();
+ };
+ //==========================================================================
+/*! \brief LocalID attribute
+
+ Attribute describing the link between a %SObject and a local object in the component.
+*/
+ //==========================================================================
+ interface AttributeLocalID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value();
+/*!
+ Sets the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in long value);
+ };
+
+ //==========================================================================
+/*! \brief Attribute storing GUID
+
+ Attribute allowing to store GUID
+*/
+ //==========================================================================
+ interface AttributeUserID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief %AttributeTarget iterface
+
+ This attribute stores the list of all %SObjects that refer
+ to this %SObject. This attribute is used for inner purposes of the application.
+ It is also needed for optimization.
+*/
+ //==========================================================================
+
+ interface AttributeTarget : GenericAttribute
+ {
+/*!
+ Adds a %SObject to the list of %SObjects which refer to this %SObject.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Add(in SObject anObject);
+/*!
+ Returns the list of %SObjects which refer to this %SObject.
+*/
+ SALOMEDS::Study::ListOfSObject Get();
+/*!
+ Deletes a %SObject from the list of %SObjects which refer to this %SObject.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove(in SObject anObject);
+ };
+ //==========================================================================
+ /*! \brief %AttributeTableOfInteger interface
+
+ This attribute allows to store a table of integers (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfInteger : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in LongSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ LongSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in LongSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ LongSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in long theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ long GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+ //==========================================================================
+/*! \brief %AttributeTableOfReal interface
+
+ This attribute allows to store a table of reals (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfReal : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in DoubleSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ DoubleSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in DoubleSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ DoubleSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in double theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ double GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+
+
+ //==========================================================================
+/*! \brief %AttributeTableOfString interface
+
+ This attribute allows to store a table of strings (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfString : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in StringSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ StringSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in StringSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ StringSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in string theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ string GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+
+ //==========================================================================
+/*! \brief %AttributeStudyProperties interface
+
+ This attribute allows to store study properties: user name, creation date, creation
+ mode, modified flag, locked flag.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeStudyProperties : GenericAttribute
+ {
+/*!
+ Sets the name of the author of the %Study
+*/
+ void SetUserName(in string theName);
+/*!
+ Returns the name of the user of the %Study.
+ \note <BR>It returns a null string, if user name is not set
+*/
+ string GetUserName();
+/*!
+ Sets creation date of the %Study.
+*/
+ void SetCreationDate(in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+/*!
+ Returns creation date of the %Study and True if creation date is set.
+*/
+ boolean GetCreationDate(out long theMinute, out long theHour, out long theDay, out long theMonth, out long theYear);
+/*!
+ Sets creation mode of the %Study.
+ \note <BR>Creation mode must be: "from scratch" or "copy from".
+*/
+ void SetCreationMode(in string theMode);
+/*!
+ Returns creation mode: "from scratch", "copy from", or null string
+ if creation mode is not set
+*/
+ string GetCreationMode();
+/*!
+ Sets the number of transactions executed after the last saving of the document.
+*/
+ void SetModified(in long theModified);
+/*!
+ Returns True, if the document has been modified and not saved.
+*/
+ boolean IsModified();
+/*!
+ Returns the number of transactions executed after the last saving of the document.
+*/
+ long GetModified();
+/*!
+ Sets the document locked for modifications if <VAR>theLocked</VAR> is True.
+*/
+ void SetLocked(in boolean theLocked);
+/*!
+ Returns True if the document is locked for modifications.
+*/
+ boolean IsLocked();
+/*!
+ Appends modification parameters to the modifications list.
+*/
+ void SetModification(in string theName, in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+/*!
+ Returns a list of mosdifiers user names, modification dates.
+ /note <BR>If <VAR>theWithCreator</VAR> is True, then the output list will also contain the name of the author and the date of creation.
+*/
+ void GetModificationsList(out StringSeq theNames, out LongSeq theMinutes, out LongSeq theHours, out LongSeq theDays, out LongSeq theMonths, out LongSeq theYears, in boolean theWithCreator);
+ };
+ //==========================================================================
+/*! \brief %AttributePythonObject interface
+
+ Attribute allowing to store pyton objects as a sequence of chars.
+*/
+ //==========================================================================
+
+ interface AttributePythonObject : GenericAttribute
+ {
+/*!
+ Sets in the attribute a Python object converted into a sequence of chars.
+ \param theSequence A sequence of chars.
+ \param IsScript Defines (if True) whether this sequence of chars is a Python script.
+*/
+ void SetObject(in string theSequence, in boolean IsScript);
+/*!
+ Returns a Python object stored in the attribute as a sequence of chars.
+*/
+ string GetObject();
+/*!
+ Returns True if the sequence of bytes stored in the attribute corresponds
+ to a Python script.
+*/
+ boolean IsScript();
+ };
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Component.idl
+// Author : Paul RASCLE, EDF
+// $Header: /dn05/salome/CVS/SALOME_ROOT/idl/SALOME_Component.idl
+
+#ifndef _SALOME_COMPONENT_IDL_
+#define _SALOME_COMPONENT_IDL_
+/*! \ingroup Kernel
+
+This is a package of interfaces used for connecting new components to %SALOME application. It also contains a set of interfaces used
+for management of %MED component in %SALOME application.
+*/
+module Engines
+{
+ interface Component ;
+
+/*! \brief Interface of the %Container
+
+ This interface defines the process of loading and registration
+ of new components in SALOME application
+*/
+ interface Container
+ {
+/*!
+ Initializes the %container with a definite name.
+*/
+ Container start_impl( in string ContainerName ) ;
+
+/*!
+ Loads into the container a new component, registers it and starts it's CORBA servant.
+ \param nameToRegister Name of the component which will be registered in Registry (or Name Service)
+ \param componentName Name of the constructed library of the %component
+*/
+ Component load_impl(in string nameToRegister, in string componentName);
+
+/*!
+ Stops the component servant, and deletes all related objects
+*/
+ void remove_impl(in Component component_i);
+
+/*!
+ Discharges all components from the container.
+*/
+ void finalize_removal() ;
+/*!
+ Determines whether the server has been loaded or not.
+*/
+
+ void ping();
+/*!
+ Name of the %container
+*/
+ readonly attribute string name ;
+/*!
+ Name of the machine containing this container (location of the container).
+*/
+ readonly attribute string machineName ;
+/*!
+ Returns True if the %container has been killed
+*/
+ boolean Kill_impl() ;
+ };
+/*! \brief Interface of the %component
+
+ This interface is used for interaction between the %container and the %component and between
+ the components inside the container.
+*/
+ interface Component
+ {
+/*!
+ The name of the instance of the %Component
+*/
+ readonly attribute string instanceName ;
+/*!
+ The name of the interface of the %Component
+*/
+ readonly attribute string interfaceName ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+/*!
+ Deactivates the %Component.
+*/
+ void destroy() ;
+/*!
+ Returns the container that the %Component refers to.
+*/
+ Container GetContainerRef() ;
+/*!
+ This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node.
+*/
+ void Names( in string aGraphName , in string aNodeName ) ;
+/*!
+ Returns True if the %Component has been killed.
+*/
+ boolean Kill_impl() ;
+/*!
+ Returns True if the activity of the %Component has been stopped. (It's action can't be resumed)
+*/
+ boolean Stop_impl() ;
+/*!
+ Returns True if the activity of the %Component has been suspended. (It's action can be resumed)
+*/
+ boolean Suspend_impl() ;
+/*!
+ Returns True if the activity of the %Component has been resumed.
+*/
+ boolean Resume_impl() ;
+/*!
+ Returns the Cpu used (long does not run with python !...)
+*/
+ long CpuUsed_impl() ;
+ } ;
+} ;
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_DataTypeCatalog.idl
+// Author : Estelle Deville, Paul Rascle
+// $Header$
+
+module SALOME_DataTypeCatalog{
+// Type definitions
+
+// List of Data Type Names
+ typedef sequence<string> ListOfDataTypeName ;
+
+ // Exception thrown if a DataType is not found in the catalog
+ exception NotFound {};
+//--------------------------------------------------------------------------
+// Interfaces
+
+// Catalog interface :
+// methods to :
+// - obtain the data type names of the catalog
+// - test the compatibility between two type names
+interface DataCatalog
+{
+ ListOfDataTypeName GetDataTypeList() ;
+ boolean isDerivedFrom(in string type_in, in string type_out) raises(NotFound);
+ string GetDataInterfaceRead(in string type) raises(NotFound);
+ string GetDataInterfaceWrite(in string type)raises(NotFound);
+ ListOfDataTypeName GetDataTypeParents(in string type) raises(NotFound);
+} ;
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Exception.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+/*! \file SALOME_Exception.idl This file contains the objects defining the main exception used
+in %SALOME application.
+*/
+#ifndef _SALOME_EXCEPTION_IDL_
+#define _SALOME_EXCEPTION_IDL_
+
+/*!
+Module SALOME regroups all idl definitions for SALOME Kernel
+*/
+
+module SALOME
+{
+/*!
+This enumeration contains the elements indicating the type of the exception.
+*/
+ enum ExceptionType
+ {
+ COMM, /*!< Communication problem */
+ BAD_PARAM, /*!< Bad User parameters */
+ INTERNAL_ERROR /*!< SALOME Bug, irrecoverable */
+ };
+/*!
+This struct contains a set of fields defining the structure of the exception.
+*/
+ struct ExceptionStruct
+ {
+ ExceptionType type; /*!<Type of the exception.*/
+ string text; /*!<Message which is shown when the exception is raised.*/
+ string sourceFile; /*!<The source file where the exception is raised.*/
+ unsigned long lineNumber; /*!<Number of the line of the source file where the exception is raised.*/
+ };
+/*!
+The main exception in %SALOME application.
+*/
+ exception SALOME_Exception
+ {
+ ExceptionStruct details;
+ };
+
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_ModuleCatalog.idl
+// Author : Estelle Deville
+// $Header$
+
+/*! \file SALOME_ModuleCatalog.idl This file conatins a set of interfaces used for
+ creation of the catalog of components in %SALOME application
+*/
+
+/*! \ingroup Kernel
+The main package of interfaces used for creation of the module catalog in %SALOME application.
+*/
+module SALOME_ModuleCatalog
+{
+ // Type Definitions
+/*!
+This enumeration contains a set of definitions of %SALOME modules.
+*/
+ enum ComponentType { GEOM, /*!<Module %GEOM */
+ MESH, /*!<Module %MESH */
+ Med, /*!<Module %Med*/
+ SOLVER, /*!<Module of %SOLVER type */
+ DATA, /*!<Module %DATA */
+ VISU, /*!<Module %VISU */
+ SUPERV, /*!<Module %SUPERVISION */
+ OTHER /*!<Any other type of module */
+ } ;
+/*!
+This struct contains fields defining the parameters of the services.
+*/
+
+ struct ServicesParameter
+ {
+ string Parametertype; /*!<Type of the parameter.*/
+ string Parametername; /*!<Name of the parameter.*/
+ } ;
+
+ typedef sequence<ServicesParameter> ListOfServicesParameter;
+/*!
+This struct contains fields completely defining each service.
+*/
+
+ struct Service
+ {
+ string ServiceName; /*!<Name of the service.*/
+ ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
+ ListOfServicesParameter ServiceoutParameter; /*!< List of input parameters of the services.*/
+ boolean Servicebydefault; /*!<True if the service is taken with its defult fields.*/
+ } ;
+/*!
+List of services of the interface.
+*/
+ typedef sequence<Service> ListOfInterfaceService;
+/*!
+List of services.
+*/
+ typedef sequence<string> ListOfServices ;
+/*!
+This struct contains fields defining each interface.
+*/
+ struct DefinitionInterface
+ {
+ string interfacename ; /*!<Name of the interface.*/
+ ListOfInterfaceService interfaceservicelist ; /*!<List of services of the interface.*/
+ } ;
+/*!
+List of interface definitions.
+*/
+ typedef sequence<DefinitionInterface> ListOfDefInterface ;
+/*!
+List of interfaces.
+*/
+ typedef sequence<string> ListOfInterfaces ;
+/*!
+List of names of components.
+*/
+ typedef sequence<string> ListOfComponents ;
+/*!
+List of names of computers.
+*/
+ typedef sequence<string> ListOfComputers ;
+/*!
+This struct contains GUI elements used for representation of the module in %IAPP component.
+*/
+ struct IAPP_Affich
+ {
+ string modulename; /*!<Name of the module.*/
+ string moduleicone; /*!<Icone representing the module.*/
+ };
+/*!
+List of pair GUI elements (component name, component icone)
+ used for representation of the module in %IAPP component.
+*/
+ typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
+
+/*!
+ This exception is raised when a %component, a %service or a % pathPrefix is not found.
+*/
+ exception NotFound
+ {
+ string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
+ } ;
+
+ interface Acomponent
+ {
+ // GetInterfaceList : operation to get a list of the interfaces name of
+ // a component
+ /*!
+ Gets a list of names of interfaces of the component
+ \return a list of interfaces of the component
+ */
+ ListOfInterfaces GetInterfaceList() ;
+
+ // GetInterface : operation to get one interface of a component
+
+ /*!
+ Gets a definite interface of the component
+ \note <BR>If the specified interface doesn't exist, Notfound exception is thrown
+ \param interfacename Name of the interface
+ \return Required interface
+ */
+ DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
+
+ // GetServiceList : operation to get a list of the services name of
+ // an interface of a component
+ /*!
+ Gets a list of names of services of a definite interface belonging to the component.
+ \note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return List of services of the required interface
+ */
+ ListOfServices GetServiceList(in string interfacename) raises(NotFound);
+
+
+ // GetService : operation to get one service of an interface of a component
+
+ /*!
+ Gets a definite service of an interface of the component.
+ \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \param servicename Name of the service
+ \return Required service
+ */
+
+ Service GetService(in string interfacename,
+ in string servicename) raises(NotFound);
+
+ // GetDefaultService : operation to get the default service
+ // of an interface of a component
+/*!
+ Gets the default service of an interface of the component.
+ \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return Required service
+ */
+
+ Service GetDefaultService(in string interfacename) raises(NotFound);
+
+ // GetPathPrefix : operation to get the PathPrefix of a computer
+ /*!
+ Gets the prefix path of the computer containing the %component.
+ \note <BR>If the required computer doesn't exist, Notfound exception is thrown
+ \param machinename Name of the machine
+ \return Prefix path
+ */
+
+ string GetPathPrefix(in string machinename) raises(NotFound);
+
+/*!
+ Sets/gets the constraint affected to the component
+ (to be resolved by LifeCycle for the computer choice)
+*/
+ readonly attribute string constraint ;
+
+/*!
+Sets/gets the name of the component
+*/
+ readonly attribute string componentname;
+
+/*!
+Defines whether the component can be multistudy or not
+*/
+ readonly attribute boolean multistudy;
+
+/*!
+Defines the type of the component
+*/
+ readonly attribute ComponentType component_type ;
+
+/*!
+Sets/gets the icone of the component (for IAPP)
+*/
+ readonly attribute string component_icone;
+ } ;
+/*! \brief %Module catalog interface
+
+This interface is used for creation of the module catalog in %SALOME application.
+*/
+ interface ModuleCatalog
+ {
+ void ping();
+
+/*!
+ Gets a list of names of computers of the catalog
+*/
+ ListOfComputers GetComputerList();
+
+/*!
+Gets the %PathPrefix of a computer
+*/
+ string GetPathPrefix(in string machinename) raises(NotFound);
+/*!
+ Gets a list of names of components of the catalog
+*/
+ ListOfComponents GetComponentList();
+/*!
+Gets a list of pair GUI elements (component name, component icone)
+used for representation of the module in %IAPP component.
+*/
+
+ ListOfIAPP_Affich GetComponentIconeList();
+/*!
+Gets a list of names of components of a particular type, which belong to this catalog.
+*/
+ // GetComponentList : operation to get a list of the components name of
+ // a particular type of the catalog
+ ListOfComponents GetTypedComponentList(in ComponentType _component_type);
+
+/*!
+Gets one component of the catalog.
+*/
+ Acomponent GetComponent(in string componentname) raises(NotFound);
+ } ;
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Registry.idl
+
+# ifndef __registry_idl__
+# define __registry_idl__
+
+module Registry
+{
+ struct Infos
+ {
+ string name;
+ long pid;
+ string machine;
+ string adip;
+ long uid;
+ string pwname;
+ long tc_start;
+ long tc_hello;
+ long tc_end;
+ long difftime;
+ string cdir;
+ long status;
+ string ior; // client
+ };
+
+ typedef sequence<Infos> AllInfos;
+
+ interface Components
+ {
+ void ping();
+ unsigned long add ( in Infos lesInfos ) ;
+ void remove ( in unsigned long id ) ;
+ unsigned long size() ;
+ AllInfos getall () ;
+ AllInfos history () ;
+ oneway void end() ;
+ oneway void hello( in unsigned long id ) ;
+ } ;
+} ;
+
+# endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_RessourcesCatalog.idl
+// Author : Estelle Deville
+// $Header$
+
+module SALOME_RessourcesCatalog{
+ // Type Definitions
+
+ //Proc_info : information about a processor
+ struct proc_info{
+ long number;
+ string model_name;
+ float cpu_mhz;
+ float cache_size;
+ };
+
+ typedef sequence<proc_info> ListOfProc;
+
+ //Computer_info : information about a computer
+ // Os and informations about processors
+ struct computer_info{
+ string name;
+ string OS;
+ string OS_version;
+ ListOfProc procs;
+ };
+
+ enum ContainerType {Cpp, python, NP};
+ typedef sequence<ContainerType> ListOfContainerType;
+
+ typedef sequence<string> ListOfComputer;
+
+ // exception thrown if a computer is not found in the catalog
+
+ exception NotFound {};
+
+ //------------------------------------------------------------------
+ //Interface
+ interface RessourcesCatalog {
+ ListOfComputer GetComputerList();
+ ListOfContainerType GetContainerTypeList (in string computer) raises(NotFound);
+ computer_info GetComputerInfo(in string computer) raises(NotFound);
+ };
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Session.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#include "SALOME_Component.idl"
+/*! \defgroup Kernel SALOME KERNEL module
+*/
+
+/*! \ingroup Kernel
+
+ This package contains interfaces used for management of the session in %SALOME application.
+*/
+module SALOME
+{
+/*! \brief State of the session
+
+ This enumeration contains values defining the state of the session
+
+*/
+ enum SessionState {asleep, running} ;
+
+/*! \brief %Session State and Statistics
+
+
+ This struct contains a field list with general information about the session
+*/
+
+ struct StatSession
+ {
+/*! \brief State of the session
+
+ It can be:
+ * -# asleep : no running study
+ * -# running : one or more running studies
+*/
+ SessionState state ;
+/*! Number of running studies
+*/
+ short runningStudies ;
+/*! It is True if GUI is active in the session
+*/
+ boolean activeGUI ;
+ } ;
+/*! \brief Interface of the session
+
+ The %session Server launches and stops GUI (Graphical User Interface).
+ The %session can be active without GUI (It can contain one or more running studies)
+*/
+
+ interface Session
+ {
+/*!
+ This exception is raised when trying to stop the %session with active GUI
+*/
+ exception GUIActive {} ;
+/*!
+ This exception is raised when trying to stop the %session with a number of running studies.
+*/
+ exception RunningStudies {} ;
+
+/*!
+ Launches GUI in the session
+*/
+ void GetInterface();
+ Engines::Component GetVisuGen();
+
+/*!
+ Stops the %Session (It must be idle)
+*/
+ void StopSession() raises(GUIActive, RunningStudies) ;
+
+/*!
+ Gets Session State
+*/
+ StatSession GetStatSession() ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+ } ;
+
+} ;
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_TestComponent.idl
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// $Header$
+
+#include "SALOME_Component.idl"
+
+module Engines
+{
+
+ interface TestComponent : Component
+ {
+ string Coucou(in long L);
+ };
+
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : TestNotif.idl
+
+# ifndef __TESTNOTIF_IDL_
+# define __TESTNOTIF_IDL_
+
+interface Solver
+{
+ boolean Connect();
+ oneway void Start() ;
+ oneway void ReStart() ;
+} ;
+# endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : TypeData.idl
+
+#ifndef _SALOME_TYPEDATA_IDL_
+#define _SALOME_TYPEDATA_IDL_
+
+module Engines
+{
+
+ typedef sequence<double> DoubleVec ;
+ typedef sequence<long> IntVec;
+
+ typedef struct CSR {
+ unsigned long nbpos;
+ unsigned long nbval;
+ IntVec pos;
+ IntVec col;
+ DoubleVec data;
+ } CSRMatStruct;
+
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOMEDS.idl
+// Author : Yves FRICAUD
+// $Header$
+
+/*! \mainpage
+ \image html Application-About.png
+
+*/
+/*! \page page1 Mapping of IDL definitions to Python language.
+\section Intro Introduction
+%SALOME PRO is a distributed client/server application using the Common Object Request Broker Architecture (CORBA).
+CORBA architecture uses the Interface Definition Language (IDL), which specifies interfaces between CORBA objects. So with help of IDL
+CORBA's language independence is ensured . Because interfaces described in IDL can be mapped to the most of currently used programming languages, CORBA applications and components are thus
+independent of the language(s) used to implement them. In other words, a client written in C++ can communicate with a server written in Java, which in turn can communicate with
+another server written in COBOL, and so forth.
+
+One important thing to remember about IDL is that it is not an implementation language. That is, applications can't be written in IDL. The sole purpose of IDL is to define interfaces;
+providing implementations for these interfaces is performed using some other language.
+
+This page contains an abridged reference manual for mapping of IDL definitions to Python language. It will be useful for Python programmers who are not familiar
+with IDL language. All examples are taken from %SALOME PRO source files.
+The complete version of Python Language Mapping Specification can be found <A HREF="http://www.omg.org">here.</A>
+
+<BR><STRONG>CONTENTS:</STRONG>
+- \ref subsection1
+- \ref subsection2
+- \ref subsection3
+- \ref subsection4
+- \ref subsection5
+- \ref subsection6
+- \ref subsection7
+
+\subsection subsection1 Using Scoped Names
+
+Python implements a module concept that is similar to the IDL scoping mechanisms,
+except that it does not allow for nested modules. In addition, Python requires each
+object to be implemented in a module; globally visible objects are not supported.
+
+Because of these constraints, scoped names are translated into Python using the
+following rules:
+
+\95 An IDL module mapped into a Python module. Modules containing modules are
+mapped to packages (i.e., directories with an <STRONG>__init__</STRONG> module containing all
+definitions excluding the nested modules). An implementation can chose to map toplevel
+definitions (including the module CORBA) to modules in an implementationdefined
+package, to allow concurrent installations of different CORBA runtime
+libraries. In that case, the implementation must provide additional modules so that
+toplevel modules can be used without importing them from a package.
+
+\95 For all other scopes, a Python class is introduced that contains all the definitions
+inside this scope.
+
+\95 Other global definitions (except modules) appear in a module whose name is
+implementation dependent. Implementations are encouraged to use the name of the
+IDL file when defining the name of that module.
+
+For instance,
+
+\verbatim
+module SALOMEDS {
+ interface StudyManager {
+ void Close(in Study aStudy);
+ };
+};
+\endverbatim
+
+would introduce a module SALOMEDS.py, which contains the following definitions:
+
+\verbatim
+# module SALOMEDS.py
+class StudyManager:
+ def _Close(self,aStudy):
+ pass #interfaces are discussed later
+\endverbatim
+
+To avoid conflicts, IDL names that are also Python identifiers are prefixed with an underscore (\91_\92).
+
+\subsection subsection2 Mapping for Template and Array Types
+
+Both the bounded and the unbounded string type of IDL are mapped to the Python
+string type. Wide strings are represented by an implementation-defined type with the
+following properties:
+
+\95 For the wide string X and the integer n, X[n] returns the nth character, which is a
+wide string of length 1.
+
+\95 len(X) returns the number of characters of wide string X.
+
+\95 CORBA.wstr(c) returns a wide character with the code point c in an
+implementation-defined encoding.
+
+\95 X+Y returns the concatenation of wide strings X and Y.
+
+\95 CORBA.word(CORBA.wstr(c)) == c
+
+The sequence template is mapped to sequence objects (e.g., tuples or lists).
+Applications should not assume that values of a sequence type are mutable. Sequences
+and arrays of octets and characters are mapped to the string type for efficiency reasons.
+
+For example, given the IDL definitions
+
+\verbatim
+module SALOMEDS {
+ typedef sequence <string> StringSeq;
+
+ interface AttributeTableOfInteger : GenericAttribute {
+
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ };
+};
+\endverbatim
+
+a client could invoke the operation
+
+\verbatim
+print My_AttributeTableOfInteger.SetRowTitles(["X","F"])
+\endverbatim
+
+Array types are mapped like sequence templates. The application in this example also expects an
+IncorrectArgumentLength exception if it passes sequences that violate the bounds constraint or
+arrays of wrong size.
+
+Another example with arrays. The following IDL definition
+
+\verbatim
+module SALOMEDS {
+ typedef sequence<GenericAttribute> ListOfAttributes;
+ interface SObject {
+ ListOfAttributes GetAllAttributes();
+ };
+};
+\endverbatim
+
+is equal to
+
+\verbatim
+import SALOMEDS
+
+attributes=[]
+
+attributes = My_SObject.GetAllAttributes()
+
+length = len(attributes)
+
+print "Attributes number = ", length
+print attributes
+\endverbatim
+
+\subsection subsection3 Mapping for Objects and Operations
+
+A CORBA object reference is represented as a Python object at run-time. This object
+provides all the operations that are available on the interface of the object. Although
+this specification does not mandate the use of classes for stub objects, the following
+discussion uses classes to indicate the interface.
+
+The nil object is represented by <STRONG>None</STRONG>.
+
+If an operation expects parameters of the IDL Object type, any Python object
+representing an object reference might be passed as actual argument.
+
+If an operation expects a parameter of an abstract interface, either an object
+implementing that interface, or a value supporting this interface may be passed as
+actual argument. The semantics of abstract values then define whether the argument is
+passed by value or by reference.
+
+Operations of an interface map to methods available on the object references.
+Parameters with a parameter attribute of <STRONG>in</STRONG> or <STRONG>inout</STRONG>
+are passed from left to right tothe method, skipping <STRONG>out</STRONG> parameters.
+The return value of a method depends on the number of <STRONG>out</STRONG> parameters
+and the return type. If the operation returns a value, this
+value forms the first <VAR>result value</VAR>. All <STRONG>inout</STRONG> or <STRONG>out</STRONG>
+parameters form consecutive <VAR>result values</VAR>. The method result depends then on the number
+of <VAR>result values</VAR>:
+
+\95 If there is no <VAR>result value</VAR>, the method returns None.
+
+\95 If there is exactly one <VAR>result value</VAR>, it is returned as a single value.
+
+\95 If there is more than one <VAR>result value</VAR>, all of them are packed into a tuple, and this
+tuple is returned.
+
+Assuming the IDL definition
+
+\verbatim
+module SALOMEDS{
+ interface StudyBuilder{
+ boolean FindAttribute ( in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute );
+ };
+};
+\endverbatim
+
+a client could write
+
+\verbatim
+from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+
+ res,A=my_StudyBuilder.FindAttribute(Sobj, "AttributeSequenceOfReal")
+\endverbatim
+
+In this example <STRONG>A</STRONG> corresponds to the return value <STRONG>anAttribute</STRONG> and
+<STRONG>res</STRONG> to the <STRONG>boolean</STRONG> return value.
+
+If an interface defines an <STRONG>attribute name</STRONG>, for example, the attribute is mapped into an
+operation <STRONG>_get_name</STRONG>. If the attribute is not <STRONG>readonly</STRONG>, there is an
+additional operation <STRONG>_set_name</STRONG>.
+
+The IDL definition
+
+\verbatim
+module SALOMEDS{
+ interface Study{
+ attribute string Name;
+ };
+};
+\endverbatim
+
+is equal to the following
+
+\verbatim
+from SALOMEDS import Study
+My_Study=...
+ Name=My_Study._get_name();
+ Name=My_Study._set_name();
+\endverbatim
+
+\subsection subsection4 Narrowing Object References
+
+Python objects returned from CORBA operations or pseudo-operations (such as
+string_to_object) might have a dynamic type, which is more specific than the
+static type as defined in the operation signature.
+
+Since there is no efficient and reliable way of automatically creating the most specific
+type, explicit narrowing is necessary. To narrow an object reference <STRONG>A</STRONG> to an interface
+class <STRONG>AttributeSequenceOfReal</STRONG>, the client can use the following operation
+
+\verbatim
+A = A._narrow(SALOMEDS.AttributeSequenceOfReal)
+\endverbatim
+
+\subsection subsection5 Mapping for Exceptions
+
+An IDL exception is translated into a Python class derived from
+CORBA.UserException. System exceptions are derived from CORBA.SystemException.
+Both base classes are derived from CORBA.Exception. The parameters of the
+exception are mapped in the same way as the fields of a struct definition. When
+raising an exception, a new instance of the class is created; the constructor
+expects the exception parameters. For example, the definition
+
+\verbatim
+module SALOMEDS{
+ interface StudyBuilder{
+ exception LockProtection {};
+ void CommitCommand() raises(LockProtection);
+ };
+};
+\endverbatim
+
+could be used caught as
+
+\verbatim
+from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+try:
+ my_StudyBuilder.CommitCommand();
+except StudyBuilder.LockProtection,value:
+ print "Error! Study is locked for modifications"
+\endverbatim
+
+
+\subsection subsection6 Mapping for Enumeration Types
+
+An enumeration is mapped into a number of constant objects in the name space where
+the enumeration is defined. An application may only test for equivalence of two
+enumeration values, and not assume that they behave like numbers.
+For example, the definition
+
+\verbatim
+module VISU {
+ interface PrsObject{
+
+ enum PrsObjType{ TCURVE, TTABLE, TMESH, TCONTAINER,
+ TSCALARMAP, TISOSURFACE, TDEFORMEDSHAPE,
+ TCUTPLANES, TVECTORS };
+ };
+};
+\endverbatim
+
+introduces the objects
+
+\verbatim
+from VISU import PrsObject
+VISU.PrsObjType.TCURVE,VISU.PrsObjType.TTABLE,VISU.PrsObjType.TMESH,VISU.PrsObjType.TCONTAINER,
+VISU.PrsObjType.TSCALARMAP,VISU.PrsObjType.TISOSURFACE,VISU.PrsObjType.TDEFORMEDSHAPE,VISU.PrsObjType.TCUTPLANES,
+VISU.PrsObjType.TVECTORS
+\endverbatim
+
+\subsection subsection7 Mapping for Structured Types
+
+An IDL struct definition is mapped into a Python class or type. For each field in the
+struct, there is a corresponding attribute in the class with the same name as the field.
+The constructor of the class expects the field values, from left to right.
+For example, the IDL definition
+
+\verbatim
+struct SDate {
+ short Second;
+ short Minute;
+ short Hour;
+ short Day;
+ short Month;
+ short Year;
+ };
+\endverbatim
+
+could be used in the Python statements
+
+\verbatim
+Date=SDate(30, 12, 15, 26, 1, 79)
+print Date.Second,Date.Minute,Date.Hour,Date.Day,Date.Month,Date.Year
+\endverbatim
+*/
+/*! \page page2 Mapping of SALOME IDL definitions to Python language.
+
+
+ - <B>%SALOME STUDY module</B>
+ - <A href=HTML/SALOMEDS.html>Mapping of %SALOMEDS functions</A>
+ - <A href=HTML/SALOMEDS_Attributes.html>Mapping of SALOMEDS_Attributes functions</A>
+ - <B>%SAlOME KERNEL module</B>
+ - <A href=HTML/Med_Gen.html>Mapping of %Med_Gen functions</A>
+ - <A href=HTML/SALOME_Session.html>Mapping of %SALOME_Session functions</A>
+ - <A href=HTML/SALOME_ModuleCatalog.html>Mapping of %SALOME_ModuleCatalog functions</A>
+ - <A href=HTML/SALOME_Exception.html>Mapping of %SALOME_Exception functions</A>
+ - <A href=HTML/SALOME_Component.html>Mapping of %SALOME_Component functions</A>
+ - <B>%SALOME MED component</B>
+ - <A href=HTML/MED.html>Mapping of %Med functions</A>
+ - <B>%SALOME SUPERVISION module</B>
+ - <A href=HTML/SUPERV.html>Mapping of %SUPERV functions</A>
+ - <B>%SALOME %VISU module</B>
+ - <A href=HTML/VISU_Gen.html>Mapping of %VISU_Gen functions</A>
+
+*/
+
+/*! \defgroup Study SALOME STUDY module
+*/
+
+/*!
+ \file SALOMEDS.idl This file contains a set of interfaces used for creation, managment
+ and modification of the %Study
+*/
+
+#ifndef _SALOMEDS_IDL_
+#define _SALOMEDS_IDL_
+
+#include "SALOME_Exception.idl"
+
+/*! \ingroup Study
+ This package contains the interfaces used for creation, managment
+ and modification of the %Study
+*/
+module SALOMEDS
+{
+/*! \typedef URL
+ Name of the file in which the %Study is saved.
+
+*/
+ typedef string URL;
+
+/*! Main identifier of an object in %SALOME application
+*/
+ typedef string ID;
+
+/*! While saving the data, IOR is transformed into persistent reference
+*/
+ typedef string PersistentReference;
+
+/*! IOR of the study in %SALOME application
+*/
+ typedef string SalomeReference;
+/*! List of names of open studies in a %SALOME session
+*/
+ typedef sequence<string> ListOfOpenStudies;
+/*! List of file names
+*/
+ typedef sequence<string> ListOfFileNames;
+/*! List of modification dates of the study
+*/
+ typedef sequence<string> ListOfDates ;
+/*! An unbounded sequence of strings
+*/
+ typedef sequence<string> ListOfStrings ;
+/*! A byte stream which is used for binary data transfer between components
+*/
+ typedef sequence<octet> TMPFile;
+
+ // Reference to other objects is treated with function AddReference
+ // and ReferencedObject
+ // All other type of attributes defined in AttributeType enum are
+ // treated with AddAdttribute and GetAttribute
+ // The difference is made because Reference attribute don't contain
+ // strings but reference to ID of other objects
+
+ interface GenericAttribute;
+ interface Study;
+ interface StudyManager;
+ interface StudyBuilder;
+ interface SObject;
+ interface SComponent;
+ interface SComponentIterator;
+ interface ChildIterator;
+ interface Driver;
+ interface AttributeStudyProperties;
+ interface UseCaseIterator;
+ interface UseCaseBuilder;
+ interface Callback;
+/*! List of attributes
+*/
+ typedef sequence<GenericAttribute> ListOfAttributes;
+/*! Exception indicating that this feature hasn't been implemented
+*/
+ exception NotImplemented {};
+
+
+ //===========================================================================
+ /*! \brief %Study Interface
+
+ The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
+ Most of the %Study operations are handled by the StudyManager and the StudyBuilder.
+ What is left in the %Study interface are elementary inquiries.
+ (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
+ and set methods.) A %Study is explored by a set of tools, mainly iterators
+ , which are described further. Nevertheless, the %Study
+ interface allows the search of an object by name or by ID.
+ \note
+ <BR><VAR>The Path </VAR>of an object in %SALOME application is much alike a standard path of a file.
+ In general it's a string of names of directories divided by a slash '/'.
+ <BR><VAR>The Context</VAR> is the current directory of an object.</P>
+*/
+
+ interface Study
+ {
+ exception StudyInvalidContext {};
+ exception StudyInvalidComponent {};
+/*! Invalid directory of the %study exception
+*/
+ exception StudyInvalidDirectory {};
+/*! Exception pointing that this name of the study has already been used.
+*/
+ exception StudyNameAlreadyUsed {};
+ exception StudyObjectAlreadyExists {};
+/*! Invalid name of the %study exception
+*/
+ exception StudyNameError {};
+ exception StudyCommentError {};
+/*! \brief The name of the %Study
+
+ This is equivalent to the methods setName() & getName()
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief The ID of the %Study
+
+ This is equivalent to the methods setID() & getID()
+*/
+ attribute short StudyId;
+/*! Sequence containing %SObjects
+*/
+ typedef sequence<SObject> ListOfSObject;
+/*!
+ Gets a persistent reference to the %Study.
+*/
+ PersistentReference GetPersistentReference();
+/*!
+ Gets a transient reference to the %Study.
+*/
+ SalomeReference GetTransientReference();
+
+/*!
+ Returns True if the %Study is empty
+*/
+ boolean IsEmpty();
+/*!
+ Allows to find a %SComponent by its name.
+ \param aComponentName It's a string value in the Comment Attribute of the Component,
+ which is looked for, defining the data type of this Component.
+
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ SComponent FindComponent (in string aComponentName);
+/*!
+ Allows to find a %SComponent by ID of the according %SObject
+*/
+ SComponent FindComponentID(in ID aComponentID);
+/*!
+ Allows to find a %SObject by the Name Attribute of this %SObject
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SObject FindObject (in string anObjectName);
+/*!
+ Allows to find a %SObject by its ID
+*/
+ SObject FindObjectID (in ID aObjectID);
+/*!
+ Allows to find a %SObject by IOR of the object belonging to this %SObject.
+*/
+ SObject FindObjectIOR (in ID aObjectIOR);
+/*!
+ Returns a list of %SObjects belonging to this %Component. The Name Attribute
+ of these %SObjects should correspond to <VAR>anObjectName</VAR>.
+*/
+ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName);
+/*!
+ Allows to find a %SObject by the path to it.
+*/
+ SObject FindObjectByPath(in string thePath);
+/*!
+ Returns the path to the %SObject.
+*/
+ string GetObjectPath(in Object theObject);
+
+/*!
+ Sets the context of the %Study.
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetContext(in string thePath);
+/*!
+ Gets the context of the %Study
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ string GetContext();
+/*!
+ Returns a list of names of objects corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetObjectNames(in string theContext);
+/*!
+ Returns a list of names of directories and subdirectories corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetDirectoryNames(in string theContext);
+/*!
+ Returns a list of names of Files corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetFileNames(in string theContext);
+/*!
+ Returns a list of names of Components corresponding to the context.
+ \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+*/
+ ListOfStrings GetComponentNames(in string theContext);
+/*! \brief Creation of a new iterator of child levels
+
+ Creates a new iterator of child levels of the %SObject
+*/
+ ChildIterator NewChildIterator(in SObject aSO);
+/*! \brief Creation of a new iterator of the %SComponent
+
+ Creates a new iterator of the %SComponent.
+*/
+ SComponentIterator NewComponentIterator();
+/*! \brief Creation of a %StudyBuilder
+
+ Creates a new %StudyBuilder to add or modify an object in the study.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ StudyBuilder NewBuilder() ;
+/*! \brief Labels dependency
+
+ Updates the map with IOR attribute. It's an inner method used for optimization.
+*/
+ void UpdateIORLabelMap(in string anIOR, in string anEntry);
+
+/*! \brief Getting properties of the study
+
+ Returns the attriubte, which contains the properties of this study.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ AttributeStudyProperties GetProperties();
+/*!
+ Determines whether the %study has been saved
+*/
+ attribute boolean IsSaved;
+/*!
+ Returns True if the %study has been modified and not saved.
+*/
+ boolean IsModified();
+/*!
+ Determines the file where the %study has been saved
+*/
+ attribute string URL;
+
+/*! \brief List of %SObjects
+
+ Returns the list of %SObjects which refers to %anObject.
+*/
+ ListOfSObject FindDependances(in SObject anObject);
+
+/*! \brief The date of the last saving of the study
+
+ Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
+*/
+ string GetLastModificationDate();
+/*! \brief The list of modification dates of the study
+
+ Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
+ Note : the first modification begins the list.
+*/
+ ListOfDates GetModificationsDate();
+/*! \brief Object conversion.
+
+ Converts an object into IOR.
+ \return IOR
+*/
+ string ConvertObjectToIOR(in Object theObject);
+/*! \brief Object conversion.
+
+ Converts IOR into an object.
+ \return An object
+*/
+ Object ConvertIORToObject(in string theIOR);
+/*!
+ Gets a new %UseCaseBuilder.
+*/
+ UseCaseBuilder GetUseCaseBuilder();
+
+/*!
+ Closes the components in the study, removes itself from the %StudyManager.
+*/
+ void Close();
+
+/*!
+ Enables(if isEnabled = True)/disables automatic addition of new %SObjects to the use case.
+*/
+ void EnableUseCaseAutoFilling(in boolean isEnabled);
+ };
+
+ //==========================================================================
+/*! \brief %Study Builder Interface
+
+ The purpose of the Builder is to add and/or remove objects and attributes.
+ A %StudyBuilder is linked to a %Study. A
+ command management is provided for the undo/redo functionalities.
+ \note
+ <BR><VAR>The Tag</VAR> of an item in %SALOME application is a symbolic description of
+ item's position in the tree-type structure of the browser. In general it has the following
+ form: <TT>0:2:1:1</TT>
+*/
+ //==========================================================================
+
+ interface StudyBuilder
+ {
+/*! \brief %LockProtection Exception
+
+ This exception is raised while attempting to modify a locked %study.
+*/
+ exception LockProtection {};
+/*! \brief Creation of a new %SComponent.
+
+ Creates a new %SComponent
+ \param ComponentDataType Data type of the %SComponent which will be created.
+
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SComponent NewComponent(in string ComponentDataType);
+/*! \brief Definition of the instance to the %SComponent
+
+ Defines the instance to the %SComponent.
+*/
+ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR);
+/*! \brief Deletion of the %SComponent
+
+ Removes the %SComponent.
+*/
+ void RemoveComponent(in SComponent aComponent);
+
+/*! \brief Creation of a new %SObject
+
+ Creates a new %SObject.
+<BR><VAR>See also <A href=exemple/Example18.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SObject NewObject (in SObject theFatherObject);
+/*! \brief Creation of a new %SObject with a definite %tag
+
+ Creates a new %SObject with a definite %tag.
+*/
+ SObject NewObjectToTag (in SObject theFatherObject, in long atag);
+/*! \brief Deletion of the %SObject
+
+ Removes a %SObject from the %StudyBuilder.
+*/
+ void RemoveObject (in SObject anObject);
+/*! \brief Deletion of the %SObject with all his child objects.
+
+ Removes the %SObject with all his child objects.
+*/
+ void RemoveObjectWithChildren(in SObject anObject);
+
+/*!
+ Loads a %SComponent.
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
+/*!
+ Loads a %SObject.
+*/
+ void Load (in SObject sco);
+
+/*! \brief Looking for or creating an attribute assigned to the %SObject
+
+ Allows to find or create an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+
+ GenericAttribute FindOrCreateAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+
+/*! \brief Looking for an attribute assigned to %SObject
+
+ Allows to find an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+ \param anAttribute Where the attribute is placed if it's found.
+ \return True if it finds an attribute.
+ */
+
+ boolean FindAttribute(in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*! \brief Deleting the attribute assigned to the %SObject
+
+ Removes the attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute.
+ \param aTypeOfAttribute Type of the attribute.
+
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void RemoveAttribute(in SObject anObject,
+ in string aTypeOfAttribute);
+/*! \brief Addition of a reference
+
+ Adds a reference between %anObject and %theReferencedObject.
+*/
+
+ void Addreference(in SObject anObject,
+ in SObject theReferencedObject) ;
+/*!
+ Adds a directory in the %Study.
+<BR><VAR>See also <A href=exemple/Example23.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void AddDirectory(in string theName);
+
+/*! \brief Identification of the %SObject's substructure.
+
+ Identification of the %SObject's substructure by GUID.
+ It has the following format "00000000-0000-0000-0000-000000000000"
+*/
+
+ void SetGUID(in SObject anObject, in string theGUID);
+/*!
+
+ Returns True if the %SObject has GUID.
+*/
+ boolean IsGUID(in SObject anObject, in string theGUID);
+
+/*! \brief Creation of a new command
+
+ Creates a new command which can contain several different actions.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void NewCommand(); // command management
+/*! \brief Execution of the command
+
+ Commits all actions declared within this command.
+<BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void CommitCommand() raises(LockProtection); // command management
+/*!
+ Returns True if at this moment there is a command under execution.
+*/
+ boolean HasOpenCommand();
+/*! \brief Cancelation of the command
+
+ Cancels all actions declared within the command.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void AbortCommand(); // command management
+/*! \brief Undolimit
+
+ The number of actions which can be undone
+*/
+ attribute long UndoLimit;
+/*! \brief Undo method
+
+ Cancels all actions of the last command.
+<BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Undo() raises (LockProtection);
+/*! \brief Redo method
+
+ Redoes all actions of the last command.
+ <BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Redo() raises (LockProtection);
+/*!
+ Returns True if at this moment there are any actions which can be canceled.
+ <BR><VAR>See also <A href=exemple/Example16.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean GetAvailableUndos();
+/*!
+ Returns True if at this moment there are any actions which can be redone.
+ <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean GetAvailableRedos();
+/*!
+ Sets the callback for addition of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnAddSObject(in Callback theCallback);
+/*!
+ Sets the callback for removal of the given %SObject. Returns the previous callback.
+*/
+ Callback SetOnRemoveSObject(in Callback theCallback);
+
+ };
+
+ //==========================================================================
+/*! \brief %Study Manager interface
+
+ The purpose of the Manager is to manipulate the %Studies. You will find in this
+ interface the methods to create, open,
+ close, and save a %Study. Since a %SALOME session is multi-document, you will
+ also find the methods allowing to navigate
+ through the collection of studies present in a session.
+*/
+ //==========================================================================
+
+ interface StudyManager
+ {
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+
+/*! \brief Creation of a new %Study
+
+ Creates a new %Study with a definite name.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Study NewStudy(in string study_name);
+
+/*! \brief Open a study
+
+ Reads and activates the structure of the study %Objects.
+ \warning This method doesn't activate the corba objects. Only a component can do it.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception);
+
+/*! \brief Closing the study
+
+ Closes the study.
+*/
+ void Close(in Study aStudy);
+/*! \brief Saving the study
+
+ Saves the study.
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Save(in Study aStudy, in boolean theMultiFile);
+
+ void SaveASCII(in Study aStudy, in boolean theMultiFile);
+/*! \brief Saving the study in a file
+
+ Saves the study in a specified file.
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SaveAs(in URL aUrl, // if the file already exists
+ in Study aStudy,
+ in boolean theMultiFile); // overwrite (as option)
+
+ void SaveAsASCII(in URL aUrl, // if the file already exists
+ in Study aStudy,
+ in boolean theMultiFile); // overwrite (as option)
+
+
+/*! \brief List of open studies.
+
+ Returns the list of open studies in the current session.
+*/
+ ListOfOpenStudies GetOpenStudies();
+
+/*! \brief Getting a particular %Study picked by name
+
+ Activates a particular %Study
+ amongst the session collection picking it by name.
+*/
+ Study GetStudyByName (in string aStudyName);
+
+/*! \brief Getting a particular %Study picked by ID
+
+ Activates a particular %Study
+ amongst the session collection picking it by ID.
+*/
+ Study GetStudyByID (in short aStudyID);
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+/*!
+ Returns True, if the given %SObject is copied to the clipboard.
+*/
+ boolean Copy(in SObject theObject);
+/*!
+ Returns True, if the object from the clipboard can be pasted to the given %SObject.
+*/
+ boolean CanPaste(in SObject theObject);
+/*!
+ Returns the %SObject in which the object from the clipboard was pasted to.
+*/
+ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
+ };
+
+
+ //==========================================================================
+/*! \brief %SObject interface
+
+ The objects in the %study are built by the %StudyBuilder. The %SObject interface
+ provides methods for elementary inquiries, like getting an object %ID or its attribuites.
+ \note
+ <BR><VAR>Tag</VAR> of an item in %SALOME application is an integer value uniquely defining an item
+ in the tree-type data structure.
+ <BR><VAR>ID</VAR> of an item is a description of item's position in the tree-type data structure.
+ ID is a list of tags and it has the following form: <TT>0:2:1:1</TT>.
+*/
+ //==========================================================================
+
+ interface SObject
+ {
+/*! Name of the %SObject
+*/
+ attribute string Name; // equivalent to setName() & getName()
+/*! \brief Getting an object %ID
+
+ Returns ID of the %SObject.
+*/
+ ID GetID();
+/*! \brief Acquisition of the father %Component of the %SObject
+
+ Returns the father %Component of the %SObject.
+*/
+ SComponent GetFatherComponent();
+/*! \brief Acquisition of the father %SObject of the %SObject
+
+ Returns the father %SObject of the given %SObject.
+*/
+ SObject GetFather();
+/*! \brief %Tag of %SObject
+
+ Returns the %tag of the %SObject.
+*/
+ short Tag();
+/*! \brief Looking for subobjects of an object.
+
+ Returns True if it finds a subobject of the %SObject with a definite tag.
+*/
+
+ boolean FindSubObject (in long atag, out SObject obj);
+/*! \brief Looking for attributes of the %SObject
+
+ Returns True if it finds an attribute of a definite type of the %SObject.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ boolean FindAttribute(out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*!
+ Returns the object which this %SObject refers to. It also returns True if it finds
+ this object.
+*/
+ boolean ReferencedObject(out SObject obj); // A REVOIR
+/*! \brief Getting all attributes of the %SObject
+
+ Returns the list of all attributes of the %SObject.
+<BR><VAR>See also <A href=exemple/Example17.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ ListOfAttributes GetAllAttributes();
+/*! \brief Returning the study
+
+ Returns the study containing the given %SObject.
+*/
+ Study GetStudy();
+ };
+
+
+ //==========================================================================
+/*! \brief %Generic attribute interface
+
+ %Generic attribute is a base interface for all attributes which inherit
+ its methods.
+*/
+ //==========================================================================
+ interface GenericAttribute
+ {
+/*! \brief Exception locking all changes
+
+ This exception locks all modifications in attributes.
+*/
+ exception LockProtection {};
+/*! \brief Method CheckLocked
+
+ Checks whether the %Study is protected for modifications.
+ \note <BR>This exception is raised only outside the transaction.
+*/
+ void CheckLocked() raises (LockProtection);
+ };
+
+
+
+ //==========================================================================
+/*! \brief %SComponent interface
+
+ The %SComponent interface is a specialization of the %SObject interface.
+ It inherits the most of its methods from the %SObject interface.
+*/
+ //==========================================================================
+ interface SComponent : SObject
+ {
+/*! \brief Data type of the %SComponent
+
+ Returns the data type of the %SComponent.
+*/
+ string ComponentDataType();
+/*!
+ Returns IOR of the according component.
+*/
+ boolean ComponentIOR (out ID theID); //returns True if there is an instance
+ //In this case ID identifies this one
+ };
+
+
+ //==========================================================================
+/*! \brief %SComponentIterator interface
+
+ This interface contains the methods allowing to iterate over all components in the list.
+ The search is started from the first %SComponent in the list.
+*/
+ //==========================================================================
+ interface SComponentIterator
+ {
+/*! \brief Initialization of the Iterator
+
+Activates the %SComponentIterator.
+*/
+ void Init();
+/*! \brief Method More
+
+ Returns True if there is one more %SComponent in the list.
+*/
+ boolean More();
+/*! \brief Moving the iterator to the next %SComponent
+
+Moves the iterator to the next %SComponent in the list.
+*/
+ void Next();
+/*!
+ Returns the %SComponent corresponding to the current %SComponent found by the iterator.
+ <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ SComponent Value();
+ };
+
+ //==========================================================================
+/*! \brief %ChildIterator interface
+
+ This interface contains methods which allow to iterate over all child
+ levels.
+*/
+ //==========================================================================
+ interface ChildIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %ChildIterator.
+*/
+ void Init();
+/*! \brief Initialization of the Iterator for all child levels.
+
+Activates the %ChildIterator (if True) for all child levels.
+*/
+ void InitEx(in boolean allLevels);
+/*! \brief Method More
+
+ Returns True if the %ChildIterator finds one more child level.
+*/
+ boolean More();
+/*!
+ Passes the iterator to the next level.
+*/
+ void Next();
+/*!
+ Returns the %SObject corresponding to the current object found by the iterator.
+*/
+ SObject Value();
+ };
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseIterator.
+
+ This interface contains a set of methods used for iteration over the objects in the use case.
+*/
+ interface UseCaseIterator
+ {
+/*! \brief Initialization of the Iterator.
+
+Activates the %UseCaseIterator. If <VAR>allLevels</VAR> is True the Iterator is activated for all subobjects.
+*/
+ void Init(in boolean allLevels);
+/*! \brief Method More
+
+ Returns True if the %UseCaseIterator finds one more object.
+*/
+ boolean More();
+/*!
+ Passes the iterator to the next object.
+*/
+ void Next();
+/*!
+ Returns the %SObject corresponding to the current object found by the Iterator.
+*/
+ SObject Value();
+ };
+
+ //==========================================================================
+ //==========================================================================
+/*! \brief Interface of the %UseCaseBuilder
+
+ Use case in the study represents a user-managed subtree, containing all or some of the objects which exist in the study.
+ The %UseCaseBuilder interface contains a set of methods used for management of the use case in the study.
+*/
+ interface UseCaseBuilder
+ {
+/*!
+ Adds to the use case an object <VAR>theObject</VAR> as a child of the current object of the use case.
+*/
+ boolean Append(in SObject theObject);
+/*!
+ Removes an object <VAR>theObject</VAR> from the use case.
+*/
+ boolean Remove(in SObject theObject);
+/*!
+ Adds a child object <VAR>theObject</VAR> to the given father <VAR>theFather</VAR> object in the use case.
+*/
+ boolean AppendTo(in SObject theFather, in SObject theObject);
+/*!
+ Inserts in the use case the object <VAR>theFirst</VAR> before the object <VAR>theNext</VAR>.
+*/
+ boolean InsertBefore(in SObject theFirst, in SObject theNext);
+/*!
+ Sets the current object of the use case.
+*/
+ boolean SetCurrentObject(in SObject theObject);
+/*!
+ Makes the root object to be the current object of the use case.
+*/
+ boolean SetRootCurrent();
+/*!
+ Returns True if the given object <VAR>theObject</VAR> of the use case has child objects.
+*/
+ boolean HasChildren(in SObject theObject);
+/*!
+ Sets the name of the use case.
+*/
+ boolean SetName(in string theName);
+/*!
+ Gets the name of the use case.
+*/
+ string GetName();
+/*!
+ Returns True if the given object <VAR>theObject</VAR> represents a use case.
+*/
+ boolean IsUseCase(in SObject theObject);
+/*!
+ Gets the current object of the use case.
+*/
+ SObject GetCurrentObject();
+/*!
+ Creates a new use case in the use case browser.
+*/
+ SObject AddUseCase(in string theName);
+/*!
+ Returns the %UseCaseIterator for the given object <VAR>theObject</VAR> in the use case.
+*/
+ UseCaseIterator GetUseCaseIterator(in SObject theObject);
+ };
+ //==========================================================================
+ //==========================================================================
+/*! \brief The callback interface
+
+ The %StudyBuilder can be created with the method <VAR>NewBuilder</VAR>. While invocation of this method a new object of the class <VAR>Callback</VAR> is created
+ and this object is assigned to the newly created Builder as callback which should be called when adding and removing of the ojects.
+*/
+ interface Callback
+ {
+/*!
+ Invokes the corresponding method <VAR>Append</VAR> of the %UseCaseBuilder.
+*/
+ void OnAddSObject(in SObject theObject);
+/*!
+ Invokes the corresponding method <VAR>Remove</VAR> of the %UseCaseBuilder.
+*/
+ void OnRemoveSObject(in SObject theObject);
+ };
+
+ //==========================================================================
+/*! \brief %Driver interface
+
+ This interface contains a set of methods used for the management
+ of the object produced in the %study by a component.
+*/
+ //==========================================================================
+ interface Driver
+ {
+
+ /*! \brief Saving the data.
+
+ This method is called by the StudyManager when saving a study.
+ \param theComponent %SComponent corresponding to this Component
+ \return A byte stream TMPFile that contains all saved data
+
+<BR><VAR>See also <A href=exemple/Example19.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+ */
+
+
+ TMPFile Save(in SComponent theComponent, in string theURL, in boolean isMultiFile);
+
+ TMPFile SaveASCII(in SComponent theComponent, in string theURL, in boolean isMultiFile);
+
+ /*! \brief Loading the data.
+
+ This method is called by the StudyManager when opening a study.
+ \param theComponent %SComponent corresponding to this Component
+ \param theStream The file which contains all data saved by the component on Save method
+ */
+
+ boolean Load(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile);
+
+ boolean LoadASCII(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile);
+
+ /*! \brief Closing of the study
+
+ This method Close is called by the StudyManager when closing a study.
+
+ */
+
+ void Close (in SComponent aSComponent);
+ //void Close ( in string aIORSComponent);
+
+ /*! \brief The type of the data
+
+ Returns the type of data produced by the Component in the study.
+ */
+
+ string ComponentDataType();
+
+ // Driver Transient -> persistent called for each object in study
+/*!
+ Transforms IOR into PersistentID of the object. It is called for each
+ object in the %study.
+*/
+ string IORToLocalPersistentID (in SObject theSObject,
+ in string IORString,
+ in boolean isMultiFile,
+ in boolean isASCII);
+/*!
+ Transforms PersistentID into IOR of the object. It is called for each
+ object in the %study.
+*/
+ string LocalPersistentIDToIOR (in SObject theSObject,
+ in string aLocalPersistentID,
+ in boolean isMultiFile,
+ in boolean isASCII)
+ raises (SALOME::SALOME_Exception);
+
+ // Publishing in the study
+/*! \brief Publishing in the study
+
+ Returns True if the given %Component can publish the %object in the %study.
+*/
+ boolean CanPublishInStudy(in Object theIOR) raises (SALOME::SALOME_Exception);
+/*! \brief Publishing in the study
+
+ Publishes the given object in the %study, using the algorithm of this component.
+ \param theStudy The %study in which the object is published
+ \param theSObject If this parameter is null the object is published for the first time. Otherwise
+ this parameter should contain a reference to the object published earlier
+ \param theObject The object which is published
+ \param theName The name of the published object. If this parameter is empty, the name is generated
+ automatically by the component.
+*/
+ SObject PublishInStudy(in Study theStudy, in SObject theSObject, in Object theObject, in string theName);
+
+ // copy/paste methods
+
+/*!
+ Returns True, if the given %SObject can be copied to the clipboard.
+*/
+ boolean CanCopy(in SObject theObject);
+/*!
+ Returns the object %ID and the %TMPFile of the object from the given %SObject.
+*/
+ TMPFile CopyFrom(in SObject theObject, out long theObjectID);
+/*!
+ Returns True, if the component can paste the object with given %ID of the component with name <VAR>theComponentName</VAR>.
+*/
+ boolean CanPaste(in string theComponentName, in long theObjectID);
+/*!
+ Returns the %SObject of the pasted object.
+*/
+ SObject PasteInto(in TMPFile theStream, in long theObjectID, in SObject theObject);
+
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOMEDS.idl
+// Author : Yves FRICAUD
+// $Header$
+
+/*! \file SALOMEDS_Attributes.idl This file contains a set of interfaces
+ for the attributes which can be assigned to %SObject
+*/
+#ifndef _SALOMEDS_AttributesIDL_
+#define _SALOMEDS_AttributesIDL_
+
+#include "SALOMEDS.idl"
+
+module SALOMEDS
+{
+/*! Sequence of double values
+*/
+ typedef sequence <double> DoubleSeq;
+/*! Sequence of long values
+*/
+ typedef sequence <long> LongSeq;
+/*! Sequence of string values
+*/
+ typedef sequence <string> StringSeq;
+/*! \struct Color
+ This structure stores a set of elements defining the color based on RGB.
+*/
+ struct Color {
+/*! Red color
+*/
+ double R;
+/*! Green color
+*/
+ double G;
+/*! Blue color
+*/
+ double B;
+ };
+ //==========================================================================
+/*! \brief Attribute allowing to store a real value
+
+ Attribute allowing to store a real value
+*/
+ //==========================================================================
+ interface AttributeReal : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ double Value();
+/*!
+ Sets the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in double value);
+ };
+ //==========================================================================
+/*! \brief Attribute allowing to store an integer value
+
+ Attribute allowing to store an integer value
+*/
+ //==========================================================================
+ interface AttributeInteger : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in long value);
+ };
+ //==========================================================================
+/*! \brief Attribute - sequence of real values
+
+ Attribute - sequence of real values, indexing from 1 (like in CASCADE).
+*/
+ //==========================================================================
+ interface AttributeSequenceOfReal : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of real numbers.
+*/
+ void Assign (in DoubleSeq other);
+/*!
+ Returns the sequence of real numbers stored in the attribute.
+*/
+ DoubleSeq CorbaSequence();
+/*!
+ Adds to the end of the sequence a real number.
+ \param value A real number added to the sequence.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void Add (in double value);
+/*!
+ Removes a real number with a definite index
+ from the sequence of real numbers stored in the Attribute.
+*/
+ void Remove(in long index);
+/*!
+ Substitutes a real number with a definite index for another real number.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void ChangeValue(in long index, in double value);
+/*!
+ Returns a real number with a definite index
+ in the sequence of real numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ double Value(in short index);
+/*!
+ Returns the length of the sequence of real numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ long Length();
+ };
+ //==========================================================================
+/*! \brief Attribute - sequence of integer
+
+ Attribute - sequence of integer, indexing from 1 (like in CASCADE)
+*/
+ //==========================================================================
+ interface AttributeSequenceOfInteger : GenericAttribute
+ {
+/*!
+ Initialization of the attribute with initial data.
+ \param other Initially assigned sequence of integer numbers.
+*/
+ void Assign (in LongSeq other);
+/*!
+ Returns the sequence of integer numbers stored in the Attribute.
+*/
+ LongSeq CorbaSequence();
+/*!
+ Adds to the end of the sequence an integer number.
+ \param value An integer number added to the sequence.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Add (in long value);
+/*!
+ Removes an integer number with a definite index
+ from the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove(in long index);
+/*!
+ Substitutes an integer number with a definite index for another integer number.
+*/
+ void ChangeValue(in long index, in long value);
+/*!
+ Returns an integer number with a definite index
+ in the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value(in short index);
+/*!
+ Returns the length of the sequence of integer numbers stored in the Attribute.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ long Length();
+ };
+
+ //==========================================================================
+/*! \brief Name attribute
+
+ This attribute stores a string value, which corresponds to the name of the %SObject
+ or to the name of corresponding object.
+*/
+ //==========================================================================
+
+ interface AttributeName : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief Comment attribute
+
+ This attribute stores a string value containing supplementary information about
+ the %SObject. In particular it contains the data type of the %SComponent.
+*/
+ //==========================================================================
+ interface AttributeComment : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+ //==========================================================================
+/*! \brief IOR attribute
+
+ This attribute stores a string value identifying a runtime object.In particular
+ it contains CORBA Interoperable Object Reference.
+*/
+ //==========================================================================
+ interface AttributeIOR : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief Persistent reference attribute
+
+ This attribute stores a persistent identifier of the object.
+*/
+ //==========================================================================
+ interface AttributePersistentRef : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+ //Below the list of presentation attributes for display study tree in browser
+ //==========================================================================
+
+
+ //==========================================================================
+/*! \brief Drawable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item associated to SObject is created/displayed if TRUE.
+*/
+ //==========================================================================
+ interface AttributeDrawable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsDrawable();
+/*!
+Sets the items to be drawable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
+<BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetDrawable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Selectable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ The item is selectable by %SALOME selection mechanism if TRUE.
+*/
+ //==========================================================================
+ interface AttributeSelectable : GenericAttribute
+ {
+/*!
+ Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsSelectable();
+/*!
+Sets the items to be selectable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
+<BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetSelectable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Expandable flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be expandable even if it has no children if value is TRUE. If value is FALSE
+ expandable only if it has children.
+*/
+ //==========================================================================
+ interface AttributeExpandable : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is expandable even when it has no children.
+<BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsExpandable();
+/*!
+ Sets this item to be expandable even if it has no children if <VAR>value</VAR> is TRUE, and to be
+ expandable only if it has children if <VAR>value</VAR> is FALSE (the default).
+<BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetExpandable(in boolean value);
+ };
+
+ //==========================================================================
+/*! \brief Opened flag Attribute.
+
+ This is a presentation attribute necessary for display of the study tree in the browser.
+ It sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children
+ are not visible) if bool is FALSE.
+*/
+ //==========================================================================
+ interface AttributeOpened : GenericAttribute
+ {
+/*!
+ Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.
+<BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ boolean IsOpened();
+/*!
+ Sets this item to be open (its children are visible) if <VAR>value</VAR> is TRUE, and to be closed
+(its children are not visible) if <VAR>value</VAR> is FALSE.
+<BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetOpened(in boolean value);
+ };
+ //==========================================================================
+/*! \brief TextColorAttribute.
+
+ This attribute sets the color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextColor : GenericAttribute
+ {
+/*!
+ Returns the color of an item.
+<BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Color TextColor();
+/*!
+ Sets the color of an item.
+<BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetTextColor(in Color value);
+ };
+
+ //==========================================================================
+ /*! \brief TextHighlightColorAttribute.
+
+ This attribute sets the highlight color of an item.
+*/
+ //==========================================================================
+ interface AttributeTextHighlightColor : GenericAttribute
+ {
+/*!
+ Returns the highlight color of an item.
+<BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ Color TextHighlightColor();
+/*!
+ Sets the highlight color of an item.
+<BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetTextHighlightColor(in Color value);
+ };
+ //==========================================================================
+/*! \brief PixMapAttribute.
+
+ This attribute stores an icon which is put before the name of an item.
+*/
+ //==========================================================================
+ interface AttributePixMap : GenericAttribute
+ {
+/*!
+ Returns True if there is an icon before the name of the item.
+*/
+ boolean HasPixMap();
+/*!
+ Returns the name of the icon.
+<BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ string GetPixMap();
+/*!
+ Sets the name of the icon.
+<BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void SetPixMap(in string value);
+ };
+
+ //==========================================================================
+/*! \brief TreeNodeAttribute.
+
+ A set of these attributes on the %SObjects of the %study forms an inner auxiliary
+ tree whith its own structure and identifier. The quantity of such trees with different
+ identifiers can be arbitrary.
+<BR><VAR>See also <A href=exemple/Example18.html> an example </A> of usage of the methods of this interface in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+ interface AttributeTreeNode : GenericAttribute
+ {
+/*!
+ Sets the father TreeNode to this TreeNode.
+*/
+ void SetFather(in AttributeTreeNode value);
+/*!
+ Returns True if there is the father TreeNode of this TreeNode.
+*/
+ boolean HasFather();
+/*!
+ Returns the father Treenode of this TreeNode.
+*/
+ AttributeTreeNode GetFather();
+/*!
+ Sets the previous brother TreeNode to this treeNode.
+*/
+ void SetPrevious(in AttributeTreeNode value);
+/*!
+ Returns True if there is the previous brother TreeNode of this TreeNode.
+*/
+ boolean HasPrevious();
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetPrevious();
+/*!
+ Sets the next brother TreeNode to this treeNode.
+*/
+ void SetNext(in AttributeTreeNode value);
+/*!
+ Returns True if there is the next brother TreeNode of this TreeNode.
+*/
+ boolean HasNext();
+/*!
+ Returns the previous brother TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetNext();
+/*!
+ Sets the first child TreeNode to this treeNode.
+*/
+ void SetFirst(in AttributeTreeNode value);
+/*!
+ Returns True if there is the first child TreeNode of this TreeNode.
+*/
+ boolean HasFirst();
+/*!
+ Returns the first child TreeNode of this TreeNode.
+*/
+ AttributeTreeNode GetFirst();
+/*!
+ Sets ID of the tree. TreeNodes of one tree have the same ID.
+*/
+ void SetTreeID(in string value);
+/*!
+ Gets ID of the tree.
+*/
+ string GetTreeID();
+
+/*!
+ Adds a child TreeNode to the end of the list of children of this Treenode.
+*/
+ void Append(in AttributeTreeNode value);
+/*!
+ Adds a child TreeNode to the beginning of the list of children of this Treenode.
+
+*/
+ void Prepend(in AttributeTreeNode value);
+/*!
+ Adds a brother TreeNode before this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertBefore(in AttributeTreeNode value);
+/*!
+ Adds a brother TreeNode after this Treenode.
+ In this case the both TreeNodes will belong to the same father.
+*/
+ void InsertAfter(in AttributeTreeNode value);
+/*!
+ Deletes a TreeNode.
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove();
+
+/*!
+ Returns the depth of the TreeNode in the
+ structure, it means the number of fathers of the given TreeNode.
+ (i.e.: the depth of the root TreeNode is 0).
+*/
+ long Depth();
+/*!
+ Returns True if it is a root TreeNode.
+*/
+ boolean IsRoot();
+/*!
+ Returns True if this TreeNode is a descendant of the TreeNode.
+*/
+ boolean IsDescendant(in AttributeTreeNode value);
+/*!
+ Returns True if this TreeNode is the father of the TreeNode.
+*/
+ boolean IsFather(in AttributeTreeNode value);
+/*!
+ Returns True if this TreeNode is a child of the TreeNode.
+*/
+ boolean IsChild(in AttributeTreeNode value);
+/*!
+ Returns ID of the according %SObject.
+*/
+ string Label();
+ };
+ //==========================================================================
+/*! \brief LocalID attribute
+
+ Attribute describing the link between a %SObject and a local object in the component.
+*/
+ //==========================================================================
+ interface AttributeLocalID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ long Value();
+/*!
+ Sets the value of this attribute.
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in long value);
+ };
+
+ //==========================================================================
+/*! \brief Attribute storing GUID
+
+ Attribute allowing to store GUID
+*/
+ //==========================================================================
+ interface AttributeUserID : GenericAttribute
+ {
+/*!
+ Returns the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ string Value();
+/*!
+ Sets the value of this attribute
+<BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+ void SetValue(in string value);
+ };
+
+ //==========================================================================
+/*! \brief %AttributeTarget iterface
+
+ This attribute stores the list of all %SObjects that refer
+ to this %SObject. This attribute is used for inner purposes of the application.
+ It is also needed for optimization.
+*/
+ //==========================================================================
+
+ interface AttributeTarget : GenericAttribute
+ {
+/*!
+ Adds a %SObject to the list of %SObjects which refer to this %SObject.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Add(in SObject anObject);
+/*!
+ Returns the list of %SObjects which refer to this %SObject.
+*/
+ SALOMEDS::Study::ListOfSObject Get();
+/*!
+ Deletes a %SObject from the list of %SObjects which refer to this %SObject.
+
+<BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+
+*/
+ void Remove(in SObject anObject);
+ };
+ //==========================================================================
+ /*! \brief %AttributeTableOfInteger interface
+
+ This attribute allows to store a table of integers (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfInteger : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in LongSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ LongSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in LongSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ LongSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in long theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ long GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+ //==========================================================================
+/*! \brief %AttributeTableOfReal interface
+
+ This attribute allows to store a table of reals (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfReal : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in DoubleSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ DoubleSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in DoubleSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ DoubleSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in double theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ double GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+
+
+ //==========================================================================
+/*! \brief %AttributeTableOfString interface
+
+ This attribute allows to store a table of strings (indexing from 1 like in CASCADE)
+ and string titles of this table, of each row, of each column.
+<BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeTableOfString : GenericAttribute
+ {
+/*!
+ This exception is raised when an incorrect index is passed as parameter.
+*/
+ exception IncorrectIndex {};
+/*!
+ This exception is raised when an incorrect length of the argument is passed as parameter.
+*/
+ exception IncorrectArgumentLength {};
+
+ // titles: for table, for each row, for each column
+/*!
+ Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+ Returns the title of the table.
+*/
+ string GetTitle();
+/*!
+ Sets the title of a row with a definite index.
+*/
+ void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all rows of the table.
+*/
+ void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all rows of the table.
+*/
+ StringSeq GetRowTitles();
+/*!
+ Sets the title of a column with a definite index.
+*/
+ void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
+/*!
+ Sets the titles for all columns of the table.
+*/
+ void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+/*!
+ Returns the titles of all columns of the table.
+*/
+ StringSeq GetColumnTitles();
+
+ //Rows units
+/*!
+ Sets the unit of a row with a definite index.
+*/
+ void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
+/*!
+ Sets the units for all rows of the table.
+*/
+ void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
+/*!
+ Returns the units of all rows of the table.
+*/
+ StringSeq GetRowUnits();
+
+ // table information
+/*!
+ Returns the number of rows of the table.
+*/
+ long GetNbRows();
+/*!
+ Returns the number of columns of the table.
+*/
+ long GetNbColumns();
+
+ // operations with rows
+/*!
+ Adds a row to the end of the table.
+*/
+ void AddRow(in StringSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the row.
+*/
+ void SetRow(in long theRow, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the row of the table.
+*/
+ StringSeq GetRow(in long theRow) raises(IncorrectIndex);
+
+ // operations with columns
+/*!
+ Adds a column to the end of the table.
+*/
+ void AddColumn(in StringSeq theData) raises(IncorrectArgumentLength);
+/*!
+ Sets the values of all elements of the column.
+*/
+ void SetColumn(in long theColumn, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
+/*!
+ Returns the column of the table.
+*/
+ StringSeq GetColumn(in long theColumn) raises(IncorrectIndex);
+
+ // operations with elements
+/*!
+ Puts a value in the table.
+ \param theRow The row, where the value will be placed.
+ \param theColumn The column, where the value will be placed.
+*/
+ void PutValue(in string theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
+/*!
+ Returns True if there is a value in the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ boolean HasValue(in long theRow, in long theColumn);
+/*!
+ Returns the value from the table.
+ \param theRow The row containing the value
+ \param theColumn The column containing the value
+*/
+ string GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
+
+/*!
+ Sets the max number of colums in the table.
+ \note It'd better to set it before filling the table.
+*/
+ void SetNbColumns(in long theNbColumns);
+
+/*!
+ Returns the indices of the row where the values are defined.
+*/
+ LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
+ // operations with files
+/*!
+ Reads a table from a file.
+*/
+ boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
+/*!
+ Saves a table into a file.
+*/
+ SALOMEDS::TMPFile SaveToFile();
+ };
+
+
+ //==========================================================================
+/*! \brief %AttributeStudyProperties interface
+
+ This attribute allows to store study properties: user name, creation date, creation
+ mode, modified flag, locked flag.
+<BR><VAR>See also <A href=exemple/Example20.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
+
+*/
+ //==========================================================================
+
+ interface AttributeStudyProperties : GenericAttribute
+ {
+/*!
+ Sets the name of the author of the %Study
+*/
+ void SetUserName(in string theName);
+/*!
+ Returns the name of the user of the %Study.
+ \note <BR>It returns a null string, if user name is not set
+*/
+ string GetUserName();
+/*!
+ Sets creation date of the %Study.
+*/
+ void SetCreationDate(in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+/*!
+ Returns creation date of the %Study and True if creation date is set.
+*/
+ boolean GetCreationDate(out long theMinute, out long theHour, out long theDay, out long theMonth, out long theYear);
+/*!
+ Sets creation mode of the %Study.
+ \note <BR>Creation mode must be: "from scratch" or "copy from".
+*/
+ void SetCreationMode(in string theMode);
+/*!
+ Returns creation mode: "from scratch", "copy from", or null string
+ if creation mode is not set
+*/
+ string GetCreationMode();
+/*!
+ Sets the number of transactions executed after the last saving of the document.
+*/
+ void SetModified(in long theModified);
+/*!
+ Returns True, if the document has been modified and not saved.
+*/
+ boolean IsModified();
+/*!
+ Returns the number of transactions executed after the last saving of the document.
+*/
+ long GetModified();
+/*!
+ Sets the document locked for modifications if <VAR>theLocked</VAR> is True.
+*/
+ void SetLocked(in boolean theLocked);
+/*!
+ Returns True if the document is locked for modifications.
+*/
+ boolean IsLocked();
+/*!
+ Appends modification parameters to the modifications list.
+*/
+ void SetModification(in string theName, in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
+/*!
+ Returns a list of mosdifiers user names, modification dates.
+ /note <BR>If <VAR>theWithCreator</VAR> is True, then the output list will also contain the name of the author and the date of creation.
+*/
+ void GetModificationsList(out StringSeq theNames, out LongSeq theMinutes, out LongSeq theHours, out LongSeq theDays, out LongSeq theMonths, out LongSeq theYears, in boolean theWithCreator);
+ };
+ //==========================================================================
+/*! \brief %AttributePythonObject interface
+
+ Attribute allowing to store pyton objects as a sequence of chars.
+*/
+ //==========================================================================
+
+ interface AttributePythonObject : GenericAttribute
+ {
+/*!
+ Sets in the attribute a Python object converted into a sequence of chars.
+ \param theSequence A sequence of chars.
+ \param IsScript Defines (if True) whether this sequence of chars is a Python script.
+*/
+ void SetObject(in string theSequence, in boolean IsScript);
+/*!
+ Returns a Python object stored in the attribute as a sequence of chars.
+*/
+ string GetObject();
+/*!
+ Returns True if the sequence of bytes stored in the attribute corresponds
+ to a Python script.
+*/
+ boolean IsScript();
+ };
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Component.idl
+// Author : Paul RASCLE, EDF
+// $Header: /dn05/salome/CVS/SALOME_ROOT/idl/SALOME_Component.idl
+
+#ifndef _SALOME_COMPONENT_IDL_
+#define _SALOME_COMPONENT_IDL_
+/*! \ingroup Kernel
+
+This is a package of interfaces used for connecting new components to %SALOME application. It also contains a set of interfaces used
+for management of %MED component in %SALOME application.
+*/
+module Engines
+{
+ interface Component ;
+
+/*! \brief Interface of the %Container
+
+ This interface defines the process of loading and registration
+ of new components in SALOME application
+*/
+ interface Container
+ {
+/*!
+ Initializes the %container with a definite name.
+*/
+ Container start_impl( in string ContainerName ) ;
+
+/*!
+ Loads into the container a new component, registers it and starts it's CORBA servant.
+ \param nameToRegister Name of the component which will be registered in Registry (or Name Service)
+ \param componentName Name of the constructed library of the %component
+*/
+ Component load_impl(in string nameToRegister, in string componentName);
+
+/*!
+ Stops the component servant, and deletes all related objects
+*/
+ void remove_impl(in Component component_i);
+
+/*!
+ Discharges all components from the container.
+*/
+ void finalize_removal() ;
+/*!
+ Determines whether the server has been loaded or not.
+*/
+
+ void ping();
+/*!
+ Name of the %container
+*/
+ readonly attribute string name ;
+/*!
+ Name of the machine containing this container (location of the container).
+*/
+ readonly attribute string machineName ;
+/*!
+ Returns True if the %container has been killed
+*/
+ boolean Kill_impl() ;
+ };
+/*! \brief Interface of the %component
+
+ This interface is used for interaction between the %container and the %component and between
+ the components inside the container.
+*/
+ interface Component
+ {
+/*!
+ The name of the instance of the %Component
+*/
+ readonly attribute string instanceName ;
+/*!
+ The name of the interface of the %Component
+*/
+ readonly attribute string interfaceName ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+/*!
+ Deactivates the %Component.
+*/
+ void destroy() ;
+/*!
+ Returns the container that the %Component refers to.
+*/
+ Container GetContainerRef() ;
+/*!
+ This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node.
+*/
+ void Names( in string aGraphName , in string aNodeName ) ;
+/*!
+ Returns True if the %Component has been killed.
+*/
+ boolean Kill_impl() ;
+/*!
+ Returns True if the activity of the %Component has been stopped. (It's action can't be resumed)
+*/
+ boolean Stop_impl() ;
+/*!
+ Returns True if the activity of the %Component has been suspended. (It's action can be resumed)
+*/
+ boolean Suspend_impl() ;
+/*!
+ Returns True if the activity of the %Component has been resumed.
+*/
+ boolean Resume_impl() ;
+/*!
+ Returns the Cpu used (long does not run with python !...)
+*/
+ long CpuUsed_impl() ;
+ } ;
+} ;
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_DataTypeCatalog.idl
+// Author : Estelle Deville, Paul Rascle
+// $Header$
+
+module SALOME_DataTypeCatalog{
+// Type definitions
+
+// List of Data Type Names
+ typedef sequence<string> ListOfDataTypeName ;
+
+ // Exception thrown if a DataType is not found in the catalog
+ exception NotFound {};
+//--------------------------------------------------------------------------
+// Interfaces
+
+// Catalog interface :
+// methods to :
+// - obtain the data type names of the catalog
+// - test the compatibility between two type names
+interface DataCatalog
+{
+ ListOfDataTypeName GetDataTypeList() ;
+ boolean isDerivedFrom(in string type_in, in string type_out) raises(NotFound);
+ string GetDataInterfaceRead(in string type) raises(NotFound);
+ string GetDataInterfaceWrite(in string type)raises(NotFound);
+ ListOfDataTypeName GetDataTypeParents(in string type) raises(NotFound);
+} ;
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Exception.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+/*! \file SALOME_Exception.idl This file contains the objects defining the main exception used
+in %SALOME application.
+*/
+#ifndef _SALOME_EXCEPTION_IDL_
+#define _SALOME_EXCEPTION_IDL_
+
+/*!
+Module SALOME regroups all idl definitions for SALOME Kernel
+*/
+
+module SALOME
+{
+/*!
+This enumeration contains the elements indicating the type of the exception.
+*/
+ enum ExceptionType
+ {
+ COMM, /*!< Communication problem */
+ BAD_PARAM, /*!< Bad User parameters */
+ INTERNAL_ERROR /*!< SALOME Bug, irrecoverable */
+ };
+/*!
+This struct contains a set of fields defining the structure of the exception.
+*/
+ struct ExceptionStruct
+ {
+ ExceptionType type; /*!<Type of the exception.*/
+ string text; /*!<Message which is shown when the exception is raised.*/
+ string sourceFile; /*!<The source file where the exception is raised.*/
+ unsigned long lineNumber; /*!<Number of the line of the source file where the exception is raised.*/
+ };
+/*!
+The main exception in %SALOME application.
+*/
+ exception SALOME_Exception
+ {
+ ExceptionStruct details;
+ };
+
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_ModuleCatalog.idl
+// Author : Estelle Deville
+// $Header$
+
+/*! \file SALOME_ModuleCatalog.idl This file conatins a set of interfaces used for
+ creation of the catalog of components in %SALOME application
+*/
+
+/*! \ingroup Kernel
+The main package of interfaces used for creation of the module catalog in %SALOME application.
+*/
+module SALOME_ModuleCatalog
+{
+ // Type Definitions
+/*!
+This enumeration contains a set of definitions of %SALOME modules.
+*/
+ enum ComponentType { GEOM, /*!<Module %GEOM */
+ MESH, /*!<Module %MESH */
+ Med, /*!<Module %Med*/
+ SOLVER, /*!<Module of %SOLVER type */
+ DATA, /*!<Module %DATA */
+ VISU, /*!<Module %VISU */
+ SUPERV, /*!<Module %SUPERVISION */
+ OTHER /*!<Any other type of module */
+ } ;
+/*!
+This struct contains fields defining the parameters of the services.
+*/
+
+ struct ServicesParameter
+ {
+ string Parametertype; /*!<Type of the parameter.*/
+ string Parametername; /*!<Name of the parameter.*/
+ } ;
+
+ typedef sequence<ServicesParameter> ListOfServicesParameter;
+/*!
+This struct contains fields completely defining each service.
+*/
+
+ struct Service
+ {
+ string ServiceName; /*!<Name of the service.*/
+ ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
+ ListOfServicesParameter ServiceoutParameter; /*!< List of input parameters of the services.*/
+ boolean Servicebydefault; /*!<True if the service is taken with its defult fields.*/
+ } ;
+/*!
+List of services of the interface.
+*/
+ typedef sequence<Service> ListOfInterfaceService;
+/*!
+List of services.
+*/
+ typedef sequence<string> ListOfServices ;
+/*!
+This struct contains fields defining each interface.
+*/
+ struct DefinitionInterface
+ {
+ string interfacename ; /*!<Name of the interface.*/
+ ListOfInterfaceService interfaceservicelist ; /*!<List of services of the interface.*/
+ } ;
+/*!
+List of interface definitions.
+*/
+ typedef sequence<DefinitionInterface> ListOfDefInterface ;
+/*!
+List of interfaces.
+*/
+ typedef sequence<string> ListOfInterfaces ;
+/*!
+List of names of components.
+*/
+ typedef sequence<string> ListOfComponents ;
+/*!
+List of names of computers.
+*/
+ typedef sequence<string> ListOfComputers ;
+/*!
+This struct contains GUI elements used for representation of the module in %IAPP component.
+*/
+ struct IAPP_Affich
+ {
+ string modulename; /*!<Name of the module.*/
+ string moduleicone; /*!<Icone representing the module.*/
+ };
+/*!
+List of pair GUI elements (component name, component icone)
+ used for representation of the module in %IAPP component.
+*/
+ typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
+
+/*!
+ This exception is raised when a %component, a %service or a % pathPrefix is not found.
+*/
+ exception NotFound
+ {
+ string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
+ } ;
+
+ interface Acomponent
+ {
+ // GetInterfaceList : operation to get a list of the interfaces name of
+ // a component
+ /*!
+ Gets a list of names of interfaces of the component
+ \return a list of interfaces of the component
+ */
+ ListOfInterfaces GetInterfaceList() ;
+
+ // GetInterface : operation to get one interface of a component
+
+ /*!
+ Gets a definite interface of the component
+ \note <BR>If the specified interface doesn't exist, Notfound exception is thrown
+ \param interfacename Name of the interface
+ \return Required interface
+ */
+ DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
+
+ // GetServiceList : operation to get a list of the services name of
+ // an interface of a component
+ /*!
+ Gets a list of names of services of a definite interface belonging to the component.
+ \note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return List of services of the required interface
+ */
+ ListOfServices GetServiceList(in string interfacename) raises(NotFound);
+
+
+ // GetService : operation to get one service of an interface of a component
+
+ /*!
+ Gets a definite service of an interface of the component.
+ \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \param servicename Name of the service
+ \return Required service
+ */
+
+ Service GetService(in string interfacename,
+ in string servicename) raises(NotFound);
+
+ // GetDefaultService : operation to get the default service
+ // of an interface of a component
+/*!
+ Gets the default service of an interface of the component.
+ \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
+ \param interfacename Name of the interface
+ \return Required service
+ */
+
+ Service GetDefaultService(in string interfacename) raises(NotFound);
+
+ // GetPathPrefix : operation to get the PathPrefix of a computer
+ /*!
+ Gets the prefix path of the computer containing the %component.
+ \note <BR>If the required computer doesn't exist, Notfound exception is thrown
+ \param machinename Name of the machine
+ \return Prefix path
+ */
+
+ string GetPathPrefix(in string machinename) raises(NotFound);
+
+/*!
+ Sets/gets the constraint affected to the component
+ (to be resolved by LifeCycle for the computer choice)
+*/
+ readonly attribute string constraint ;
+
+/*!
+Sets/gets the name of the component
+*/
+ readonly attribute string componentname;
+
+/*!
+Defines whether the component can be multistudy or not
+*/
+ readonly attribute boolean multistudy;
+
+/*!
+Defines the type of the component
+*/
+ readonly attribute ComponentType component_type ;
+
+/*!
+Sets/gets the icone of the component (for IAPP)
+*/
+ readonly attribute string component_icone;
+ } ;
+/*! \brief %Module catalog interface
+
+This interface is used for creation of the module catalog in %SALOME application.
+*/
+ interface ModuleCatalog
+ {
+ void ping();
+
+/*!
+ Gets a list of names of computers of the catalog
+*/
+ ListOfComputers GetComputerList();
+
+/*!
+Gets the %PathPrefix of a computer
+*/
+ string GetPathPrefix(in string machinename) raises(NotFound);
+/*!
+ Gets a list of names of components of the catalog
+*/
+ ListOfComponents GetComponentList();
+/*!
+Gets a list of pair GUI elements (component name, component icone)
+used for representation of the module in %IAPP component.
+*/
+
+ ListOfIAPP_Affich GetComponentIconeList();
+/*!
+Gets a list of names of components of a particular type, which belong to this catalog.
+*/
+ // GetComponentList : operation to get a list of the components name of
+ // a particular type of the catalog
+ ListOfComponents GetTypedComponentList(in ComponentType _component_type);
+
+/*!
+Gets one component of the catalog.
+*/
+ Acomponent GetComponent(in string componentname) raises(NotFound);
+ } ;
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Registry.idl
+
+# ifndef __registry_idl__
+# define __registry_idl__
+
+module Registry
+{
+ struct Infos
+ {
+ string name;
+ long pid;
+ string machine;
+ string adip;
+ long uid;
+ string pwname;
+ long tc_start;
+ long tc_hello;
+ long tc_end;
+ long difftime;
+ string cdir;
+ long status;
+ string ior; // client
+ };
+
+ typedef sequence<Infos> AllInfos;
+
+ interface Components
+ {
+ void ping();
+ unsigned long add ( in Infos lesInfos ) ;
+ void remove ( in unsigned long id ) ;
+ unsigned long size() ;
+ AllInfos getall () ;
+ AllInfos history () ;
+ oneway void end() ;
+ oneway void hello( in unsigned long id ) ;
+ } ;
+} ;
+
+# endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_RessourcesCatalog.idl
+// Author : Estelle Deville
+// $Header$
+
+module SALOME_RessourcesCatalog{
+ // Type Definitions
+
+ //Proc_info : information about a processor
+ struct proc_info{
+ long number;
+ string model_name;
+ float cpu_mhz;
+ float cache_size;
+ };
+
+ typedef sequence<proc_info> ListOfProc;
+
+ //Computer_info : information about a computer
+ // Os and informations about processors
+ struct computer_info{
+ string name;
+ string OS;
+ string OS_version;
+ ListOfProc procs;
+ };
+
+ enum ContainerType {Cpp, python, NP};
+ typedef sequence<ContainerType> ListOfContainerType;
+
+ typedef sequence<string> ListOfComputer;
+
+ // exception thrown if a computer is not found in the catalog
+
+ exception NotFound {};
+
+ //------------------------------------------------------------------
+ //Interface
+ interface RessourcesCatalog {
+ ListOfComputer GetComputerList();
+ ListOfContainerType GetContainerTypeList (in string computer) raises(NotFound);
+ computer_info GetComputerInfo(in string computer) raises(NotFound);
+ };
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_Session.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#include "SALOME_Component.idl"
+/*! \defgroup Kernel SALOME KERNEL module
+*/
+
+/*! \ingroup Kernel
+
+ This package contains interfaces used for management of the session in %SALOME application.
+*/
+module SALOME
+{
+/*! \brief State of the session
+
+ This enumeration contains values defining the state of the session
+
+*/
+ enum SessionState {asleep, running} ;
+
+/*! \brief %Session State and Statistics
+
+
+ This struct contains a field list with general information about the session
+*/
+
+ struct StatSession
+ {
+/*! \brief State of the session
+
+ It can be:
+ * -# asleep : no running study
+ * -# running : one or more running studies
+*/
+ SessionState state ;
+/*! Number of running studies
+*/
+ short runningStudies ;
+/*! It is True if GUI is active in the session
+*/
+ boolean activeGUI ;
+ } ;
+/*! \brief Interface of the session
+
+ The %session Server launches and stops GUI (Graphical User Interface).
+ The %session can be active without GUI (It can contain one or more running studies)
+*/
+
+ interface Session
+ {
+/*!
+ This exception is raised when trying to stop the %session with active GUI
+*/
+ exception GUIActive {} ;
+/*!
+ This exception is raised when trying to stop the %session with a number of running studies.
+*/
+ exception RunningStudies {} ;
+
+/*!
+ Launches GUI in the session
+*/
+ void GetInterface();
+ Engines::Component GetVisuGen();
+
+/*!
+ Stops the %Session (It must be idle)
+*/
+ void StopSession() raises(GUIActive, RunningStudies) ;
+
+/*!
+ Gets Session State
+*/
+ StatSession GetStatSession() ;
+/*!
+ Determines whether the server has already been loaded or not.
+*/
+ void ping();
+ } ;
+
+} ;
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_TestComponent.idl
+// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
+// $Header$
+
+#include "SALOME_Component.idl"
+
+module Engines
+{
+
+ interface TestComponent : Component
+ {
+ string Coucou(in long L);
+ };
+
+};
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_BasicHypothesis.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_BASICHYPOTHESIS_IDL_
+#define _SMESH_BASICHYPOTHESIS_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+
+
+module SMESH
+{
+ interface SMESH_LocalLength : SMESH_Hypothesis
+ {
+ void SetLength(in double length)
+ raises (SALOME::SALOME_Exception);
+ double GetLength();
+ };
+
+ interface SMESH_NumberOfSegments : SMESH_Hypothesis
+ {
+ void SetNumberOfSegments(in long segmentsNumber)
+ raises (SALOME::SALOME_Exception);
+ long GetNumberOfSegments();
+ void SetScaleFactor(in double scaleFactor)
+ raises (SALOME::SALOME_Exception);
+ double GetScaleFactor();
+ };
+
+ interface SMESH_MaxElementArea : SMESH_Hypothesis
+ {
+ void SetMaxElementArea(in double area)
+ raises (SALOME::SALOME_Exception);
+ double GetMaxElementArea();
+ };
+
+ interface SMESH_MaxElementVolume : SMESH_Hypothesis
+ {
+ void SetMaxElementVolume(in double volume)
+ raises (SALOME::SALOME_Exception);
+ double GetMaxElementVolume();
+ };
+
+ interface SMESH_Regular_1D : SMESH_1D_Algo
+ {
+ };
+
+ interface SMESH_MEFISTO_2D : SMESH_2D_Algo
+ {
+ };
+
+ interface SMESH_Quadrangle_2D : SMESH_2D_Algo
+ {
+ };
+
+ interface SMESH_Hexa_3D : SMESH_3D_Algo
+ {
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Gen.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_GEN_IDL_
+#define _SMESH_GEN_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+
+#include "GEOM_Gen.idl"
+#include "GEOM_Shape.idl"
+
+#include "SMESH_Mesh.idl"
+#include "SMESH_Hypothesis.idl"
+
+module SMESH
+{
+ typedef sequence<GEOM::GEOM_Shape> shape_array;
+
+ interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
+ {
+ /*!
+ * Create an hypothesis that can be shared by differents parts of the mesh.
+ * An hypothesis is either:
+ * - a method used to generate or modify a part of the mesh (algorithm).
+ * - a parameter or a law used by an algorithm.
+ * Algorithms are 1D, 2D or 3D.
+ */
+ SMESH_Hypothesis CreateHypothesis( in string anHyp,
+ in long studyId)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a Mesh object, given a geometry shape.
+ * Mesh is created empty (no points, no elements).
+ * Shape is explored via GEOM_Client to create local copies.
+ * of TopoDS_Shapes and bind CORBA references of shape & subshapes
+ * with TopoDS_Shapes
+ */
+ SMESH_Mesh Init(in GEOM::GEOM_Gen geomEngine,
+ in long studyId,
+ in GEOM::GEOM_Shape aShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a Mesh object, without a geometry shape reference
+ */
+// SMESH_Mesh NewEmpty(in GEOM::GEOM_Gen geomEngine,
+// in long studyId)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Mesh a subShape.
+ * First, verify list of hypothesis associated with the subShape,
+ * return NOK if hypothesis are not sufficient
+ */
+ boolean Compute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+
+ boolean IsReadyToCompute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetSubShapesId(in GEOM::GEOM_Gen geomEngine,
+ in long studyId,
+ in GEOM::GEOM_Shape mainShape,
+ in shape_array listOfSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ // long_array GetSubMeshesState(in GEOM::GEOM_Gen geomEngine,
+ // in long studyId,
+ // in shape_array listOfSubShape)
+ // raises (SALOME::SALOME_Exception);
+
+
+ };
+
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Hypothesis.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_HYPOTHESIS_IDL_
+#define _SMESH_HYPOTHESIS_IDL_
+
+#include "SALOME_Exception.idl"
+
+module SMESH
+{
+ interface SMESH_Hypothesis;
+
+ typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
+ typedef sequence<string> ListOfHypothesisName;
+
+ interface SMESH_Hypothesis
+ {
+ /*!
+ * Get the Hypothesis typeName
+ */
+ string GetName();
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+ };
+
+ interface SMESH_Algo : SMESH_Hypothesis
+ {
+ /*!
+ * Get list of hypothesis that can be used with this algorithm
+ */
+ ListOfHypothesisName GetCompatibleHypothesis();
+
+ };
+
+ interface SMESH_1D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+
+ interface SMESH_2D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+
+ interface SMESH_3D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+};
+
+ // -----------------------------------------------------------------
+ // Specific Algorithms in separate idl file
+ // -----------------------------------------------------------------
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Mesh.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_MESH_IDL_
+#define _SMESH_MESH_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+
+#include "GEOM_Shape.idl"
+#include "MED.idl"
+
+module SMESH
+{
+ typedef sequence<double> double_array ;
+ typedef sequence<long> long_array ;
+ typedef sequence<string> string_array ;
+
+ enum log_command
+ {
+ ADD_NODE,
+ ADD_EDGE,
+ ADD_TRIANGLE,
+ ADD_QUADRANGLE,
+ ADD_TETRAHEDRON,
+ ADD_PYRAMID,
+ ADD_PRISM,
+ ADD_HEXAHEDRON,
+ REMOVE_NODE,
+ REMOVE_ELEMENT
+ };
+
+ struct log_block
+ {
+ long commandType;
+ long number;
+ double_array coords;
+ long_array indexes;
+ };
+
+ typedef sequence<log_block> log_array;
+
+ interface SMESH_subMesh;
+ interface SMESH_MeshEditor;
+ interface SMESH_Mesh
+ {
+ /*!
+ * Associate a Shape to a Mesh created with NewEmpty
+ */
+
+// boolean SetMesh(in GEOM::GEOM_Shape aShape)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the subMesh object associated to a subShape. The subMesh object
+ * gives access to nodes and elements IDs.
+ * SubMesh will be used instead of SubShape in a next idl version to
+ * adress a specific subMesh...
+ */
+ SMESH_subMesh GetElementsOnShape(in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a subMesh without reference to a subShape
+ */
+// SMESH_subMesh NewEmpty()
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Add hypothesis to the mesh, under a particular subShape
+ * (or the main shape itself)
+ * The Add method is only used to prepare the build of the mesh and store
+ * the algorithms and associated parameters.
+ * Actual job of mesh the shape is done by MESH_Gen.
+ * @params
+ * - aSubShape : subShape obtained by a shape explode in GEOM
+ * (or main shape)
+ * - anHyp : hypothesis object
+ * @return
+ * - OK if the hypothesis is compatible with the subShape
+ * (and all previous hypothesis on the subShape)
+ * - NOK if the hypothesis is not compatible with the subShape
+ * (or one previous hypothesis on the subShape)
+ * raises exception if hypothesis has not been created
+ */
+ boolean AddHypothesis(in GEOM::GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp)
+ raises (SALOME::SALOME_Exception);
+// boolean AddHypothesis(in SMESH_subMesh aSubMesh, in SMESH_Hypothesis anHyp)
+// raises (SALOME::SALOME_Exception);
+
+
+ /*!
+ * Remove an hypothesis previouly added with AddHypothesis.
+ */
+ boolean RemoveHypothesis(in GEOM::GEOM_Shape aSubShape,
+ in SMESH_Hypothesis anHyp)
+ raises (SALOME::SALOME_Exception);
+// boolean RemoveHypothesis(in SMESH_subMesh aSubMesh,
+// in SMESH_Hypothesis anHyp)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the list of hypothesis added on a subShape
+ */
+ ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+// ListOfHypothesis GetHypothesisList(in SMESH_subMesh aSubMesh)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the log of nodes and elements added or removed since previous
+ * clear of the log.
+ * @params
+ * - clearAfterGet : log is emptied after Get (safe if concurrents access)
+ */
+ // string_array GetLog(in boolean clearAfterGet)
+ // raises (SALOME::SALOME_Exception);
+ log_array GetLog(in boolean clearAfterGet)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Clear the log of nodes and elements added or removed since previous
+ * clear. Must be used immediately after GetLog if clearAfterGet is false.
+ */
+ void ClearLog()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+
+ /*!
+ * Get the study Id
+ */
+ long GetStudyId();
+
+ SMESH_MeshEditor GetMeshEditor()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Export Mesh with DAT and MED Formats
+ */
+ void ExportDAT( in string file )
+ raises (SALOME::SALOME_Exception);
+ void ExportMED( in string file )
+ raises (SALOME::SALOME_Exception);
+ void ExportUNV( in string file )
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get MED Mesh
+ */
+ SALOME_MED::MESH GetMEDMesh()
+ raises (SALOME::SALOME_Exception);
+
+ long NbNodes()
+ raises (SALOME::SALOME_Exception);
+
+ long NbEdges()
+ raises (SALOME::SALOME_Exception);
+
+ long NbFaces()
+ raises (SALOME::SALOME_Exception);
+
+ long NbTriangles()
+ raises (SALOME::SALOME_Exception);
+
+ long NbQuadrangles()
+ raises (SALOME::SALOME_Exception);
+
+ long NbVolumes()
+ raises (SALOME::SALOME_Exception);
+
+ long NbTetras()
+ raises (SALOME::SALOME_Exception);
+
+ long NbHexas()
+ raises (SALOME::SALOME_Exception);
+
+ long NbSubMesh()
+ raises (SALOME::SALOME_Exception);
+ };
+
+ interface SMESH_subMesh
+ {
+ /*!
+ *
+ */
+ long GetNumberOfElements()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long GetNumberOfNodes()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetElementsId()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetNodesId()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get SMESH_Mesh which stores nodes coordinates & elements definition
+ */
+ SMESH_Mesh GetFather()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+
+ /*!
+ * Get MED subMesh
+ */
+ SALOME_MED::FAMILY GetFamily()
+ raises (SALOME::SALOME_Exception);
+ };
+
+ /*
+ * This interface makes modifications on the Mesh - removing elements and nodes
+ */
+ interface SMESH_MeshEditor {
+
+
+ boolean RemoveElements(in long_array IDsOfElements)
+ raises (SALOME::SALOME_Exception);
+
+ boolean RemoveNodes(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddNode(in double x, in double y, in double z)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddEdge(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddFace(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddVolume(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_BasicHypothesis.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_BASICHYPOTHESIS_IDL_
+#define _SMESH_BASICHYPOTHESIS_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+
+
+module SMESH
+{
+ interface SMESH_LocalLength : SMESH_Hypothesis
+ {
+ void SetLength(in double length)
+ raises (SALOME::SALOME_Exception);
+ double GetLength();
+ };
+
+ interface SMESH_NumberOfSegments : SMESH_Hypothesis
+ {
+ void SetNumberOfSegments(in long segmentsNumber)
+ raises (SALOME::SALOME_Exception);
+ long GetNumberOfSegments();
+ void SetScaleFactor(in double scaleFactor)
+ raises (SALOME::SALOME_Exception);
+ double GetScaleFactor();
+ };
+
+ interface SMESH_MaxElementArea : SMESH_Hypothesis
+ {
+ void SetMaxElementArea(in double area)
+ raises (SALOME::SALOME_Exception);
+ double GetMaxElementArea();
+ };
+
+ interface SMESH_MaxElementVolume : SMESH_Hypothesis
+ {
+ void SetMaxElementVolume(in double volume)
+ raises (SALOME::SALOME_Exception);
+ double GetMaxElementVolume();
+ };
+
+ interface SMESH_Regular_1D : SMESH_1D_Algo
+ {
+ };
+
+ interface SMESH_MEFISTO_2D : SMESH_2D_Algo
+ {
+ };
+
+ interface SMESH_Quadrangle_2D : SMESH_2D_Algo
+ {
+ };
+
+ interface SMESH_Hexa_3D : SMESH_3D_Algo
+ {
+ };
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Gen.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_GEN_IDL_
+#define _SMESH_GEN_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+
+#include "GEOM_Gen.idl"
+#include "GEOM_Shape.idl"
+
+#include "SMESH_Mesh.idl"
+#include "SMESH_Hypothesis.idl"
+
+module SMESH
+{
+ typedef sequence<GEOM::GEOM_Shape> shape_array;
+
+ interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
+ {
+ /*!
+ * Create an hypothesis that can be shared by differents parts of the mesh.
+ * An hypothesis is either:
+ * - a method used to generate or modify a part of the mesh (algorithm).
+ * - a parameter or a law used by an algorithm.
+ * Algorithms are 1D, 2D or 3D.
+ */
+ SMESH_Hypothesis CreateHypothesis( in string anHyp,
+ in long studyId)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a Mesh object, given a geometry shape.
+ * Mesh is created empty (no points, no elements).
+ * Shape is explored via GEOM_Client to create local copies.
+ * of TopoDS_Shapes and bind CORBA references of shape & subshapes
+ * with TopoDS_Shapes
+ */
+ SMESH_Mesh Init(in GEOM::GEOM_Gen geomEngine,
+ in long studyId,
+ in GEOM::GEOM_Shape aShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a Mesh object, without a geometry shape reference
+ */
+// SMESH_Mesh NewEmpty(in GEOM::GEOM_Gen geomEngine,
+// in long studyId)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Mesh a subShape.
+ * First, verify list of hypothesis associated with the subShape,
+ * return NOK if hypothesis are not sufficient
+ */
+ boolean Compute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+
+ boolean IsReadyToCompute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetSubShapesId(in GEOM::GEOM_Gen geomEngine,
+ in long studyId,
+ in GEOM::GEOM_Shape mainShape,
+ in shape_array listOfSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ // long_array GetSubMeshesState(in GEOM::GEOM_Gen geomEngine,
+ // in long studyId,
+ // in shape_array listOfSubShape)
+ // raises (SALOME::SALOME_Exception);
+
+
+ };
+
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Hypothesis.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_HYPOTHESIS_IDL_
+#define _SMESH_HYPOTHESIS_IDL_
+
+#include "SALOME_Exception.idl"
+
+module SMESH
+{
+ interface SMESH_Hypothesis;
+
+ typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
+ typedef sequence<string> ListOfHypothesisName;
+
+ interface SMESH_Hypothesis
+ {
+ /*!
+ * Get the Hypothesis typeName
+ */
+ string GetName();
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+ };
+
+ interface SMESH_Algo : SMESH_Hypothesis
+ {
+ /*!
+ * Get list of hypothesis that can be used with this algorithm
+ */
+ ListOfHypothesisName GetCompatibleHypothesis();
+
+ };
+
+ interface SMESH_1D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+
+ interface SMESH_2D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+
+ interface SMESH_3D_Algo : SMESH_Algo
+ {
+ /*!
+ *
+ */
+ };
+};
+
+ // -----------------------------------------------------------------
+ // Specific Algorithms in separate idl file
+ // -----------------------------------------------------------------
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_Mesh.idl
+// Author : Paul RASCLE, EDF
+// $Header$
+
+#ifndef _SMESH_MESH_IDL_
+#define _SMESH_MESH_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+
+#include "GEOM_Shape.idl"
+#include "MED.idl"
+
+module SMESH
+{
+ typedef sequence<double> double_array ;
+ typedef sequence<long> long_array ;
+ typedef sequence<string> string_array ;
+
+ enum log_command
+ {
+ ADD_NODE,
+ ADD_EDGE,
+ ADD_TRIANGLE,
+ ADD_QUADRANGLE,
+ ADD_TETRAHEDRON,
+ ADD_PYRAMID,
+ ADD_PRISM,
+ ADD_HEXAHEDRON,
+ REMOVE_NODE,
+ REMOVE_ELEMENT
+ };
+
+ struct log_block
+ {
+ long commandType;
+ long number;
+ double_array coords;
+ long_array indexes;
+ };
+
+ typedef sequence<log_block> log_array;
+
+ interface SMESH_subMesh;
+ interface SMESH_MeshEditor;
+ interface SMESH_Mesh
+ {
+ /*!
+ * Associate a Shape to a Mesh created with NewEmpty
+ */
+
+// boolean SetMesh(in GEOM::GEOM_Shape aShape)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the subMesh object associated to a subShape. The subMesh object
+ * gives access to nodes and elements IDs.
+ * SubMesh will be used instead of SubShape in a next idl version to
+ * adress a specific subMesh...
+ */
+ SMESH_subMesh GetElementsOnShape(in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a subMesh without reference to a subShape
+ */
+// SMESH_subMesh NewEmpty()
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Add hypothesis to the mesh, under a particular subShape
+ * (or the main shape itself)
+ * The Add method is only used to prepare the build of the mesh and store
+ * the algorithms and associated parameters.
+ * Actual job of mesh the shape is done by MESH_Gen.
+ * @params
+ * - aSubShape : subShape obtained by a shape explode in GEOM
+ * (or main shape)
+ * - anHyp : hypothesis object
+ * @return
+ * - OK if the hypothesis is compatible with the subShape
+ * (and all previous hypothesis on the subShape)
+ * - NOK if the hypothesis is not compatible with the subShape
+ * (or one previous hypothesis on the subShape)
+ * raises exception if hypothesis has not been created
+ */
+ boolean AddHypothesis(in GEOM::GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp)
+ raises (SALOME::SALOME_Exception);
+// boolean AddHypothesis(in SMESH_subMesh aSubMesh, in SMESH_Hypothesis anHyp)
+// raises (SALOME::SALOME_Exception);
+
+
+ /*!
+ * Remove an hypothesis previouly added with AddHypothesis.
+ */
+ boolean RemoveHypothesis(in GEOM::GEOM_Shape aSubShape,
+ in SMESH_Hypothesis anHyp)
+ raises (SALOME::SALOME_Exception);
+// boolean RemoveHypothesis(in SMESH_subMesh aSubMesh,
+// in SMESH_Hypothesis anHyp)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the list of hypothesis added on a subShape
+ */
+ ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Shape aSubShape)
+ raises (SALOME::SALOME_Exception);
+// ListOfHypothesis GetHypothesisList(in SMESH_subMesh aSubMesh)
+// raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the log of nodes and elements added or removed since previous
+ * clear of the log.
+ * @params
+ * - clearAfterGet : log is emptied after Get (safe if concurrents access)
+ */
+ // string_array GetLog(in boolean clearAfterGet)
+ // raises (SALOME::SALOME_Exception);
+ log_array GetLog(in boolean clearAfterGet)
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Clear the log of nodes and elements added or removed since previous
+ * clear. Must be used immediately after GetLog if clearAfterGet is false.
+ */
+ void ClearLog()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+
+ /*!
+ * Get the study Id
+ */
+ long GetStudyId();
+
+ SMESH_MeshEditor GetMeshEditor()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Export Mesh with DAT and MED Formats
+ */
+ void ExportDAT( in string file )
+ raises (SALOME::SALOME_Exception);
+ void ExportMED( in string file )
+ raises (SALOME::SALOME_Exception);
+ void ExportUNV( in string file )
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get MED Mesh
+ */
+ SALOME_MED::MESH GetMEDMesh()
+ raises (SALOME::SALOME_Exception);
+
+ long NbNodes()
+ raises (SALOME::SALOME_Exception);
+
+ long NbEdges()
+ raises (SALOME::SALOME_Exception);
+
+ long NbFaces()
+ raises (SALOME::SALOME_Exception);
+
+ long NbTriangles()
+ raises (SALOME::SALOME_Exception);
+
+ long NbQuadrangles()
+ raises (SALOME::SALOME_Exception);
+
+ long NbVolumes()
+ raises (SALOME::SALOME_Exception);
+
+ long NbTetras()
+ raises (SALOME::SALOME_Exception);
+
+ long NbHexas()
+ raises (SALOME::SALOME_Exception);
+
+ long NbSubMesh()
+ raises (SALOME::SALOME_Exception);
+ };
+
+ interface SMESH_subMesh
+ {
+ /*!
+ *
+ */
+ long GetNumberOfElements()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long GetNumberOfNodes()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetElementsId()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ *
+ */
+ long_array GetNodesId()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get SMESH_Mesh which stores nodes coordinates & elements definition
+ */
+ SMESH_Mesh GetFather()
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Get the internal Id
+ */
+ long GetId();
+
+ /*!
+ * Get MED subMesh
+ */
+ SALOME_MED::FAMILY GetFamily()
+ raises (SALOME::SALOME_Exception);
+ };
+
+ /*
+ * This interface makes modifications on the Mesh - removing elements and nodes
+ */
+ interface SMESH_MeshEditor {
+
+
+ boolean RemoveElements(in long_array IDsOfElements)
+ raises (SALOME::SALOME_Exception);
+
+ boolean RemoveNodes(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddNode(in double x, in double y, in double z)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddEdge(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddFace(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+
+ boolean AddVolume(in long_array IDsOfNodes)
+ raises (SALOME::SALOME_Exception);
+ };
+};
+
+#endif
-// File: SUPERV.idl
-// Created: Jan 03 2002
-// Author: Jean Rahuel
-// Project: SALOME
-// Copyright : CEA/DEN/DMSS/LGLS
-// $Header:
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERV.idl
+// Author : Jean Rahuel
+// $Header:
/*! \file SUPERV.idl This file contains a set of interfaces of the %SUPERVISION module
*/
*/
long Y() ;
+ long CpuUsed() ;
+
} ;
//////////////
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERV.idl
+// Author : Jean Rahuel
+// $Header:
+
+/*! \file SUPERV.idl This file contains a set of interfaces of the %SUPERVISION module
+*/
+/*!
+ \defgroup Supervision SALOME SUPERVISION module
+*/
+#ifndef __SUPERV_IDL__
+#define __SUPERV_IDL__
+
+#include "SALOME_ModuleCatalog.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+/*! \ingroup Supervision
+ The main package of interfaces of %SUPERVISION module
+*/
+module SUPERV {
+
+/*!
+This enumeration contains a set of elements defining the type of the port.
+\note <BR>In general, ports represent <STRONG>input or output parameters</STRONG> of the functions,
+implemented in different kinds of nodes of the graph.
+*/
+ enum KindOfPort { UndefinedParameter , ServiceParameter , GateParameter ,
+ InLineParameter , LoopParameter , SwitchParameter ,
+ EndSwitchParameter , GOTOParameter } ;
+
+/*!
+This enumeration contains a set of elements defining the type of the node.
+*/
+ enum KindOfNode { FactoryNode , DataFlowNode , ComputingNode ,
+ InLineNode , LoopNode , EndLoopNode ,
+ SwitchNode , EndSwitchNode , GOTONode , UnknownNode };
+
+/*!
+This struct contains fields defining the date.
+*/
+ struct SDate {
+ short Second;
+ short Minute;
+ short Hour;
+ short Day;
+ short Month;
+ short Year;
+ };
+/*!
+This enumeration contains a set of elements defining the type of operation, which has been performed
+on this node(graph).
+*/
+
+ enum GraphEvent { UndefinedEvent , NoEvent , NewThreadEvent ,
+ WaitingEvent , ReadyEvent ,
+ RunningEvent , DoneEvent , ErroredEvent ,
+ SuspendEvent , ResumeEvent ,
+ KillEvent , StopEvent ,
+ ReRunEvent , ReStartEvent } ;
+
+ // UndefinedState : Non existing Node, Port etc...
+/*!
+This enumeration contains a set of elements defining the current state of the node(graph).
+*/
+
+ enum GraphState { UndefinedState , NoState , EditingState , SuspendState ,
+ WaitingState , ReadyState , SuspendReadyState ,
+ RunningState ,
+ DoneState , ErrorState ,
+ SuspendDoneState , SuspendErroredState ,
+ KillState , StopState ,
+ ReRunState , ReStartState ,
+ NumberOfGraphStates } ;
+
+ typedef sequence<string> ListOfStrings ;
+
+ interface Value ;
+
+ interface Link ;
+
+ typedef sequence<Link> ListOfLinks ;
+
+ interface Port ;
+
+ typedef sequence<Port> ListOfPorts ;
+
+ interface CNode ;
+ interface FNode ;
+ interface INode ;
+ interface GNode ;
+ interface LNode ;
+ interface ELNode ;
+ interface SNode ;
+ interface ESNode ;
+ typedef sequence<CNode> ListOfCNodes ;
+ typedef sequence<FNode> ListOfFNodes ;
+ typedef sequence<INode> ListOfINodes ;
+ typedef sequence<GNode> ListOfGNodes ;
+ typedef sequence<LNode> ListOfLNodes ;
+ typedef sequence<ELNode> ListOfELNodes ;
+ typedef sequence<SNode> ListOfSNodes ;
+ typedef sequence<ESNode> ListOfESNodes ;
+
+ struct ListOfNodes {
+ ListOfCNodes CNodes ;
+ ListOfFNodes FNodes ;
+ ListOfINodes INodes ;
+ ListOfGNodes GNodes ;
+ ListOfLNodes LNodes ;
+ ListOfELNodes ELNodes ;
+ ListOfSNodes SNodes ;
+ ListOfESNodes ESNodes ;
+ } ;
+
+ interface Graph ;
+
+ typedef sequence<Graph> ListOfGraphs ;
+
+ // ToSuspendState : will be Suspended before running if waiting or
+ // will be Suspended while running or
+ // will be Suspended after run
+ // ToSuspendStartState : will be Suspended at the beginning of execution
+ // ToSuspendDoneState : will be Suspended after run
+/*!
+This enumeration contains a set of elements defining the %ControlState of the node.
+The %ControlState gives a possibility to determine the "control actions" which have been done by
+the user (Suspend, SuspendDone, Kill, etc...).
+*/
+ enum ControlState { VoidState , ToSuspendStartState ,
+ ToSuspendState , ToSuspendDoneState ,
+ ToKillState , ToKillDoneState , ToStopState ,
+ NumberOfControlStates } ;
+/*!
+The AutomatonState is an internal state of the automaton of the Executor
+of the %SuperVision %Engine. It is used for inner debugging purposes only.
+*/
+
+ enum AutomatonState { UnKnownState ,
+ DataUndefState ,
+ DataWaitingState ,
+ DataReadyState ,
+ SuspendedReadyState,
+ SuspendedReadyToResumeState ,
+ ResumedReadyState ,
+ KilledReadyState ,
+ StoppedReadyState ,
+ ExecutingState ,
+ SuspendedExecutingState ,
+ ResumedExecutingState ,
+ KilledExecutingState ,
+ StoppedExecutingState ,
+ SuccessedExecutingState ,
+ ErroredExecutingState ,
+ SuspendedSuccessedState ,
+ SuspendedErroredState,
+ ResumedSuccessedState ,
+ ResumedErroredState ,
+ KilledSuccessedState ,
+ KilledErroredState ,
+ StoppedSuccessedState ,
+ StoppedErroredState ,
+ SuccessedState ,
+ ErroredState ,
+ SuspendedState ,
+ KilledState ,
+ StoppedState ,
+ SuspendedSuccessedToReStartState ,
+ SuspendedErroredToReStartState ,
+ ReRunnedState ,
+ ReStartedState ,
+ NumberOfAutomatonStates
+ } ;
+
+
+
+
+
+
+
+
+ ////////////////
+/*! \brief interface %SuperG
+
+This interface contains a set of methods necessary for management of a %graph.
+*/
+ interface SuperG : Engines::Component, SALOMEDS::Driver {
+ ////////////////
+/*!
+ Constructs a graph with possibility to read/edit it
+ \param aGraph %aGraphName or %aGraphXmlFile
+*/
+ SUPERV::Graph Graph(in string aGraph ) ; // aGraphName or aGraphXmlFile
+
+/*!
+ Constructs a read Only graph ( for execution ).
+ \note <BR>In this graph there is also a possibility to update nodes, coordinates of the links,
+ of container names and input data.
+ \param aGraph %aGraphName or %aGraphXmlFile
+*/
+ SUPERV::Graph GraphE(in string aGraph ) ; // aGraphName or aGraphXmlFile
+
+/*!
+Creates a value for %Input method in interface %Node.
+*/
+ SUPERV::Value StringValue( in string aString ) ;
+ SUPERV::Value AnyValue( in any anAny ) ;
+/*!
+ Gets a graph from its %IOR
+*/
+ SUPERV::Graph getGraph(in string ior); // get Graph from is IOR
+
+ };
+
+/*! \brief Interface of a node
+
+This interface includes a set of methods used for management of the nodes in the graph.
+*/
+
+ //////////////
+ interface CNode : Engines::Component {
+ //////////////
+
+
+/*!
+Returns the name of the node(graph).
+*/
+ string Name() ;
+/*!
+Returns the service of this node .
+*/
+ SALOME_ModuleCatalog::Service Service() ;
+/*!
+Returns the type of the node.
+*/
+ SUPERV::KindOfNode Kind() ;
+/*!
+Returns the date of creation of the node(graph).
+*/
+ SUPERV::SDate CreationDate() ;
+/*!
+Returns the date of last update of the node(graph).
+*/
+ SUPERV::SDate LastUpdateDate() ;
+/*!
+Returns the name of the version of the node(graph).
+*/
+ string Version() ;
+/*!
+Returns the name of the author of the node(graph).
+*/
+ string Author() ;
+/*!
+Returns the string containing comments about this node(graph).
+*/
+ string Comment() ;
+
+
+/*!
+Sets the name of the node(graph). Returns True if it is updated.
+*/
+ boolean SetName(in string aNewName ) ;
+/*!
+Sets the name of the author. Returns True if it is updated.
+*/
+ boolean SetAuthor(in string anAuthor ) ;
+/*!
+Allows to update the comments about this node(graph).
+*/
+ boolean SetComment(in string aComment ) ;
+
+/*!
+ Gets a port of the node.
+*/
+ SUPERV::Port Port( in string aParameterName ) ;
+
+/*!
+ Enters a value into an Input %Port
+*/
+ SUPERV::Port Input( in string InputParameterName ,
+ in Value aValue ) ;
+
+
+ // Create an Input %Port and an Output Port in LabelNode or ControlNode
+ // boolean BusPort( in string InOutParameterName ,
+ // in string InOutParameterType ,
+ // out SUPERV::Port InputPort ,
+ // out SUPERV::Port OutputPort ) ;
+ // boolean BusPorts( in string InputParameterName ,
+ // in string InputParameterType ,
+ // in string OutputParameterName ,
+ // in string OutputParameterType ,
+ // out SUPERV::Port InputPort ,
+ // out SUPERV::Port OutputPort ) ;
+
+/*!
+ Gets a list of ports of the node(graph)
+*/
+ SUPERV::ListOfPorts Ports() ;
+
+ // Get list of Links
+ SUPERV::ListOfLinks Links() ;
+
+/*!
+Returns True if this node is a graph.
+\note <BR>A node of the graph can also represent in its turn another graph.
+*/
+ boolean IsGraph() ;
+/*!
+Returns True if the node appears to be a %computing node.
+*/
+ boolean IsComputing() ;
+ boolean IsFactory() ;
+ boolean IsInLine() ;
+ boolean IsGOTO() ;
+ boolean IsLoop() ;
+ boolean IsEndLoop() ;
+ boolean IsSwitch() ;
+ boolean IsEndSwitch() ;
+
+/*!
+ Returns the number of SubGraphs
+*/
+ long SubGraph() ;
+
+/*!
+Returns nuber of threads.
+*/
+ long Thread() ;
+
+/*!
+ Returns True if the node(graph) is waiting for Data input
+*/
+ boolean IsWaiting() ;
+
+/*!
+ Returns True if the node(graph) is ready for execution
+*/
+ boolean IsReady() ;
+
+ /*!
+ Returns True if the node(graph) is running
+*/
+ boolean IsRunning() ;
+
+/*!
+ Returns True if execution is finished
+*/
+
+ boolean IsDone() ;
+/*!
+ Returns True if execution is suspended
+*/
+
+ boolean IsSuspended() ;
+/*!
+Returns the current state of the graph.
+*/
+ SUPERV::GraphState State() ;
+
+ // wait for ready_to_run state, Suspend and return
+ boolean ReadyW() ;
+
+ // wait for running state, Suspend and return
+ boolean RunningW() ;
+
+ // wait for done state, Suspend and return
+ boolean DoneW() ;
+
+ // wait for Suspend state and return
+ boolean SuspendedW() ;
+
+ // boolean Ping();
+
+ // if not running : will be killed when ready to run
+ // if running : Kill immediatly
+ boolean Kill();
+
+ // will be killed only just after running (only for nodes)
+ boolean KillDone();
+
+ // if not running : will be stopped when ready to run
+ // if running : Stop immediatly
+ boolean Stop();
+
+ // if not running : will be Suspended when ready to run
+ // if running : Suspend immediatly
+ boolean Suspend();
+
+ // will be Suspended only just after running
+ boolean SuspendDone();
+
+ // if Suspended : running will continue
+ // if not Suspended : cancel current ControlState ( Suspend, Kill, ...)
+ boolean Resume();
+
+/*!
+ Restarts execution of the node(graph).
+*/
+ boolean ReRun();
+/*!
+Restarts execution of the graph beginning from a definite node.
+*/
+ boolean ReRunAt( in string aNodeName );
+
+/*!
+ Restarts and suspends execution of the node(graph).
+*/
+ boolean ReStart();
+/*!
+Restarts and suspends execution of the graph beginning from a definite node.
+*/
+ boolean ReStartAt( in string aNodeName );
+
+/*!
+ Returns automaton execution state of the node(graph).
+*/
+ SUPERV::AutomatonState AutoState() ;
+
+ // Control state required : Kill, Suspend, Stop
+ SUPERV::ControlState Control() ;
+/*!
+Clears the control state of the node(graph).
+*/
+ void ControlClear() ;
+
+ boolean ContainerKill();
+/*!
+Sets the position of the node in the window.
+*/
+ void Coords( in long X , in long Y ) ;
+/*!
+Returns the position of the node along X-axis.
+*/
+ long X() ;
+/*!
+Returns the position of the node along Y-axis.
+*/
+ long Y() ;
+
+ long CpuUsed() ;
+
+ } ;
+
+ //////////////
+ interface FNode : CNode {
+ //////////////
+
+ string GetComponentName() ;
+ string GetInterfaceName() ;
+ string GetContainer() ;
+ boolean SetComponentName(in string aComponentName ) ;
+ boolean SetInterfaceName(in string anInterfaceName ) ;
+ boolean SetContainer(in string aContainer ) ;
+ } ;
+
+ // InLine Nodes
+ //////////////
+ interface INode : CNode {
+ //////////////
+
+ void SetPyFunction( in string FuncName ,
+ in SUPERV::ListOfStrings aPyInitFunction ) ;
+ SUPERV::ListOfStrings PyFunction() ;
+ string PyFuncName() ;
+
+ // Create Input/Output Port in InLineNodes
+ SUPERV::Port InPort( in string aParameterName , in string aParameterType ) ;
+ SUPERV::Port OutPort( in string aParameterName , in string aParameterType ) ;
+ } ;
+
+ // GOTO/EndLoop/EndSwitch Nodes
+ ///////////////
+ interface GNode : INode {
+ ///////////////
+
+ boolean SetCoupled( in string anInLineNode ) ;
+ SUPERV::INode Coupled() ;
+ } ;
+
+ // Loop Nodes
+ ///////////////
+ interface LNode : GNode {
+ ///////////////
+
+ void SetPyInit( in string MoreName ,
+ in SUPERV::ListOfStrings aPyMoreFunction ) ;
+ SUPERV::ListOfStrings PyInit() ;
+ string PyInitName() ;
+
+ void SetPyMore( in string MoreName ,
+ in SUPERV::ListOfStrings aPyMoreFunction ) ;
+ SUPERV::ListOfStrings PyMore() ;
+ string PyMoreName() ;
+
+ void SetPyNext( in string NextName ,
+ in SUPERV::ListOfStrings aPyNextFunction ) ;
+ SUPERV::ListOfStrings PyNext() ;
+ string PyNextName() ;
+
+ } ;
+
+ // EndOfLoop Nodes
+ ////////////////
+ interface ELNode : GNode {
+ ////////////////
+ } ;
+
+ // Switch Nodes
+ ///////////////
+ interface SNode : GNode {
+ ///////////////
+ } ;
+
+ // EndOfSwitch Nodes
+ ////////////////
+ interface ESNode : GNode {
+ ////////////////
+ } ;
+
+/*! \brief Interface of a graph
+
+This interface includes a set of methods used for management of the graphs in %SUPERVISION module.
+*/
+
+ ///////////////
+ interface Graph : INode {
+ ///////////////
+
+ // Create a Computing Node in a Graph
+ SUPERV::CNode CNode( in SALOME_ModuleCatalog::Service aService ) ;
+
+ // Create a Factory Node in a Graph
+ SUPERV::FNode FNode( in string aComponentName ,
+ in string anInterfaceName ,
+ in SALOME_ModuleCatalog::Service aService ) ;
+
+ // Create an InLine Node in a Graph
+ SUPERV::INode INode( in string FuncName , in ListOfStrings aPythonFunction ) ;
+
+ // Create a GOTO node and link to the corresponding InLine node
+ SUPERV::GNode GNode( in string FuncName , in ListOfStrings aPythonFunction ,
+ in string anINode ) ;
+
+ // Create a "for" or "while" node and the corresponding end of loop node
+ SUPERV::LNode LNode( in string InitName , in ListOfStrings InitFunction ,
+ in string MoreName , in ListOfStrings MoreFunction ,
+ in string NextName , in ListOfStrings NextFunction ,
+ out SUPERV::INode anEndOfLoop ) ;
+
+ // Create a "if/elseif/else" or "switch" node and the corresponding end node
+ SUPERV::SNode SNode( in string FuncName , in ListOfStrings aPythonFunction ,
+ out SUPERV::INode anEndOfSwitch ) ;
+
+ // Create a CORBA Component Object Reference
+ Engines::Component ComponentRef( in string aComputerContainer ,
+ in string aComponentName ) ;
+
+/*!
+ Creates a link connecting two ports (%Output %Port and %Input %Port) of the nodes in a Graph
+*/
+ SUPERV::Link Link( in SUPERV::Port OutputPort ,
+ in SUPERV::Port InputPort ) ;
+
+/*!
+Imports a graph into a file with XML format
+*/
+ boolean Import( in string anXmlFile ) ;
+/*!
+Exports a graph from a file with XML format
+*/
+ boolean Export( in string anXmlFile ) ;
+/*!
+Returns True if the graph is read Only.
+*/
+ boolean IsReadOnly() ;
+
+/*!
+ Starts asynchronous execution of the graph.
+*/
+ boolean Run() ;
+
+/*!
+ Assigns to the %Node an %Event and a %State of the %Node, if the Event is
+ available. And returns immediately Nil, NoEvent and NoState if not.
+ Returns false if the graph is finished, suspended, killed or stopped.
+\param aNode %Node for which this method is called
+\param anEvent An operation, which has been performed on this node(graph).
+\param aState Current state of the graph
+*/
+ boolean EventNoW( out SUPERV::CNode aNode , out SUPERV::GraphEvent anEvent ,
+ out SUPERV::GraphState aState ) ;
+
+/*!
+ Assigns to the %Node an %Event and a %State of the %Node, if the Event is
+ available. Waits if it is not available at the current moment.
+ Returns false if the graph is finished, suspended, killed or stopped.
+\param aNode %Node for which this method is called
+\param anEvent An operation, which has been performed on this node(graph).
+\param aState Current state of the graph
+*/
+ boolean Event( out SUPERV::CNode aNode , out SUPERV::GraphEvent anEvent ,
+ out SUPERV::GraphState aState ) ;
+
+ // Same as Event but execution of the thread is suspended between the
+ // return of EventW and the next call to EventW
+/*!
+ Assigns to the %Node an %Event and a %State of the %Node, if the Event is
+ available. And returns immediately Nil, NoEvent and NoState if not.
+ Returns false if the graph is finished, suspended, killed or stopped.
+\note <BR>Execution of the thread is suspended between the return of this
+method and its next usage.
+\param aNode %Node for which this method is called
+\param anEvent An operation, which has been performed on this node(graph).
+\param aState Current state of the graph
+*/
+ boolean EventW( out SUPERV::CNode aNode , out SUPERV::GraphEvent anEvent ,
+ out SUPERV::GraphState aState ) ;
+
+ long LevelMax() ;
+ SUPERV::ListOfNodes LevelNodes( in long aLevel ) ;
+ long ThreadsMax() ;
+/*!
+Returns the number of independent subgraphs
+*/
+ long GraphsNumber() ;
+/*!
+Returns the number of currently running threads.
+*/
+ long Threads();
+/*!
+Returns the number of suspended threads.
+*/
+ long SuspendedThreads();
+/*!
+Returns True if the graph is valid.
+*/
+ boolean IsValid() ;
+/*!
+Returns True if the graph can be executed.
+*/
+ boolean IsExecutable() ;
+/*!
+Returns True if the graph represents a working algorithm.
+*/
+ boolean IsDataFlow() ;
+
+/*!
+Returns True if the graph is being currently edited.
+*/
+ boolean IsEditing() ;
+/*!
+Returns True if the graph is being currently executed.
+*/
+ boolean IsExecuting() ;
+
+ long LastLevelDone() ;
+
+/*!
+ Launches step-by-step execution of the graph.
+\note The execution is suspended immediatly after performance of operations of the first node and
+user can specify the nodes, where execution will be again suspended after its resuming.
+*/
+ boolean Start() ;
+/*!
+Allows to copy one graph into another.
+*/
+ SUPERV::Graph Copy() ;
+/*!
+Merges two graphs
+*/
+ boolean Merge( in Graph aGraph ) ;
+/*!
+Returns a list of nodes of the graph.
+*/
+ SUPERV::ListOfNodes Nodes() ;
+/*!
+Returns a list of links of the graph.
+*/
+ SUPERV::ListOfLinks GLinks() ;
+/*!
+Gets IOR of the garph.
+*/
+ string getIOR();
+
+/*!
+Returns a list of graphs.
+\note Not implemented
+*/
+ SUPERV::ListOfGraphs Graphs() ;
+
+ } ;
+
+
+
+
+
+/*! \brief Interface of the %link
+
+This interface contains a set of methods used for representation and management of the links
+connecting nodes in a %graph.
+*/
+
+ //////////////
+ interface Link : Engines::Component {
+ //////////////
+/*!
+Associates an %Output %Port to the Link
+*/
+ SUPERV::Port OutPort() ;
+
+/*!
+Associates an %Input %Port to the Link
+*/
+ SUPERV::Port InPort() ;
+
+ // For GUI :
+/*! \name Methods used for representation of links in GUI of %SALOME application :
+*/
+/*@{*/
+/*!
+Returns the number of coordinate points which are included in the link.
+\note <BR>Every link can contain a set of coordinate points which constitute it. These points have
+index numbers (beginning from 1) and coordinates defining their position in the window. Indexing of
+the points starts from input port to output port of the corresponding link.
+*/
+ long CoordsSize() ;
+/*!
+Adds a coordinate point to the link.
+\param index Index of the point.
+\param X Coordinates of the point.
+\param Y Coordinates of the point.
+*/
+ boolean AddCoord( in long index , in long X , in long Y ) ;
+/*!
+Changes the location of a definite coordinate point of the link.
+\param index Index of the point.
+\param X Coordinates of the point.
+\param Y Coordinates of the point.
+*/
+
+ boolean ChangeCoord( in long index , in long X , in long Y ) ;
+/*!
+Removes a coordinate point of the link.
+\param index Index of the point.
+*/
+
+ boolean RemoveCoord( in long index ) ;
+
+/*!
+Sets the location of a coordinate point of the link.
+\param index Index of the point.
+\param X Coordinates of the point.
+\param Y Coordinates of the point.
+*/
+
+ boolean Coords( in long index , out long X , out long Y ) ;
+/*@}*/
+
+ // void Destroy() ;
+
+ } ;
+
+/*! \brief %Value interface
+
+This interface contains a set of methods used for setting initial parameters of the ports
+*/
+
+ ///////////////
+ interface Value : Engines::Component {
+ ///////////////
+/*!
+Converts the given value into a value of string type.
+*/
+ string ToString() ;
+/*!
+Converts the given value into a value of independant data type.
+*/
+ any ToAny() ;
+/*!
+Returns True if the value represents an IOR.
+*/
+ boolean IsIOR() ;
+/*!
+Gets data type of the component.
+*/
+ string ComponentDataType() ;
+
+ // void Destroy() ;
+
+ } ;
+/*! \brief %Port interface
+
+This interface contains a set of methods used for management of the ports.
+*/
+
+ //////////////
+ interface Port : Value {
+ //////////////
+
+/*!
+ Gives a value to an Input %Port
+*/
+ boolean Input( in SUPERV::Value aValue ) ;
+
+/*!
+Returns the node of the port
+*/
+ SUPERV::CNode Node() ;
+/*!
+Sets the name of the port.
+*/
+ string Name() ;
+
+ // Type of a Port
+ string Type() ;
+
+ // Link of an Input Port
+/*!
+Returns the link of an %Input %Port
+*/
+ SUPERV::Link Link() ;
+
+/*!
+Returns a list of links of an Input %Port of an EndSwitchNode
+*/
+ SUPERV::ListOfLinks Links() ;
+
+/*!
+Returns True if this port appears to be an %Input %Port of a Node
+*/
+ boolean IsInput() ;
+
+/*!
+Returns True if an %Input %Value exists for that %Input %Port (without link)
+*/
+ boolean HasInput() ;
+
+/*!
+Returns True if the %Port is linked (without value)
+*/
+// Port with link (without Value)
+ boolean IsLinked() ;
+
+ // Kind of a Port
+ SUPERV::KindOfPort Kind() ;
+
+ // Port from the service of the node
+/*!
+Returns True if the %Port is a parameter of a service
+*/
+ boolean IsParam() ;
+ // Port is a Gate of the node
+/*!
+Returns True if the %Port appears to be a GatePort of the node
+*/
+ boolean IsGate() ;
+ // Port is a parameter of an InLineNode
+ boolean IsInLine() ;
+ // Port is a LoopParameter (InitLoop or DoLoop) of an LoopNode
+ boolean IsLoop() ;
+ // Port is an output parameter of a SwitchNode connected to an InGate
+/*!
+Returns True if the %Port appears to be a parameter of a switch node
+*/
+ // Port is a parameter of a switch node
+ boolean IsSwitch() ;
+ // Port is an Input parameter of a EndSwitchNode connected to several output ports
+ boolean IsEndSwitch() ;
+
+ SUPERV::GraphState State() ;
+ boolean IsDone() ;
+
+ } ;
+
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SubComponent.idl
+// Author :
+// $Header$
+
+#ifndef _SUBCOMPONENT_IDL
+#define _SUBCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface SubComponent : Engines::Component {
+ void Sub( in double x , in double y , out double z ) ;
+ } ;
+};
+
+
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SyrComponent.idl
+// Author :
+// $Header$
+
+#ifndef _SYRCOMPONENT_IDL
+#define _SYRCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ typedef sequence<long> SeqOfSyr ;
+
+ interface ListOfSyr ;
+
+ interface Syr ;
+
+ interface SyrComponent : Engines::Component {
+
+ long C_ISEVEN( in long anInteger ) ;
+ long C_ISONE( in long anOddInteger ) ;
+ long C_M3( in long anOddInteger ) ;
+ long C_M3P1( in long anOddInteger ) ;
+ long C_DIV2( in long anEvenInteger ) ;
+ long C_INCR( in long aCount ) ;
+ long C_MIN( in long aMinVal , in long anInteger ) ;
+ long C_MAX( in long aMaxVal , in long anInteger ) ;
+ ListOfSyr C_LISTOFSYR() ;
+ ListOfSyr C_AVERAGE( in ListOfSyr aListOfSyr , in long anInteger ,
+ in long aCount , out double anAverage ) ;
+
+ Syr Init( in long anOddInteger ) ;
+
+ };
+
+ interface ListOfSyr : Engines::Component {
+ SuperVisionTest::SeqOfSyr GetSeqOfSyr() ;
+ void SetSeqOfSyr( in SuperVisionTest::SeqOfSyr aSeqOfSyr ) ;
+ };
+
+ interface Syr : SyrComponent {
+
+ long Initial() ;
+ long Current() ;
+ long IsEven() ;
+ long IsOne() ;
+ long Count() ;
+ void M3p1() ;
+ void Div2() ;
+ void Incr() ;
+
+ };
+
+} ;
+
+#endif
--- /dev/null
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SyrControlComponent.idl
+// Author : Jean Rahuel
+// $Header:
+
+#ifndef _SYRCONTROLCOMPONENT_IDL
+#define _SYRCONTROLCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface SyrControlComponent : Engines::Component {
+
+ void L_OneEven( in long ValOne , in long ValEven ,
+ out long Finished , out long Incr ,
+ out long Even , out long Odd ) ;
+
+ void C_NotOneIsEven( out long ValOne , out long ValEven ) ;
+
+ void LOOPN( in long InLoop , in long NN , in long KK ,
+ in long min , in long max ,
+ out long OutLoop , out long N , out long K ) ;
+
+ void WHILENOTONE( in long N , out long OutLoop ) ;
+
+ void IFNOTEVEN( in long N , out long Odd , out long Even ) ;
+
+ void LOOPi( in long InLoop , in long ii , out long OutLoop , out long i ) ;
+
+ void WHILEEVEN( in long N , out long OutLoop ) ;
+
+ };
+
+};
+#endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : TestNotif.idl
+
+# ifndef __TESTNOTIF_IDL_
+# define __TESTNOTIF_IDL_
+
+interface Solver
+{
+ boolean Connect();
+ oneway void Start() ;
+ oneway void ReStart() ;
+} ;
+# endif
--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : TypeData.idl
+
+#ifndef _SALOME_TYPEDATA_IDL_
+#define _SALOME_TYPEDATA_IDL_
+
+module Engines
+{
+
+ typedef sequence<double> DoubleVec ;
+ typedef sequence<long> IntVec;
+
+ typedef struct CSR {
+ unsigned long nbpos;
+ unsigned long nbval;
+ IntVec pos;
+ IntVec col;
+ DoubleVec data;
+ } CSRMatStruct;
+
+} ;
+
+#endif
+
--- /dev/null
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : VISU_Gen.idl
+// Author : Alexey Petrov
+
+/*! \file VISU_Gen.idl This file conatins a set of interfaces of %VISU module.
+ This module will provide various forms of data visualization in %SALOME application.
+ These forms include data tables, XY plots, 3d representations
+ and combination of these forms.
+*/
+/*!
+ \defgroup Visu SALOME VISU module
+*/
+
+#ifndef __VISU_GEN__
+#define __VISU_GEN__
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+#include "SALOMEDS_Attributes.idl"
+#include "MED.idl"
+
+/*! \ingroup Visu
+ The main package of interfaces of the module %VISU.
+*/
+module VISU {
+ //-------------------------------------------------------
+ typedef string IdType;
+ enum Scaling{ LINEAR, LOGARITHMIC};
+ enum Entity{ NODE, EDGE, FACE, CELL};
+ //enum Entity{ CELL, FACE, EDGE, NODE};
+/*!
+ This enumeration contains a set of elements defining the type of the module.
+*/
+ enum VISUType{ TNONE,
+ TCURVE, TTABLE, TCONTAINER, TMESH, TSCALARMAP,
+ TISOSURFACE, TDEFORMEDSHAPE, TCUTPLANES, TCUTLINES, TVECTORS, TSTREAMLINES,
+ TVISUGEN, TVIEWMANAGER, TRESULT,
+ TXYPLOT, TTABLEVIEW, TVIEW3D,
+ TENTITY, TFAMILY, TGROUP, TFIELD, TTIMESTAMP,
+ TALL};
+ interface Base {
+/*!
+ Returns ID of the object.
+*/
+ IdType GetID();
+/*!
+Returns the type of the presentable object
+*/
+ VISUType GetType();
+ };
+/*! \brief Presentable object interface
+
+ It is the root class of all presentable objects.
+*/
+ interface PrsObject : Base{
+ };
+ //-------------------------------------------------------
+/*! \brief %Table representation interface
+
+Presentation parameters of the %Table view.
+*/
+ interface Table : PrsObject {
+/*!
+Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the table.
+*/
+ string GetTitle();
+/*!
+ This enumeration contains a set of elements defining the orientation of the table.
+*/
+ enum Orientation{ HORIZONTAL, /*!<Horizontal orientation of the table.*/
+ VERTIACAL /*!<Vertical orientation of the table.*/
+ };
+/*!
+Sets orientation of the table.
+*/
+ void SetOrientation(in Orientation theOrientation);
+/*!
+Gets orientation of the table.
+*/
+ Orientation GetOrientation();
+ /*!
+Gets the number of rows of the table
+ */
+ long GetNbRows();
+ /*!
+Gets the number of columns of the table
+ */
+ long GetNbColumns();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of curve representation.
+
+Manages presentation parameters of one curve.
+It can be used for presentation of a set of curves using a combined presentation.
+*/
+ interface Curve : PrsObject{
+/*!
+Sets the title of the curve.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the curve.
+*/
+ string GetTitle();
+/*!
+Sets the color of the curve.
+*/
+ void SetColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of the curve.
+*/
+ SALOMEDS::Color GetColor();
+ /*!
+ This enumeration contains a set of elements defining the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ enum MarkerType{ NONE, CIRCLE, RECTANGLE, DIAMOND,
+ DTRIANGLE, UTRIANGLE, LTRIANGLE, RTRIANGLE,
+ CROSS, XCROSS };
+/*!
+Sets the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ void SetMarker(in MarkerType theType);
+/*!
+Gets the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ MarkerType GetMarker();
+/*!
+ This enumeration contains a set of elements defining the
+ type of representation of curve lines on the graphics.
+*/
+ enum LineType{ VOIDLINE, SOLIDLINE, DASHLINE, DOTLINE, DASHDOTLINE, DASHDOTDOTLINE};
+/*!
+Sets the type of representation of curve lines on the graphics.
+*/
+ void SetLine(in LineType theType, in long theLineWidth);
+/*!
+Gets the type of representation of curve lines on the graphics.
+*/
+ LineType GetLine();
+
+/*!
+Gets the width of the curve line.
+*/
+ long GetLineWidth();
+ };
+//-------------------------------------------------------
+/*! \brief The %Container presentable object interface
+This interface contains a set of methods used for management of a group of curves
+which are stored in the container.
+*/
+ interface Container : PrsObject{
+/*!
+Adds a curve into the container.
+*/
+ void AddCurve(in Curve theCurve);
+/*!
+Removes a curve from the container.
+*/
+ void RemoveCurve(in Curve theCurve);
+/*!
+Gets the number of curves which are stored in the container.
+*/
+ long GetNbCurves();
+/*!
+Removes all curves from the container.
+*/
+ void Clear();
+
+ };
+ //-------------------------------------------------------
+ interface Prs3d : PrsObject{
+ void Destroy();
+ };
+/*!
+ This enumeration contains a set of elements defining the
+ type of representation of the mesh.
+*/
+
+ enum PresentationType{ POINT,
+ WIREFRAME,
+ SHADED,
+ SHRINK
+ };
+/*! \brief Interface of the mesh.
+
+This interface manages the presentation parameters of the mesh.
+*/
+ interface Mesh : Prs3d{
+/*!
+Sets the color of mesh cells.
+*/
+ void SetCellColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh cells.
+*/
+ SALOMEDS::Color GetCellColor();
+/*!
+Sets the color of mesh nodes.
+*/
+ void SetNodeColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh nodes.
+*/
+ SALOMEDS::Color GetNodeColor();
+
+/*!
+Sets the color of mesh links.
+*/
+ void SetLinkColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh links.
+*/
+ SALOMEDS::Color GetLinkColor();
+/*!
+Sets the type of representation of the mesh.
+*/
+ void SetPresentationType(in PresentationType theType);
+/*!
+Gets the type of representation of the mesh.
+*/
+ PresentationType GetPresentationType();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of the %Scalar Map presentation
+
+This interface contains presentation parameters of the ScalarMap presentation
+*/
+ interface ScalarMap : Prs3d{
+ void SetScalarMode(in long theScaling);
+ long GetScalarMode();
+ void SetScaling(in Scaling theScaling);
+/*!
+Gets the type of scaling of the values reflected by this presentation.
+*/
+ Scaling GetScaling();
+/*!
+Sets scalar range - min and max boundaries of this presentable object.
+\param theMin Min boundary of this presentable object.
+\param theMax Max boundary of this presentable object.
+*/
+ void SetRange(in double theMin, in double theMax);
+/*!
+ Gets the min boundary of this presentable object.
+*/
+ double GetMin();
+/*!
+ Gets the max boundary of this presentable object.
+*/
+ double GetMax();
+
+/*! %Orientation of this presentable object. */
+ enum Orientation{
+ HORIZONTAL, /*!< Horizontal orientation of this presentable object.*/
+ VERTICAL /*!< Vertical orientation of this presentable object.*/
+ };
+/*!
+ Sets the type of orientation of this presentable object.
+*/
+ void SetOrientation(in Orientation theOrientation);
+/*!
+ Gets the type of orientation of this presentable object.
+*/
+ Orientation GetOrientation();
+
+/*! \brief Position of this presentable object.
+
+Sets the position of this presentable object origin on the screen.
+\param X Horizontal position. The value can be between 0 and 1.
+\param Y Vertical position. The value can be between 0 and 1.
+*/
+ void SetPosition(in double X, in double Y);
+/*!
+ Gets horizontal position of this presentable object origin.
+*/
+ double GetPosX();
+/*!
+ Gets vertical position of this presentable object origin.
+*/
+ double GetPosY();
+/*! \brief Size of this presentable object.
+
+Sets the size of the scalar bar.
+\param theWidth Width of this presentable object. The value can be between 0 and 1.
+\param theHeight Height of this presentable object. The value can be between 0 and 1.
+*/
+ void SetSize(in double theWidth, in double theHeight);
+/*!
+Gets the width of this presentable object.
+*/
+ double GetWidth();
+/*!
+Gets the height of this presentable object.
+*/
+ double GetHeight();
+/*!
+Sets the number of colors which will be used for presentation of this presentable object.
+*/
+ void SetNbColors(in long theNbColors);
+/*!
+Gets the number of colors which will be used for presentation of this presentable object.
+*/
+ long GetNbColors();
+/*!
+Sets the number of labels which will be used for indication of the gradation
+ of this presentable object.
+*/
+ void SetLabels(in long theNbLabels);
+/*!
+Gets the number of labels which will be used for indication of the gradation
+ of this presentable object.
+*/
+ long GetLabels();
+/*!
+Sets the title of this presentable object. For scalar bar by default - the name of the selected result is used.
+*/
+ void SetTitle(in string theName);
+/*!
+Gets the title of this presentable object.
+*/
+ string GetTitle();
+ };
+ //-------------------------------------------------------
+/*! \brief Deformed shape presentation interface
+
+Presentation parameters of the deformed shape presentation.
+*/
+ interface DeformedShape : ScalarMap{
+/*!
+Sets the scale of the presentatable object.
+*/
+ void SetScale(in double theScale);
+/*!
+Gets the scale of the presentatable object.
+*/
+ double GetScale();
+ };
+ //-------------------------------------------------------
+/*! \brief Cut planes interface
+
+Presentation parameters of Cut planes presentation.
+*/
+ interface CutPlanes : ScalarMap{
+/*!
+ This enumeration contains a set of elements defining the orientation in 3D space
+ of cut planes presentation.
+*/
+ enum Orientation {XY, YZ, ZX};
+/*!
+Sets the type of orientation in 3D space of cut planes presentation.
+*/
+ void SetOrientationType(in Orientation theNb);
+/*!
+Gets the type of orientation in 3D space of cut planes presentation.
+*/
+ Orientation GetOrientationType();
+ void SetDisplacement(in double theDisp);
+ double GetDisplacement();
+/*!
+Sets the number of cut planes.
+*/
+ void SetNbPlanes(in long theNb);
+/*!
+Gets the number of cut planes.
+*/
+ long GetNbPlanes();
+/*! Rotation around X-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ void SetRotateX(in double theAngle);
+/*! Rotation around X-axis.
+Gets rotation angle of the cut plane presentation.
+*/
+ double GetRotateX();
+/*! Rotation around Y-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ void SetRotateY(in double theAngle);
+/*! Rotation around Y-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ double GetRotateY();
+ };
+ //-------------------------------------------------------
+ /*! \brief Interface of the stream lines representation
+ This interface contains presentation parameters of
+ stream lines presentations.
+ */
+/*! \brief Cut lines interface
+
+Presentation parameters of Cut lines presentation.
+*/
+ interface CutLines : ScalarMap{
+
+ void SetOrientationType(in CutPlanes::Orientation theNb);
+ void SetOrientationType2(in CutPlanes::Orientation theNb);
+
+ CutPlanes::Orientation GetOrientationType();
+ CutPlanes::Orientation GetOrientationType2();
+
+ void SetDisplacement(in double theDisp);
+ void SetDisplacement2(in double theDisp);
+
+ double GetDisplacement();
+ double GetDisplacement2();
+
+ void SetNbLines(in long theNb);
+ long GetNbLines();
+
+ void SetRotateX(in double theAngle);
+ void SetRotateX2(in double theAngle);
+
+ double GetRotateX();
+ double GetRotateX2();
+
+ void SetRotateY(in double theAngle);
+ void SetRotateY2(in double theAngle);
+
+ double GetRotateY();
+ double GetRotateY2();
+ };
+
+ interface StreamLines : DeformedShape{
+ enum Direction{ FORWARD,
+ BACKWARD,
+ BOTH
+ };
+
+ void SetDirection(in Direction theDirection);
+ Direction GetDirection();
+
+ void SetStepLength(in double theStep);
+ double GetStepLength();
+
+ void SetPropagationTime(in double theTime);
+ double GetPropagationTime();
+
+ void SetIntegrationStep(in double theStep);
+ double GetIntegrationStep();
+
+ void SetSource(in Prs3d thePrs3d);
+ Prs3d GetSource();
+
+ void SetUsedPoints(in double thePercents);
+ double GetUsedPoints();
+ };
+
+
+/*! \brief Interface of the isometric surface representation
+
+ This interface contains presentation parameters of
+ isometric surface presentations.
+*/
+ interface IsoSurfaces : ScalarMap{
+/*!
+ Sets the number of isometric surfaces.
+*/
+ void SetNbSurfaces(in long theNb);
+/*!
+ Gets the number of isometric surfaces
+*/
+ long GetNbSurfaces();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of the vector presentation.
+
+This interface contains presentation parameters of the vector.
+*/
+ interface Vectors : DeformedShape{
+/*!
+Sets the width of the line of the vector.
+*/
+ void SetLineWidth(in double theWidth);
+/*!
+Gets the width of the line of the vector.
+*/
+ double GetLineWidth();
+/*!
+ This enumeration contains a set of elements defining the type of representation of the vector head.
+*/
+ enum GlyphType{ ARROW,
+ CONE2,
+ CONE6,
+ NONE
+ };
+/*!
+Sets the type of representation of the vector head.
+*/
+ void SetGlyphType(in GlyphType theType);
+/*!
+Gets the type of representation of the vector head.
+*/
+ GlyphType GetGlyphType();
+/*!
+ This enumeration contains a set of elements defining the position of the vector head.
+*/
+
+ enum GlyphPos{ CENTER, /*!<In the center of the vector.*/
+ TAIL, /*!<In the tail of the vector.*/
+ HEAD /*!<In the head of the vector.*/
+ };
+/*!
+Sets the position of the vector head.
+*/
+ void SetGlyphPos(in GlyphPos thePos);
+/*!
+Gets the position of the vector head.
+*/
+ GlyphPos GetGlyphPos();
+ };
+ //-------------------------------------------------------
+ interface Animation : Base{
+ void addField(in SALOMEDS::SObject theObject);
+
+ void generatePresentations(in long theFieldNum);
+ boolean generateFrames();
+ void clearView();
+
+ void startAnimation();
+ void stopAnimation();
+
+ void nextFrame();
+ void prevFrame();
+ void firstFrame();
+ void lastFrame();
+ void gotoFrame(in long theFrame);
+
+ long getNbFields();
+ long getNbFrames();
+ boolean isRunning();
+ long getCurrentFrame();
+
+ ScalarMap getPresentation(in long theField, in long theFrame);
+
+ void setPresentationType(in long theFieldNum, in VISUType theType);
+ VISUType getPresentationType(in long theFieldNum);
+
+ void setSpeed(in long theSpeed);
+ long getSpeed();
+
+ boolean isProportional();
+
+ void setAnimationRange(in double theMin, in double theMax);
+ double getMinRange();
+ double getMaxRange();
+ boolean isRangeDefined();
+
+ void dumpTo(in string thePath);
+
+ boolean isCycling();
+
+ double getMinTime();
+ double getMaxTime();
+
+ void setProportional(in boolean theProp);
+ void setCycling(in boolean theCycle);
+ };
+
+/*! \brief Interface %Result
+
+This interface serves for inner representation of data generated in other sources. (MED object or file)
+This data is needed for further construction of graphical presentations.
+*/
+ interface Result : Base {
+ };
+ //-------------------------------------------------------
+ interface ViewManager;
+ interface View3D;
+/*! \brief %VISU_Gen interface
+
+This is the main interface of %VISU component. It is necessary for creation of
+post-processing presentations from given %Result and %Table object reference, using the views
+provided by %ViewManager.
+*/
+ interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base{
+ void SetCurrentStudy(in SALOMEDS::Study theStudy);
+ SALOMEDS::Study GetCurrentStudy();
+/*!
+ Gets the %ViewManager which is used for creation of
+ post-processing presentations.
+*/
+ ViewManager GetViewManager();
+
+/*!
+Imports tables from a file and create TableAttribute in Sudy
+*/
+ SALOMEDS::SObject ImportTables(in string theFileName);
+/*!
+Imports data from a file.
+*/
+ Result ImportFile(in string theFileName);
+/*!
+Imports data from a %MED object.
+*/
+ Result ImportMed(in SALOMEDS::SObject theMedSObject);
+/*!
+Imports data from a %MED field.
+*/
+ Result ImportMedField(in SALOME_MED::FIELD theField);
+/*!
+Creates a %Mesh on the basis of the data generated in other sources (MED object or file).
+*/
+ Mesh MeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity);
+ Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity, in string theFamilyName);
+ Mesh GroupMesh(in Result theResult, in string theMeshName, in string theGroupName);
+/*!
+Creates a scalar bar presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates a deformed shape presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates a vector presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+
+ Vectors VectorsOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates an iso surface presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+
+ IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates an stream lines presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ StreamLines StreamLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a presentation of cut planes.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a presentation of cut lines.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ CutLines CutLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a table presentation.
+*/
+ Table CreateTable(in string theTableEntry);
+/*!
+Creates a curve on the basis of points, whose values are taken from the table.
+\param theTable Table containing the data for construction of curves.
+\param HRow Index of the row in the table: abscissa of the point.
+\param VRow Index of the row in the table: ordinate of the point.
+*/
+ Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
+/*!
+Creates a presentation form containing an array of references to the curves.
+*/
+ Container CreateContainer();
+
+ Animation CreateAnimation(in View3D theView3d);
+ };
+/*! \brief %View interface
+
+ Contains a set of methods used by the %View frame, which can be one of
+ the following types: 3d, Table, XY plot.
+ %View interface is a base for all types of %view interfaces.
+*/
+ interface View: Base{
+/*!
+Sets the title of the %View frame.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the %View frame.
+*/
+ string GetTitle();
+/*!
+Sets background color of the %View frame.
+*/
+ void SetBackground(in SALOMEDS::Color theColor);
+/*!
+Gets background color of the %View frame.
+*/
+ SALOMEDS::Color GetBackground();
+/*!
+Minimizes to the task bar or to the bottom of the Desktop the %View frame.
+*/
+ void Minimize();
+/*!
+Restores the %View frame.
+*/
+ void Restore();
+/*!
+Maximizes the %View frame.
+*/
+ void Maximize();
+/*!
+Removes all presentations (presentable objects) from the %view.
+*/
+ void EraseAll();
+/*!
+Displays all presentations (presentable objects) in the %view.
+*/
+ void DisplayAll();
+/*!
+Removes a definite presentation (presentable object) from the %view.
+*/
+ void Erase(in PrsObject thePrsObj);
+/*!
+Displays a definite presentation (presentable object) in the %view.
+*/
+ void Display(in PrsObject thePrsObj);
+/*!
+Allows to display only a definite presentation (presentable object) in the %view.
+All other presentations are removed from the %view.
+*/
+ void DisplayOnly(in PrsObject thePrsObj);
+/*!
+Updates the view.
+*/
+ void Update();
+
+/*!
+Saves the view.
+*/
+ boolean SavePicture(in string theFileName);
+ };
+
+ //-------------------------------------------------------
+/*! \brief 3D view interface
+
+This interface contains a set of methods necessary for representation of objects in 3D space.
+*/
+
+ interface View3D : View {
+/*!
+This enumeration contains a set of elements determining a predefined point of view
+ (position of the camera in 3D space relative to the presentable object).
+*/
+ enum ViewType{ FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM};
+/*!
+This enumeration contains a set of elements determining the axis
+*/
+ enum Axis{ XAxis, YAxis, ZAxis};
+/*!
+Data type defining coordinates in 3D space.
+*/
+ typedef double XYZ[3];
+
+/*!
+ Makes all presentations, which are currently present in the %view, completely visible.
+*/
+
+ void FitAll();
+
+/*!
+Sets a predefined point of view (FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM). (In other words it means
+ a predefined position of the camera in 3D space with respect to the object which is represented.)
+*/
+ void SetView(in ViewType theType);
+
+/*!
+Sets the position of the camera in 3D space. This point is used as the first point of the vector defining
+the view direction of the camera.
+*/
+ void SetPointOfView(in XYZ theCoord);
+/*!
+Gets the position of the camera in 3D space.This point is used as the first point of the vector defining
+the view direction of the camera.
+*/
+ XYZ GetPointOfView();
+/*!
+Sets the vertical line of the camera in 3D space.
+*/
+ void SetViewUp(in XYZ theDir);
+/*!
+Gets the vertical line of the camera in 3D space.
+*/
+ XYZ GetViewUp();
+/*!
+Sets the point of sight of the camera. This point is used as the second point of the vector defining
+the view direction of the camera.
+*/
+ void SetFocalPoint(in XYZ theDir);
+/*!
+Gets the point of sight of the camera. This point is used as the second point of the vector defining
+the view direction of the camera.
+*/
+ XYZ GetFocalPoint();
+/*!
+Zooming of the presentable object. Sets the scale.
+*/
+ void SetParallelScale(in double theScale);
+/*!
+Zooming of the presentable object. Gets the scale.
+*/
+ double GetParallelScale();
+/*!
+Scaling of the view along a definite axis.
+\param theAxis The axis of the scaling
+\param theParam The coefficient of the scaling
+*/
+ void ScaleView(in Axis theAxis, in double theParam);
+/*!
+Removes the scaling of the view.
+*/
+ void RemoveScale();
+/*!
+Returns True if the view parameters have been created, False if the parameters have been modified.
+*/
+ boolean SaveViewParams(in string theName);
+/*!
+Returns True if the view parameters have been found and applied to the view,
+False if the parameters with this name don't exist.
+*/
+ boolean RestoreViewParams(in string theName);
+ };
+
+
+ //-------------------------------------------------------
+ interface TableView : View {
+
+ };
+
+
+ //-------------------------------------------------------
+ interface XYPlot : View {
+ void SetSubTitle(in string theTitle);
+ string GetSubTitle();
+
+ enum CurveType { POINTS, MULTYLINE, SPLINE};
+ void SetCurveType(in CurveType theType);
+ CurveType GetCurveType();
+
+ void SetMarkerSize(in long theSize);
+ long GetMarkerSize();
+
+ void EnableXGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
+ void EnableYGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
+
+ void SetHorScaling(in Scaling theScaling);
+ Scaling GetHorScaling();
+ void SetVerScaling(in Scaling theScaling);
+ Scaling GetVerScaling();
+
+ void SetXTitle(in string theTitle);
+ string GetXTitle();
+
+ void SetYTitle(in string theTitle);
+ string GetYTitle();
+
+ void ShowLegend(in boolean theShowing);
+
+ void FitAll();
+ };
+
+ //-------------------------------------------------------
+/*! \brief Interface of the %ViewManager
+
+ The %ViewManager is necessary for work with view windows (creation and deletion).
+*/
+
+ interface ViewManager: Base{
+/*! \brief Getting an active %View Frame
+
+ Returns an object reference to the active %View Frame.
+ Type of the %View must be checked.
+ \note <BR>Returns nil if there are no views currently opened.
+*/
+
+ View GetCurrentView();
+/*! \brief Creation of a 3d %View.
+
+ Returns an object reference to the newly created 3d %View.
+*/
+ View3D Create3DView();
+
+ TableView CreateTableView(in Table theTable);
+
+ XYPlot CreateXYPlot();
+
+ void Destroy(in View theView);
+
+ };
+};
+#endif
+
+
--- /dev/null
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : VISU_Gen.idl
+// Author : Alexey Petrov
+
+/*! \file VISU_Gen.idl This file conatins a set of interfaces of %VISU module.
+ This module will provide various forms of data visualization in %SALOME application.
+ These forms include data tables, XY plots, 3d representations
+ and combination of these forms.
+*/
+/*!
+ \defgroup Visu SALOME VISU module
+*/
+
+#ifndef __VISU_GEN__
+#define __VISU_GEN__
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+#include "SALOMEDS.idl"
+#include "SALOMEDS_Attributes.idl"
+#include "MED.idl"
+
+/*! \ingroup Visu
+ The main package of interfaces of the module %VISU.
+*/
+module VISU {
+ //-------------------------------------------------------
+ typedef string IdType;
+ enum Scaling{ LINEAR, LOGARITHMIC};
+ enum Entity{ NODE, EDGE, FACE, CELL};
+ //enum Entity{ CELL, FACE, EDGE, NODE};
+/*!
+ This enumeration contains a set of elements defining the type of the module.
+*/
+ enum VISUType{ TNONE,
+ TCURVE, TTABLE, TCONTAINER, TMESH, TSCALARMAP,
+ TISOSURFACE, TDEFORMEDSHAPE, TCUTPLANES, TCUTLINES, TVECTORS, TSTREAMLINES,
+ TVISUGEN, TVIEWMANAGER, TRESULT,
+ TXYPLOT, TTABLEVIEW, TVIEW3D,
+ TENTITY, TFAMILY, TGROUP, TFIELD, TTIMESTAMP,
+ TALL};
+ interface Base {
+/*!
+ Returns ID of the object.
+*/
+ IdType GetID();
+/*!
+Returns the type of the presentable object
+*/
+ VISUType GetType();
+ };
+/*! \brief Presentable object interface
+
+ It is the root class of all presentable objects.
+*/
+ interface PrsObject : Base{
+ };
+ //-------------------------------------------------------
+/*! \brief %Table representation interface
+
+Presentation parameters of the %Table view.
+*/
+ interface Table : PrsObject {
+/*!
+Sets the title of the table.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the table.
+*/
+ string GetTitle();
+/*!
+ This enumeration contains a set of elements defining the orientation of the table.
+*/
+ enum Orientation{ HORIZONTAL, /*!<Horizontal orientation of the table.*/
+ VERTIACAL /*!<Vertical orientation of the table.*/
+ };
+/*!
+Sets orientation of the table.
+*/
+ void SetOrientation(in Orientation theOrientation);
+/*!
+Gets orientation of the table.
+*/
+ Orientation GetOrientation();
+ /*!
+Gets the number of rows of the table
+ */
+ long GetNbRows();
+ /*!
+Gets the number of columns of the table
+ */
+ long GetNbColumns();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of curve representation.
+
+Manages presentation parameters of one curve.
+It can be used for presentation of a set of curves using a combined presentation.
+*/
+ interface Curve : PrsObject{
+/*!
+Sets the title of the curve.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the curve.
+*/
+ string GetTitle();
+/*!
+Sets the color of the curve.
+*/
+ void SetColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of the curve.
+*/
+ SALOMEDS::Color GetColor();
+ /*!
+ This enumeration contains a set of elements defining the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ enum MarkerType{ NONE, CIRCLE, RECTANGLE, DIAMOND,
+ DTRIANGLE, UTRIANGLE, LTRIANGLE, RTRIANGLE,
+ CROSS, XCROSS };
+/*!
+Sets the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ void SetMarker(in MarkerType theType);
+/*!
+Gets the representation type of markers (data points) with help of
+which the curve is constructed on the graphics.
+*/
+ MarkerType GetMarker();
+/*!
+ This enumeration contains a set of elements defining the
+ type of representation of curve lines on the graphics.
+*/
+ enum LineType{ VOIDLINE, SOLIDLINE, DASHLINE, DOTLINE, DASHDOTLINE, DASHDOTDOTLINE};
+/*!
+Sets the type of representation of curve lines on the graphics.
+*/
+ void SetLine(in LineType theType, in long theLineWidth);
+/*!
+Gets the type of representation of curve lines on the graphics.
+*/
+ LineType GetLine();
+
+/*!
+Gets the width of the curve line.
+*/
+ long GetLineWidth();
+ };
+//-------------------------------------------------------
+/*! \brief The %Container presentable object interface
+This interface contains a set of methods used for management of a group of curves
+which are stored in the container.
+*/
+ interface Container : PrsObject{
+/*!
+Adds a curve into the container.
+*/
+ void AddCurve(in Curve theCurve);
+/*!
+Removes a curve from the container.
+*/
+ void RemoveCurve(in Curve theCurve);
+/*!
+Gets the number of curves which are stored in the container.
+*/
+ long GetNbCurves();
+/*!
+Removes all curves from the container.
+*/
+ void Clear();
+
+ };
+ //-------------------------------------------------------
+ interface Prs3d : PrsObject{
+ void Destroy();
+ };
+/*!
+ This enumeration contains a set of elements defining the
+ type of representation of the mesh.
+*/
+
+ enum PresentationType{ POINT,
+ WIREFRAME,
+ SHADED,
+ SHRINK
+ };
+/*! \brief Interface of the mesh.
+
+This interface manages the presentation parameters of the mesh.
+*/
+ interface Mesh : Prs3d{
+/*!
+Sets the color of mesh cells.
+*/
+ void SetCellColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh cells.
+*/
+ SALOMEDS::Color GetCellColor();
+/*!
+Sets the color of mesh nodes.
+*/
+ void SetNodeColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh nodes.
+*/
+ SALOMEDS::Color GetNodeColor();
+
+/*!
+Sets the color of mesh links.
+*/
+ void SetLinkColor(in SALOMEDS::Color theColor);
+/*!
+Gets the color of mesh links.
+*/
+ SALOMEDS::Color GetLinkColor();
+/*!
+Sets the type of representation of the mesh.
+*/
+ void SetPresentationType(in PresentationType theType);
+/*!
+Gets the type of representation of the mesh.
+*/
+ PresentationType GetPresentationType();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of the %Scalar Map presentation
+
+This interface contains presentation parameters of the ScalarMap presentation
+*/
+ interface ScalarMap : Prs3d{
+ void SetScalarMode(in long theScaling);
+ long GetScalarMode();
+ void SetScaling(in Scaling theScaling);
+/*!
+Gets the type of scaling of the values reflected by this presentation.
+*/
+ Scaling GetScaling();
+/*!
+Sets scalar range - min and max boundaries of this presentable object.
+\param theMin Min boundary of this presentable object.
+\param theMax Max boundary of this presentable object.
+*/
+ void SetRange(in double theMin, in double theMax);
+/*!
+ Gets the min boundary of this presentable object.
+*/
+ double GetMin();
+/*!
+ Gets the max boundary of this presentable object.
+*/
+ double GetMax();
+
+/*! %Orientation of this presentable object. */
+ enum Orientation{
+ HORIZONTAL, /*!< Horizontal orientation of this presentable object.*/
+ VERTICAL /*!< Vertical orientation of this presentable object.*/
+ };
+/*!
+ Sets the type of orientation of this presentable object.
+*/
+ void SetOrientation(in Orientation theOrientation);
+/*!
+ Gets the type of orientation of this presentable object.
+*/
+ Orientation GetOrientation();
+
+/*! \brief Position of this presentable object.
+
+Sets the position of this presentable object origin on the screen.
+\param X Horizontal position. The value can be between 0 and 1.
+\param Y Vertical position. The value can be between 0 and 1.
+*/
+ void SetPosition(in double X, in double Y);
+/*!
+ Gets horizontal position of this presentable object origin.
+*/
+ double GetPosX();
+/*!
+ Gets vertical position of this presentable object origin.
+*/
+ double GetPosY();
+/*! \brief Size of this presentable object.
+
+Sets the size of the scalar bar.
+\param theWidth Width of this presentable object. The value can be between 0 and 1.
+\param theHeight Height of this presentable object. The value can be between 0 and 1.
+*/
+ void SetSize(in double theWidth, in double theHeight);
+/*!
+Gets the width of this presentable object.
+*/
+ double GetWidth();
+/*!
+Gets the height of this presentable object.
+*/
+ double GetHeight();
+/*!
+Sets the number of colors which will be used for presentation of this presentable object.
+*/
+ void SetNbColors(in long theNbColors);
+/*!
+Gets the number of colors which will be used for presentation of this presentable object.
+*/
+ long GetNbColors();
+/*!
+Sets the number of labels which will be used for indication of the gradation
+ of this presentable object.
+*/
+ void SetLabels(in long theNbLabels);
+/*!
+Gets the number of labels which will be used for indication of the gradation
+ of this presentable object.
+*/
+ long GetLabels();
+/*!
+Sets the title of this presentable object. For scalar bar by default - the name of the selected result is used.
+*/
+ void SetTitle(in string theName);
+/*!
+Gets the title of this presentable object.
+*/
+ string GetTitle();
+ };
+ //-------------------------------------------------------
+/*! \brief Deformed shape presentation interface
+
+Presentation parameters of the deformed shape presentation.
+*/
+ interface DeformedShape : ScalarMap{
+/*!
+Sets the scale of the presentatable object.
+*/
+ void SetScale(in double theScale);
+/*!
+Gets the scale of the presentatable object.
+*/
+ double GetScale();
+ };
+ //-------------------------------------------------------
+/*! \brief Cut planes interface
+
+Presentation parameters of Cut planes presentation.
+*/
+ interface CutPlanes : ScalarMap{
+/*!
+ This enumeration contains a set of elements defining the orientation in 3D space
+ of cut planes presentation.
+*/
+ enum Orientation {XY, YZ, ZX};
+/*!
+Sets the type of orientation in 3D space of cut planes presentation.
+*/
+ void SetOrientationType(in Orientation theNb);
+/*!
+Gets the type of orientation in 3D space of cut planes presentation.
+*/
+ Orientation GetOrientationType();
+ void SetDisplacement(in double theDisp);
+ double GetDisplacement();
+/*!
+Sets the number of cut planes.
+*/
+ void SetNbPlanes(in long theNb);
+/*!
+Gets the number of cut planes.
+*/
+ long GetNbPlanes();
+/*! Rotation around X-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ void SetRotateX(in double theAngle);
+/*! Rotation around X-axis.
+Gets rotation angle of the cut plane presentation.
+*/
+ double GetRotateX();
+/*! Rotation around Y-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ void SetRotateY(in double theAngle);
+/*! Rotation around Y-axis.
+Sets rotation angle of the cut plane presentation.
+*/
+ double GetRotateY();
+ };
+ //-------------------------------------------------------
+ /*! \brief Interface of the stream lines representation
+ This interface contains presentation parameters of
+ stream lines presentations.
+ */
+/*! \brief Cut lines interface
+
+Presentation parameters of Cut lines presentation.
+*/
+ interface CutLines : ScalarMap{
+
+ void SetOrientationType(in CutPlanes::Orientation theNb);
+ void SetOrientationType2(in CutPlanes::Orientation theNb);
+
+ CutPlanes::Orientation GetOrientationType();
+ CutPlanes::Orientation GetOrientationType2();
+
+ void SetDisplacement(in double theDisp);
+ void SetDisplacement2(in double theDisp);
+
+ double GetDisplacement();
+ double GetDisplacement2();
+
+ void SetNbLines(in long theNb);
+ long GetNbLines();
+
+ void SetRotateX(in double theAngle);
+ void SetRotateX2(in double theAngle);
+
+ double GetRotateX();
+ double GetRotateX2();
+
+ void SetRotateY(in double theAngle);
+ void SetRotateY2(in double theAngle);
+
+ double GetRotateY();
+ double GetRotateY2();
+ };
+
+ interface StreamLines : DeformedShape{
+ enum Direction{ FORWARD,
+ BACKWARD,
+ BOTH
+ };
+
+ void SetDirection(in Direction theDirection);
+ Direction GetDirection();
+
+ void SetStepLength(in double theStep);
+ double GetStepLength();
+
+ void SetPropagationTime(in double theTime);
+ double GetPropagationTime();
+
+ void SetIntegrationStep(in double theStep);
+ double GetIntegrationStep();
+
+ void SetSource(in Prs3d thePrs3d);
+ Prs3d GetSource();
+
+ void SetUsedPoints(in double thePercents);
+ double GetUsedPoints();
+ };
+
+
+/*! \brief Interface of the isometric surface representation
+
+ This interface contains presentation parameters of
+ isometric surface presentations.
+*/
+ interface IsoSurfaces : ScalarMap{
+/*!
+ Sets the number of isometric surfaces.
+*/
+ void SetNbSurfaces(in long theNb);
+/*!
+ Gets the number of isometric surfaces
+*/
+ long GetNbSurfaces();
+ };
+ //-------------------------------------------------------
+/*! \brief Interface of the vector presentation.
+
+This interface contains presentation parameters of the vector.
+*/
+ interface Vectors : DeformedShape{
+/*!
+Sets the width of the line of the vector.
+*/
+ void SetLineWidth(in double theWidth);
+/*!
+Gets the width of the line of the vector.
+*/
+ double GetLineWidth();
+/*!
+ This enumeration contains a set of elements defining the type of representation of the vector head.
+*/
+ enum GlyphType{ ARROW,
+ CONE2,
+ CONE6,
+ NONE
+ };
+/*!
+Sets the type of representation of the vector head.
+*/
+ void SetGlyphType(in GlyphType theType);
+/*!
+Gets the type of representation of the vector head.
+*/
+ GlyphType GetGlyphType();
+/*!
+ This enumeration contains a set of elements defining the position of the vector head.
+*/
+
+ enum GlyphPos{ CENTER, /*!<In the center of the vector.*/
+ TAIL, /*!<In the tail of the vector.*/
+ HEAD /*!<In the head of the vector.*/
+ };
+/*!
+Sets the position of the vector head.
+*/
+ void SetGlyphPos(in GlyphPos thePos);
+/*!
+Gets the position of the vector head.
+*/
+ GlyphPos GetGlyphPos();
+ };
+ //-------------------------------------------------------
+ interface Animation : Base{
+ void addField(in SALOMEDS::SObject theObject);
+
+ void generatePresentations(in long theFieldNum);
+ boolean generateFrames();
+ void clearView();
+
+ void startAnimation();
+ void stopAnimation();
+
+ void nextFrame();
+ void prevFrame();
+ void firstFrame();
+ void lastFrame();
+ void gotoFrame(in long theFrame);
+
+ long getNbFields();
+ long getNbFrames();
+ boolean isRunning();
+ long getCurrentFrame();
+
+ ScalarMap getPresentation(in long theField, in long theFrame);
+
+ void setPresentationType(in long theFieldNum, in VISUType theType);
+ VISUType getPresentationType(in long theFieldNum);
+
+ void setSpeed(in long theSpeed);
+ long getSpeed();
+
+ boolean isProportional();
+
+ void setAnimationRange(in double theMin, in double theMax);
+ double getMinRange();
+ double getMaxRange();
+ boolean isRangeDefined();
+
+ void dumpTo(in string thePath);
+
+ boolean isCycling();
+
+ double getMinTime();
+ double getMaxTime();
+
+ void setProportional(in boolean theProp);
+ void setCycling(in boolean theCycle);
+ };
+
+/*! \brief Interface %Result
+
+This interface serves for inner representation of data generated in other sources. (MED object or file)
+This data is needed for further construction of graphical presentations.
+*/
+ interface Result : Base {
+ };
+ //-------------------------------------------------------
+ interface ViewManager;
+ interface View3D;
+/*! \brief %VISU_Gen interface
+
+This is the main interface of %VISU component. It is necessary for creation of
+post-processing presentations from given %Result and %Table object reference, using the views
+provided by %ViewManager.
+*/
+ interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base{
+ void SetCurrentStudy(in SALOMEDS::Study theStudy);
+ SALOMEDS::Study GetCurrentStudy();
+/*!
+ Gets the %ViewManager which is used for creation of
+ post-processing presentations.
+*/
+ ViewManager GetViewManager();
+
+/*!
+Imports tables from a file and create TableAttribute in Sudy
+*/
+ SALOMEDS::SObject ImportTables(in string theFileName);
+/*!
+Imports data from a file.
+*/
+ Result ImportFile(in string theFileName);
+/*!
+Imports data from a %MED object.
+*/
+ Result ImportMed(in SALOMEDS::SObject theMedSObject);
+/*!
+Imports data from a %MED field.
+*/
+ Result ImportMedField(in SALOME_MED::FIELD theField);
+/*!
+Creates a %Mesh on the basis of the data generated in other sources (MED object or file).
+*/
+ Mesh MeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity);
+ Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity, in string theFamilyName);
+ Mesh GroupMesh(in Result theResult, in string theMeshName, in string theGroupName);
+/*!
+Creates a scalar bar presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates a deformed shape presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates a vector presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+
+ Vectors VectorsOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates an iso surface presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+
+ IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+/*!
+Creates an stream lines presentation.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ StreamLines StreamLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a presentation of cut planes.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a presentation of cut lines.
+\param theResult Data generated in other sources. (MED object or file)
+\param theMeshName One of the meshes presented in MED file
+\param theEntity Type of entity where the field is defined
+\param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+\param theIteration Number of iteration on the field
+*/
+ CutLines CutLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
+
+/*!
+Creates a table presentation.
+*/
+ Table CreateTable(in string theTableEntry);
+/*!
+Creates a curve on the basis of points, whose values are taken from the table.
+\param theTable Table containing the data for construction of curves.
+\param HRow Index of the row in the table: abscissa of the point.
+\param VRow Index of the row in the table: ordinate of the point.
+*/
+ Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
+/*!
+Creates a presentation form containing an array of references to the curves.
+*/
+ Container CreateContainer();
+
+ Animation CreateAnimation(in View3D theView3d);
+ };
+/*! \brief %View interface
+
+ Contains a set of methods used by the %View frame, which can be one of
+ the following types: 3d, Table, XY plot.
+ %View interface is a base for all types of %view interfaces.
+*/
+ interface View: Base{
+/*!
+Sets the title of the %View frame.
+*/
+ void SetTitle(in string theTitle);
+/*!
+Gets the title of the %View frame.
+*/
+ string GetTitle();
+/*!
+Sets background color of the %View frame.
+*/
+ void SetBackground(in SALOMEDS::Color theColor);
+/*!
+Gets background color of the %View frame.
+*/
+ SALOMEDS::Color GetBackground();
+/*!
+Minimizes to the task bar or to the bottom of the Desktop the %View frame.
+*/
+ void Minimize();
+/*!
+Restores the %View frame.
+*/
+ void Restore();
+/*!
+Maximizes the %View frame.
+*/
+ void Maximize();
+/*!
+Removes all presentations (presentable objects) from the %view.
+*/
+ void EraseAll();
+/*!
+Displays all presentations (presentable objects) in the %view.
+*/
+ void DisplayAll();
+/*!
+Removes a definite presentation (presentable object) from the %view.
+*/
+ void Erase(in PrsObject thePrsObj);
+/*!
+Displays a definite presentation (presentable object) in the %view.
+*/
+ void Display(in PrsObject thePrsObj);
+/*!
+Allows to display only a definite presentation (presentable object) in the %view.
+All other presentations are removed from the %view.
+*/
+ void DisplayOnly(in PrsObject thePrsObj);
+/*!
+Updates the view.
+*/
+ void Update();
+
+/*!
+Saves the view.
+*/
+ boolean SavePicture(in string theFileName);
+ };
+
+ //-------------------------------------------------------
+/*! \brief 3D view interface
+
+This interface contains a set of methods necessary for representation of objects in 3D space.
+*/
+
+ interface View3D : View {
+/*!
+This enumeration contains a set of elements determining a predefined point of view
+ (position of the camera in 3D space relative to the presentable object).
+*/
+ enum ViewType{ FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM};
+/*!
+This enumeration contains a set of elements determining the axis
+*/
+ enum Axis{ XAxis, YAxis, ZAxis};
+/*!
+Data type defining coordinates in 3D space.
+*/
+ typedef double XYZ[3];
+
+/*!
+ Makes all presentations, which are currently present in the %view, completely visible.
+*/
+
+ void FitAll();
+
+/*!
+Sets a predefined point of view (FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM). (In other words it means
+ a predefined position of the camera in 3D space with respect to the object which is represented.)
+*/
+ void SetView(in ViewType theType);
+
+/*!
+Sets the position of the camera in 3D space. This point is used as the first point of the vector defining
+the view direction of the camera.
+*/
+ void SetPointOfView(in XYZ theCoord);
+/*!
+Gets the position of the camera in 3D space.This point is used as the first point of the vector defining
+the view direction of the camera.
+*/
+ XYZ GetPointOfView();
+/*!
+Sets the vertical line of the camera in 3D space.
+*/
+ void SetViewUp(in XYZ theDir);
+/*!
+Gets the vertical line of the camera in 3D space.
+*/
+ XYZ GetViewUp();
+/*!
+Sets the point of sight of the camera. This point is used as the second point of the vector defining
+the view direction of the camera.
+*/
+ void SetFocalPoint(in XYZ theDir);
+/*!
+Gets the point of sight of the camera. This point is used as the second point of the vector defining
+the view direction of the camera.
+*/
+ XYZ GetFocalPoint();
+/*!
+Zooming of the presentable object. Sets the scale.
+*/
+ void SetParallelScale(in double theScale);
+/*!
+Zooming of the presentable object. Gets the scale.
+*/
+ double GetParallelScale();
+/*!
+Scaling of the view along a definite axis.
+\param theAxis The axis of the scaling
+\param theParam The coefficient of the scaling
+*/
+ void ScaleView(in Axis theAxis, in double theParam);
+/*!
+Removes the scaling of the view.
+*/
+ void RemoveScale();
+/*!
+Returns True if the view parameters have been created, False if the parameters have been modified.
+*/
+ boolean SaveViewParams(in string theName);
+/*!
+Returns True if the view parameters have been found and applied to the view,
+False if the parameters with this name don't exist.
+*/
+ boolean RestoreViewParams(in string theName);
+ };
+
+
+ //-------------------------------------------------------
+ interface TableView : View {
+
+ };
+
+
+ //-------------------------------------------------------
+ interface XYPlot : View {
+ void SetSubTitle(in string theTitle);
+ string GetSubTitle();
+
+ enum CurveType { POINTS, MULTYLINE, SPLINE};
+ void SetCurveType(in CurveType theType);
+ CurveType GetCurveType();
+
+ void SetMarkerSize(in long theSize);
+ long GetMarkerSize();
+
+ void EnableXGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
+ void EnableYGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
+
+ void SetHorScaling(in Scaling theScaling);
+ Scaling GetHorScaling();
+ void SetVerScaling(in Scaling theScaling);
+ Scaling GetVerScaling();
+
+ void SetXTitle(in string theTitle);
+ string GetXTitle();
+
+ void SetYTitle(in string theTitle);
+ string GetYTitle();
+
+ void ShowLegend(in boolean theShowing);
+
+ void FitAll();
+ };
+
+ //-------------------------------------------------------
+/*! \brief Interface of the %ViewManager
+
+ The %ViewManager is necessary for work with view windows (creation and deletion).
+*/
+
+ interface ViewManager: Base{
+/*! \brief Getting an active %View Frame
+
+ Returns an object reference to the active %View Frame.
+ Type of the %View must be checked.
+ \note <BR>Returns nil if there are no views currently opened.
+*/
+
+ View GetCurrentView();
+/*! \brief Creation of a 3d %View.
+
+ Returns an object reference to the newly created 3d %View.
+*/
+ View3D Create3DView();
+
+ TableView CreateTableView(in Table theTable);
+
+ XYPlot CreateXYPlot();
+
+ void Destroy(in View theView);
+
+ };
+};
+#endif
+
+
--- /dev/null
+<?xml version='1.0' encoding='us-ascii'?>
+<!DOCTYPE application PUBLIC "" "desktop.dtd">
+
+<!-- GUI customization for SUPERV component -->
+
+<application
+ title="Supervision component"
+ date="2001/08/28"
+ author="Arnaud Rès"
+ appId="Supervision for Salome" >
+
+ <desktop>
+ <menubar>
+ <menu-item label-id="File" item-id="1" pos-id="1">
+ <popup-item item-id="301" pos-id="8" label-id="Import Dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="302" pos-id="9" label-id="Export Dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <separator pos-id="10"/>
+ </menu-item>
+
+ <menu-item label-id="Edit" item-id="3" pos-id="">
+ <separator pos-id="7"/>
+ <popup-item item-id="303" pos-id="8" label-id="New Dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="304" pos-id="9" label-id="Modify Dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ </menu-item>
+
+ <menu-item label-id="Supervision" item-id="300" pos-id="3">
+ <popup-item item-id="305" pos-id="1" label-id="Reload" icon-id="reload.png" tooltip-id="Reload Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="309" pos-id="2" label-id="Components" icon-id="components.png" tooltip-id="Components" accel-id="" toggle-id="" execute-action=""/>
+ <separator pos-id="3"/>
+ <popup-item item-id="306" pos-id="4" label-id="Run" icon-id="run.png" tooltip-id="Run Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="310" pos-id="5" label-id="Step by Step" icon-id="steps.png" tooltip-id="Step by Step execution" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="307" pos-id="6" label-id="Kill" icon-id="kill.png" tooltip-id="Kill Running" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="308" pos-id="7" label-id="Suspend/Resume" icon-id="suspend-resume.gif" tooltip-id="Suspend or Resume" accel-id="" toggle-id="" execute-action=""/>
+ </menu-item>
+ </menubar>
+
+ <toolbar label-id="Supervision">
+ <toolbutton-item item-id="301" label-id="Import" icon-id="import.gif" tooltip-id="Import Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="302" label-id="Export" icon-id="export.gif" tooltip-id="Export Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="303" label-id="New" icon-id="edit.png" tooltip-id="New Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="304" label-id="Modify" icon-id="modify.png" tooltip-id="Modify Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="305" label-id="Reload" icon-id="reload.png" tooltip-id="Reload Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="309" label-id="Components" icon-id="components.png" tooltip-id="Components" accel-id="" toggle-id="" execute-action=""/>
+ </toolbar>
+
+ <toolbar label-id="Execution">
+ <toolbutton-item item-id="306" label-id="Run" icon-id="run.png" tooltip-id="Run Dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="310" label-id="Step by Step" icon-id="steps.png" tooltip-id="Step by Step execution" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="307" label-id="Kill" icon-id="kill.png" tooltip-id="Kill Running" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="308" label-id="Suspend/Resume" icon-id="suspend-resume.gif" tooltip-id="Suspend or Resume" accel-id="" toggle-id="" execute-action=""/>
+ </toolbar>
+ </desktop>
+</application>
--- /dev/null
+<?xml version='1.0' encoding='us-ascii'?>
+<!DOCTYPE application PUBLIC "" "desktop.dtd">
+
+<!-- GUI customization for SUPERV component -->
+
+<application
+ title="Supervision component"
+ date="2001/08/28"
+ author="Arnaud Rès"
+ appId="Supervision for Salome" >
+
+ <desktop>
+ <menubar>
+ <menu-item label-id="Fichier" item-id="1" pos-id="1">
+ <popup-item item-id="301" pos-id="8" label-id="Importer un dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="302" pos-id="9" label-id="Exporter un dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <separator pos-id="10"/>
+ </menu-item>
+
+ <menu-item label-id="Editer" item-id="3" pos-id="">
+ <separator pos-id="7"/>
+ <popup-item item-id="303" pos-id="8" label-id="Editer un dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="304" pos-id="9" label-id="Modifier un dataflow" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ </menu-item>
+
+ <menu-item label-id="Supervision" item-id="300" pos-id="3">
+ <popup-item item-id="305" pos-id="1" label-id="Recharger" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="306" pos-id="2" label-id="Executer" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="307" pos-id="3" label-id="Arreter" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="308" pos-id="4" label-id="Suspendre/Continuer" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ <popup-item item-id="309" pos-id="5" label-id="Composants" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+ </menu-item>
+ </menubar>
+
+ <toolbar label-id="Supervision">
+ <toolbutton-item item-id="301" label-id="Import" icon-id="import.gif" tooltip-id="Importer un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="302" label-id="Export" icon-id="export.gif" tooltip-id="Exporter un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="303" label-id="Edit" icon-id="edit.png" tooltip-id="Editer un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="304" label-id="Modify" icon-id="modify.png" tooltip-id="Modifier un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="305" label-id="Reload" icon-id="reload.png" tooltip-id="Recharger un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="306" label-id="Run" icon-id="run.png" tooltip-id="Executer un dataflow" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="307" label-id="Kill" icon-id="kill.png" tooltip-id="Arreter l'execution" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="308" label-id="Suspend/Resume" icon-id="suspend-resume.gif" tooltip-id="Suspendre ou continuer" accel-id="" toggle-id="" execute-action=""/>
+ <toolbutton-item item-id="309" label-id="Components" icon-id="components.png" tooltip-id="Composants" accel-id="" toggle-id="" execute-action=""/>
+ </toolbar>
+ </desktop>
+</application>
--- /dev/null
+language=en
\ No newline at end of file
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_Base.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Base.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_Base.hxx"
char *SuperVision_Version = "1.04" ;
-//=============================================================================
-// File : DataFlowBase_Base.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Base.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOW_BASE_HXX
#define _DATAFLOW_BASE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_Node.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_Node.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
if ( Graph_prof_debug )
SetDebug( ORB , Graph_prof_debug , Graph_fdebug ) ;
-// if ( !IsOneOfInLineNodes() ) {
DefPortsOfNode( ORB , aService , NamePtr() , Kind() ,
- IsDataFlowNode() || IsComputingNode() ||
- IsFactoryNode() , // DataFlowOrComputing
- IsLoopNode() || IsEndLoopNode() , // WithInLoop
- IsComputingNode() || IsFactoryNode() ||// WithInGate
- IsInLineNode() || IsLoopNode() || IsSwitchNode() ||
- IsEndSwitchNode() ,
-// IsGOTONode() || IsEndLoopNode() || IsEndSwitchNode() ,
- IsComputingNode() || IsFactoryNode() || // WithOutGate
- IsInLineNode() || IsSwitchNode() || IsGOTONode() ,
-// IsEndLoopNode() || IsEndSwitchNode() ,
Graph_prof_debug , Graph_fdebug ) ;
-// }
cdebug_in << "GraphBase::ComputingNode::ComputingNode(" << aService.ServiceName << ","
<< aNodeName << "," << akind
cdebug_out << "GraphBase::ComputingNode::ReNameLink" << endl ;
}
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+const long GraphBase::ComputingNode::CpuUsed() {
+ struct rusage usage ;
+ if ( getrusage( RUSAGE_SELF , &usage ) == -1 ) {
+ perror("GraphBase::CpuUsed") ;
+ return 0 ;
+ }
+// return usage.ru_utime.__time_t tv_sec ;
+ cdebug << "CpuUsed " << usage.ru_utime.tv_sec << " " << usage.ru_utime.tv_usec << " "
+ << usage.ru_stime.tv_sec << " " << usage.ru_stime.tv_usec << endl ;
+ return usage.ru_utime.tv_sec ;
+}
+
#if 0
const GraphBase::ListOfParameters * GraphBase::ComputingNode::GetListOfParameters() const {
GraphBase::ListOfParameters * aListOfParameters = new GraphBase::ListOfParameters ;
// f << Tabs << " <FuncName>" << FuncNames[i].c_str()
// << "</FuncName>" << endl ;
QDomElement FuncName = Graph.createElement("FuncName") ;
- aField = Graph.createTextNode( FuncNames[i].c_str() ) ;
+ if ( strlen( FuncNames[i].c_str() ) ) {
+ aField = Graph.createTextNode( FuncNames[i].c_str() ) ;
+ }
+ else {
+ aField = Graph.createTextNode( "?" ) ;
+ }
PyFunction.appendChild( FuncName ) ;
FuncName.appendChild( aField ) ;
// }
-//=============================================================================
-// File : DataFlowBase_ComputingNode.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_ComputingNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_NODE_HXX
#define _DATAFLOWBASE_NODE_HXX
// const GraphBase::ListOfParameters * GetListOfParameters() const ;
+ const long CpuUsed() ;
+
bool SaveXML( QDomDocument & Graph , QDomElement & info ,
int X , int Y ) const {
ListOfFuncName aFuncNames ;
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_DataNode.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_DataNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_DataNode.hxx"
GraphBase::DataNode::DataNode() :
// cout << "GraphBase::DataNode::DataService : DataFlowPortsOfNode of "
// << aService.ServiceName << endl ;
// DefPortsOfNode( aService , aService.ServiceName ) ;
- DefPortsOfNode( ORB , aService , NamePtr() , Kind() , true , false , false , false ,
+ DefPortsOfNode( ORB , aService , NamePtr() , Kind() ,
+// true , false , false , false ,
Graph_prof_debug , Graph_fdebug ) ;
if ( _Created )
// cout << "GraphBase::DataNode::DataService : Mirrored DataFlowPortsOfNode of "
// << aReversedService.ServiceName << endl ;
_DataFlowDataPorts->DefPortsOfNode( ORB , aReversedService , NamePtr() ,
- Kind() , true , false , false , false ,
+ Kind() ,
+// true , false , false , false ,
Graph_prof_debug , Graph_fdebug ) ;
-// aReversedService.ServiceName ) ;
_Created = true ;
}
-//=============================================================================
-// File : DataFlowBase_DataNode.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_DataNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_DATANODE_HXX
#define _DATAFLOWBASE_DATANODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_DataPort.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_DataPort.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
+#include <stdio.h>
#include "DataFlowBase_DataPort.hxx"
GraphBase::DataPort::DataPort(
const char *const * NodeName ,
const SALOME_ModuleCatalog::ServicesParameter aserviceParameter ) :
Port( NodeName , aserviceParameter ) {
+ pthread_mutex_init( &_MutexWait , NULL ) ;
InitialValues( CORBA::Any() ) ;
}
}
else if ( !strcmp( Type , "objref" ) ) {
cdebug << "objref" << endl ;
- InitialValue.replace(CORBA::_tc_Object, NULL);
+// InitialValue.replace(CORBA::_tc_Object, NULL);
+ InitialValue <<= CORBA::Object::_nil() ;
}
else {
cdebug << "InitialValues ERROR (other) " << Type << endl ;
}
void GraphBase::DataPort::Value( const CORBA::Any * aDataValue ) {
+// cdebug << pthread_self() << " Value(aDataValue) --> pthread_mutex_lock " << &_MutexWait
+// << endl ;
+ if ( pthread_mutex_lock( &_MutexWait ) ) {
+ perror( "lock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " Value(aDataValue) pthread_mutex_locked " << &_MutexWait
+// << endl ;
+
delete _theValue ;
_theValue = aDataValue ;
*_Value = aDataValue ;
// Done( true ) ;
-//#if 0
+#if 0
cdebug << "NewValue " << NodeName() << " " << PortName() << " " << PortType()
<< " : " << _Value << " *_Value " << *_Value << " " ;
switch (_theValue->type()->kind()) {
break;
}
}
- cdebug << endl;
-//#endif
+ cdebug << endl ;
+#endif
+ if ( pthread_mutex_unlock( &_MutexWait ) ) {
+ perror( "unlock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " Value(aDataValue) --> pthread_mutex_unlocked " << &_MutexWait
+// << endl ;
}
}
CORBA::Any const * GraphBase::DataPort::Value() const {
+ pthread_mutex_t * aMutexWait = (pthread_mutex_t *) &_MutexWait ;
+// cdebug << pthread_self() << " Value() --> pthread_mutex_lock " << aMutexWait << endl ;
+ if ( pthread_mutex_lock( aMutexWait ) ) {
+ perror( "lock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " Value() --> pthread_mutex_locked " << aMutexWait << endl ;
const CORBA::Any *const Value = *_Value ;
CORBA::Any * theValue ;
- cdebug << "Value " << NodeName() << " " << PortName() << " " << PortType()
- << " _Value " << _Value << " *_Value " << *_Value << " " ;
+// cdebug << pthread_self() << " Value " << NodeName() << " " << PortName() << " "
+// << PortType() << " _Value " << _Value << " *_Value " << *_Value << " kind "
+// << Value->type()->kind() << " :" << endl ;
if ( Done() ) {
theValue = new CORBA::Any( *Value ) ;
- switch (theValue->type()->kind()) {
+ switch ( theValue->type()->kind() ) {
case CORBA::tk_string: {
char * t;
*theValue >>= t;
- cdebug << "GraphBase::DataPort::Value() : " << t << " (string) " << endl;
+// cdebug << "GraphBase::DataPort::Value() : " << t << " (string) " << endl ;
break;
}
case CORBA::tk_double: {
double d;
*theValue >>= d;
- cdebug << "GraphBase::DataPort::Value() : " << d << " (double) " << endl;
+// cdebug << "GraphBase::DataPort::Value() : " << d << " (double) " << endl ;
break;
}
case CORBA::tk_long: {
long l;
*theValue >>= l;
- cdebug << "GraphBase::DataPort::Value() : " << l << " (long) " << endl;
+// cdebug << "GraphBase::DataPort::Value() : " << l << " (long) " << endl ;
break;
}
case CORBA::tk_objref: {
try {
*theValue >>= obj ;
retstr = ObjectToString( obj );
- cdebug << "GraphBase::DataPort::Value() : " << retstr
- << "(object reference) " << endl;
+// cdebug << "GraphBase::DataPort::Value() : " << retstr
+// << "(object reference) " << endl;
}
catch( ... ) {
cdebug << "ToString( object ) Catched ERROR" << endl ;
}
default: {
cdebug << "GraphBase::DataPort::Value() : "
- << "(other(tk_string,tk_double,tk_long,tk_objref)) ERROR" << endl;
+ << "(other(tk_string,tk_double,tk_long,tk_objref)) ERROR" << endl ;
break;
}
}
}
else {
- cdebug << "GraphBase::DataPort::InitialValue() " << endl;
+// cdebug << "GraphBase::DataPort::InitialValue() " << endl ;
theValue = new CORBA::Any( *Value ) ;
}
+ if ( pthread_mutex_unlock( aMutexWait ) ) {
+ perror( "unlock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " Value() --> pthread_mutex_unlocked " << aMutexWait << endl ;
return theValue ;
}
bool GraphBase::DataPort::BoolValue() const {
bool RetVal = false ;
long val ;
+ pthread_mutex_t * aMutexWait = (pthread_mutex_t *) &_MutexWait ;
+// cdebug << pthread_self() << " BoolValue() --> pthread_mutex_lock " << aMutexWait << endl ;
+ if ( pthread_mutex_lock( aMutexWait ) ) {
+ perror( "lock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " BoolValue() --> pthread_mutex_locked " << aMutexWait
+// << endl ;
if ( (*_Value)->type()->kind() == CORBA::tk_long ) {
**_Value >>= val ;
if ( val ) {
RetVal = true ;
}
}
+ if ( pthread_mutex_unlock( aMutexWait ) ) {
+ perror( "unlock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " BoolValue() --> pthread_mutex_unlocked " << aMutexWait
+// << endl ;
return RetVal ;
}
}
void GraphBase::DataPort::StringValue(ostream & f ) const {
+ pthread_mutex_t * aMutexWait = (pthread_mutex_t *) &_MutexWait ;
+// cdebug << pthread_self() << " StringValue() --> pthread_mutex_lock " << aMutexWait
+// << endl ;
+ if ( pthread_mutex_lock( aMutexWait ) ) {
+ perror( "lock DataValue" ) ;
+ exit( 0 ) ;
+ }
+// cdebug << pthread_self() << " StringValue() --> pthread_mutex_locked " << aMutexWait
+// << endl ;
if ( Done() ) {
- cdebug << "StringValue " << NodeName() << " " << PortName() << " " << PortType()
- << " _Value " << _Value << " *_Value "
- << *_Value << " " << endl ;
+// cdebug << "StringValue " << NodeName() << " " << PortName() << " " << PortType()
+// << " _Value " << _Value << " *_Value "
+// << *_Value << " " << endl ;
const CORBA::Any * theValue = *_Value ;
switch (theValue->type()->kind()) {
case CORBA::tk_string:
f << l << " (long)" ;
break;
case CORBA::tk_objref:
- f << "(object reference)" ;
+ CORBA::Object_ptr ObjRef ;
+ try {
+ *theValue >>= ObjRef ;
+ f << "(object reference) " << ObjectToString( ObjRef ) ;
+ }
+ catch(...) {
+ f << "(object reference) catched error" ;
+ }
break;
default:
f << "(other ERROR)" ;
}
}
else {
- f << "Default(undefined)" ;
+ f << " Default (undefined) NOT DONE" ;
+ }
+ if ( pthread_mutex_unlock( aMutexWait ) ) {
+ perror( "unlock DataValue" ) ;
+ exit( 0 ) ;
}
+// cdebug << pthread_self() << " StringValue() --> pthread_mutex_unlocked " << aMutexWait
+// << endl ;
}
-//=============================================================================
-// File : DataFlowBase_DataPort.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_DataPort.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_DATAPORT_HXX
#define _DATAFLOWBASE_DATAPORT_HXX
CORBA::Any const * * _Value ;
SUPERV::GraphState _State ;
bool _Done ;
+ pthread_mutex_t _MutexWait ;
public :
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_EndOfLoopNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_EndOfLoopNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_EndOfLoopNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_EndOfLoopNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_ENDOFLOOPNODE_HXX
#define _DATAFLOWBASE_ENDOFLOOPNODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_EndOfSwitchNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_EndOfSwitchNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_EndOfSwitchNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_EndOfSwitchNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_ENDOFSWITCHNODE_HXX
#define _DATAFLOWBASE_ENDOFSWITCHNODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_FactoryNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_FactoryNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
if ( _Computer != FACTORYSERVER )
delete [] _Computer ;
_Computer = my_strdup(c);
+ cdebug_in << "GraphBase::FactoryNode::Computer('" << _Computer << "')" << endl;
cdebug_out << "GraphBase::FactoryNode::Computer" << endl;
return true ;
}
-//=============================================================================
-// File : DataFlowBase_FactoryNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_FactoryNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_FACTORYNODE_HXX
#define _DATAFLOWBASE_FACTORYNODE_HXX
_ObjComponent = anObjComponent ; } ;
char * ComponentName() const { return my_strdup( _ComponentName ) ; } ;
char * InterfaceName() const { return my_strdup( _InterfaceName ) ; } ;
- char * Computer() const { return my_strdup( _Computer ) ; } ;
+ char * Computer() const {
+// cdebug_in << "GraphBase::FactoryNode::Computer returns '" << _Computer << "'"
+// << endl;
+ return my_strdup( _Computer ) ; } ;
bool ComponentName( const char * aComponentName ) ;
bool InterfaceName( const char * anInterfaceName ) ;
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_GOTONode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_GOTONode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_GOTONode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_GOTONode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_GOTONODE_HXX
#define _DATAFLOWBASE_GOTONODE_HXX
virtual ~GOTONode() ;
void CoupledNode( InLineNode * aCoupledNode ) {
- cdebug << Name() << ".GraphBase::GOTONode::CoupledNode( " ;
- if ( aCoupledNode ) {
- cdebug << aCoupledNode->Name() ;
- }
- else {
- cdebug << "NULL" ;
- }
- cdebug << " )" << endl ;
+// cdebug << Name() << ".GraphBase::GOTONode::CoupledNode( " ;
+// if ( aCoupledNode ) {
+// cdebug << aCoupledNode->Name() ;
+// }
+// else {
+// cdebug << "NULL" ;
+// }
+// cdebug << " )" << endl ;
_CoupledNode = aCoupledNode ; } ;
const InLineNode * CoupledNode() const {
- cdebug << Name() << ".GraphBase::GOTONode::CoupledNode() --> " ;
- if ( _CoupledNode ) {
- cdebug << _CoupledNode->Name() ;
- }
- else {
- cdebug << "NULL" ;
- }
- cdebug << endl ;
+// cdebug << Name() << ".GraphBase::GOTONode::CoupledNode() --> " ;
+// if ( _CoupledNode ) {
+// cdebug << _CoupledNode->Name() ;
+// }
+// else {
+// cdebug << "NULL" ;
+// }
+// cdebug << endl ;
return _CoupledNode ; } ;
InLineNode * CoupledNode() {
- cdebug << Name() << ".GraphBase::GOTONode::CoupledNode() --> " ;
- if ( _CoupledNode ) {
- cdebug << _CoupledNode->Name() ;
- }
- else {
- cdebug << "NULL" ;
- }
- cdebug << endl ;
+// cdebug << Name() << ".GraphBase::GOTONode::CoupledNode() --> " ;
+// if ( _CoupledNode ) {
+// cdebug << _CoupledNode->Name() ;
+// }
+// else {
+// cdebug << "NULL" ;
+// }
+// cdebug << endl ;
return _CoupledNode ; } ;
// bool SaveXML(ostream &f , char *Tabs , int X , int Y ) const ;
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_Graph.cxx
-// Created : 2001
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Graph.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_Graph.hxx"
#include "SALOME_LifeCycleCORBA.hxx"
const char* ToServiceParameterName ,
char** FromNodeName ,
char** FromServiceParameterName ) {
- cdebug_in << "GraphBase::Graph::GetLink " << ToNodeName << "("
- << ToServiceParameterName << ")" << endl;
+// cdebug_in << "GraphBase::Graph::GetLink " << ToNodeName << "("
+// << ToServiceParameterName << ")" << endl;
bool RetVal = false ;
GraphBase::ComputingNode * toNode = GetChangeGraphNode( ToNodeName ) ;
if ( toNode ) {
*FromServiceParameterName = my_strdup( anOutPort->PortName() ) ;
RetVal = true ;
}
+ else {
+ cdebug << "GraphEditor::OutNode::GetLink ERROR no InPort or NotConnected " << ToNodeName
+ << " " << ToServiceParameterName << " " << RetVal << endl;
+ }
}
- cdebug_out << "GraphEditor::OutNode::GetLink " << RetVal << endl;
+ else {
+ cdebug << "GraphEditor::OutNode::GetLink ERROR no Node " << ToNodeName << " " << RetVal
+ << endl;
+ }
+// cdebug_out << "GraphEditor::OutNode::GetLink " << RetVal << endl;
return RetVal ;
}
for ( j = 0 ; j < aINode->GetNodeInPortsSize() ; j++ ) {
if ( aINode->GetChangeNodeInPort(j)->IsGate() ||
aINode->GetChangeNodeInPort(j)->IsLoop() ) {
- cdebug << "GraphBase::Graph::InLineServices In" << j << " "
- << aINode->GetChangeNodeInPort(j)->Kind() << " "
- << aINode->GetChangeNodeInPort(j)->PortType() << " "
- << aINode->GetChangeNodeInPort(j)->PortName() << " ignored "
- << aINode->GetChangeNodeInPort(j)->IsGate() << " "
- << aINode->GetChangeNodeInPort(j)->IsLoop() << endl;
+// cdebug << "GraphBase::Graph::InLineServices In" << j << " "
+// << aINode->GetChangeNodeInPort(j)->Kind() << " "
+// << aINode->GetChangeNodeInPort(j)->PortType() << " "
+// << aINode->GetChangeNodeInPort(j)->PortName() << " ignored "
+// << aINode->GetChangeNodeInPort(j)->IsGate() << " "
+// << aINode->GetChangeNodeInPort(j)->IsLoop() << endl;
}
else {
aService.ServiceinParameter.length( InService+1 ) ;
aService.ServiceinParameter[InService].Parametertype = CORBA::string_dup( aINode->GetChangeNodeInPort(j)->PortType() ) ;
aService.ServiceinParameter[InService++].Parametername = CORBA::string_dup( aINode->GetChangeNodeInPort(j)->PortName() ) ;
- cdebug << "GraphBase::Graph::InLineServices In" << j << " "
- << aINode->GetChangeNodeInPort(j)->Kind() << " "
- << aINode->GetChangeNodeInPort(j)->PortType() << " "
- << aINode->GetChangeNodeInPort(j)->PortName() << " "
- << aINode->GetChangeNodeInPort(j)->IsGate() << " "
- << aINode->GetChangeNodeInPort(j)->IsLoop() << endl;
+// cdebug << "GraphBase::Graph::InLineServices In" << j << " "
+// << aINode->GetChangeNodeInPort(j)->Kind() << " "
+// << aINode->GetChangeNodeInPort(j)->PortType() << " "
+// << aINode->GetChangeNodeInPort(j)->PortName() << " "
+// << aINode->GetChangeNodeInPort(j)->IsGate() << " "
+// << aINode->GetChangeNodeInPort(j)->IsLoop() << endl;
}
}
int OutService = 0 ;
for ( j = 0 ; j < aINode->GetNodeOutPortsSize() ; j++ ) {
if ( aINode->GetChangeNodeOutPort(j)->IsGate() ||
aINode->GetChangeNodeOutPort(j)->IsLoop() ) {
- cdebug << "GraphBase::Graph::InLineServices Out" << j << " "
- << aINode->GetChangeNodeOutPort(j)->Kind() << " "
- << aINode->GetChangeNodeOutPort(j)->PortType() << " "
- << aINode->GetChangeNodeOutPort(j)->PortName() << " ignored "
- << aINode->GetChangeNodeOutPort(j)->IsGate() << " "
- << aINode->GetChangeNodeOutPort(j)->IsLoop() << endl;
+// cdebug << "GraphBase::Graph::InLineServices Out" << j << " "
+// << aINode->GetChangeNodeOutPort(j)->Kind() << " "
+// << aINode->GetChangeNodeOutPort(j)->PortType() << " "
+// << aINode->GetChangeNodeOutPort(j)->PortName() << " ignored "
+// << aINode->GetChangeNodeOutPort(j)->IsGate() << " "
+// << aINode->GetChangeNodeOutPort(j)->IsLoop() << endl;
}
else {
aService.ServiceoutParameter.length( OutService+1 ) ;
aService.ServiceoutParameter[OutService].Parametertype = CORBA::string_dup( aINode->GetChangeNodeOutPort(j)->PortType() ) ;
aService.ServiceoutParameter[OutService++].Parametername = CORBA::string_dup( aINode->GetChangeNodeOutPort(j)->PortName() ) ;
- cdebug << "GraphBase::Graph::InLineServices Out" << j << " "
- << aINode->GetChangeNodeOutPort(j)->Kind() << " "
- << aINode->GetChangeNodeOutPort(j)->PortType() << " "
- << aINode->GetChangeNodeOutPort(j)->PortName() << " "
- << aINode->GetChangeNodeOutPort(j)->IsGate() << " "
- << aINode->GetChangeNodeOutPort(j)->IsLoop() << endl;
+// cdebug << "GraphBase::Graph::InLineServices Out" << j << " "
+// << aINode->GetChangeNodeOutPort(j)->Kind() << " "
+// << aINode->GetChangeNodeOutPort(j)->PortType() << " "
+// << aINode->GetChangeNodeOutPort(j)->PortName() << " "
+// << aINode->GetChangeNodeOutPort(j)->IsGate() << " "
+// << aINode->GetChangeNodeOutPort(j)->IsLoop() << endl;
}
}
aINode->SetService( aService ) ;
- cdebug << "GraphBase::Graph::InLineServices" << *aINode->GetService() << endl;
+// cdebug << "GraphBase::Graph::InLineServices" << *aINode->GetService() << endl;
}
}
const CORBA::Any * aRet = new CORBA::Any() ;
char *theNode ;
char *aPort ;
- cdebug_in << "GraphBase::Graph::PortData " << ToNodeName << " "
- << ToServiceParameterName << endl ;
+// cdebug_in << "GraphBase::Graph::PortInData " << ToNodeName << " "
+// << ToServiceParameterName << endl ;
NodePort( ToNodeName , ToServiceParameterName , &theNode , &aPort ) ;
GraphBase::ComputingNode * aNode = GetChangeGraphNode( theNode ) ;
anOutPort = anInPort->GetOutPort() ;
if ( anOutPort ) {
aRet = anOutPort->Value() ;
- cdebug << "OutPort value " << anOutPort->NodeName() << "("
- << anOutPort->PortName() << ") --> InPort " << anInPort->NodeName()
- << "(" << anInPort->PortName() << ")" << endl ;
+// cdebug << "OutPort value " << anOutPort->NodeName() << "("
+// << anOutPort->PortName() << ") --> InPort " << anInPort->NodeName()
+// << "(" << anInPort->PortName() << ")" << endl ;
+ }
+ else {
+ cdebug << "GraphBase::Graph::PortInData " << ToNodeName << " "
+ << ToServiceParameterName << " ERROR no OutPort" << endl ;
}
}
+ else {
+ cdebug << "GraphBase::Graph::PortInData " << ToNodeName << " "
+ << ToServiceParameterName << " ERROR no InPort" << endl ;
+ }
+ }
+ else {
+ cdebug << "GraphBase::Graph::PortInData " << ToNodeName << " "
+ << ToServiceParameterName << " ERROR no Node" << endl ;
}
delete theNode ;
delete aPort ;
- cdebug_out << "GraphBase::Graph::PortData " << endl ;
+// cdebug_out << "GraphBase::Graph::PortInData " << endl ;
return aRet ;
}
const CORBA::Any * aRet = new CORBA::Any() ;
char *theNode ;
char *aPort ;
- cdebug_in << "GraphBase::Graph::PortOutData " << FromNodeName << " "
- << FromServiceParameterName << endl ;
+// cdebug_in << "GraphBase::Graph::PortOutData " << FromNodeName << " "
+// << FromServiceParameterName << endl ;
NodePort( FromNodeName , FromServiceParameterName , &theNode , &aPort ) ;
GraphBase::ComputingNode * aNode = GetChangeGraphNode( theNode ) ;
if ( aNode ) {
GraphBase::OutPort *anOutPort ;
anOutPort = aNode->GetChangeOutPort( aPort );
- if ( anOutPort )
+ if ( anOutPort ) {
aRet = anOutPort->Value() ;
+ }
+ else {
+ cdebug << "GraphBase::Graph::PortOutData " << FromNodeName << " "
+ << FromServiceParameterName << " ERROR no OutPort" << endl ;
+ }
+ }
+ else {
+ cdebug << "GraphBase::Graph::PortOutData " << FromNodeName << " "
+ << FromServiceParameterName << " ERROR no Node" << endl ;
}
delete theNode ;
delete aPort ;
- cdebug_out << "GraphBase::Graph::PortOutData " << endl ;
+// cdebug_out << "GraphBase::Graph::PortOutData " << endl ;
return aRet ;
}
-//=============================================================================
-// File : DataFlowBase_Graph.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Graph.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_GRAPH_HXX
#define _DATAFLOWBASE_GRAPH_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_InLineNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_InLineNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_InLineNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_InLineNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_INLINENODE_HXX
#define _DATAFLOWBASE_INLINENODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_InPort.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_InPort.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_InPort.hxx"
#include "DataFlowBase_OutPort.hxx"
-//=============================================================================
-// File : DataFlowBase_InPort.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_InPort.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_INPORT_HXX
#define _DATAFLOWBASE_INPORT_HXX
<< NodeName() << endl ; } ;
void State( SUPERV::GraphState aState ) {
- cdebug << pthread_self() << " " << PortName() << " from "
- << NodeName() << " SUPERV::GraphState " << _State << " "
- << " --> " << aState << " _EndSwitchPort "
- << IsEndSwitch() << endl ;
+// cdebug << pthread_self() << " " << PortName() << " from "
+// << NodeName() << " SUPERV::GraphState " << _State << " "
+// << " --> " << aState << " _EndSwitchPort "
+// << IsEndSwitch() << endl ;
_State = aState ; } ;
SUPERV::GraphState State() { return _State ; } ;
-using namespace std;
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_LoadXml.cxx
+// Module : SUPERV
+using namespace std;
#include "DataFlowBase_XmlHandler.hxx"
//#include <qaccel.h>
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_LoopNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_LoopNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_LoopNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_LoopNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_LOOPNODE_HXX
#define _DATAFLOWBASE_LOOPNODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_OutPort.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_OutPort.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_OutPort.hxx"
//GraphBase::OutPort::~OutPort() {
-//=============================================================================
-// File : DataFlowBase_OutPort.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_OutPort.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_OUTPORT_HXX
#define _DATAFLOWBASE_OUTPORT_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_Port.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_Port.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_Port.hxx"
//GraphBase::Port::~Port() {
-//=============================================================================
-// File : DataFlowBase_Port.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Port.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_PORT_HXX
#define _DATAFLOWBASE_PORT_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_PortsOfNode.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_PortsOfNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_PortsOfNode.hxx"
GraphBase::PortsOfNode::PortsOfNode() :
const SALOME_ModuleCatalog::Service& aService ,
const char *const * NodeName ,
const SUPERV::KindOfNode aKind ,
- const bool DataFlowOrComputing ,
- const bool WithInLoop ,
- const bool WithInGate ,
- const bool WithOutGate ,
+// const bool DataFlowOrComputing ,
+// const bool WithInLoop ,
+// const bool WithInGate ,
+// const bool WithOutGate ,
int * Graph_prof_debug ,
ostream * Graph_fdebug ) {
int i ;
cdebug_in << "DefPortsOfNode : " << *NodeName << endl ;
+ const bool DataFlowOrComputing = (aKind == SUPERV::DataFlowNode) ||
+ (aKind == SUPERV::ComputingNode) ||
+ (aKind == SUPERV::FactoryNode) ;
+// WithInLoop : InitLoop or DoLoop
+ const bool WithInLoop = (aKind == SUPERV::LoopNode) || (aKind == SUPERV::EndLoopNode) ;
+// WithInGate : InGate or Default
+ const bool WithInGate = (aKind == SUPERV::ComputingNode) || (aKind == SUPERV::FactoryNode) ||
+ (aKind == SUPERV::InLineNode) || (aKind == SUPERV::LoopNode) ||
+ (aKind == SUPERV::SwitchNode) || (aKind == SUPERV::EndSwitchNode) ||
+ (aKind == SUPERV::GOTONode) ;
+// WithOutGate : OutGate or Default
+ const bool WithOutGate = (aKind == SUPERV::ComputingNode) || (aKind == SUPERV::FactoryNode) ||
+ (aKind == SUPERV::InLineNode) || (aKind == SUPERV::SwitchNode) ||
+ (aKind == SUPERV::GOTONode) ;
SUPERV::KindOfPort aPortKind = SUPERV::ServiceParameter ;
if ( aKind == SUPERV::InLineNode ) {
aPortKind = SUPERV::InLineParameter ;
SUPERV::LoopParameter );
// _NodeOutPorts[iVec-1]->Kind( SUPERV::LoopParameter ) ;
_NodeOutPorts[iVec-1]->SetDebug( ORB , Graph_prof_debug , Graph_fdebug ) ;
- cdebug << "DefPortsOfNode : " << "_MapOfNodeInPorts[ " << aParametername
+ cdebug << "DefPortsOfNode : " << "_MapOfNodeOutPorts[ " << aParametername
<< " ] = " << iVec << " " << _NodeOutPorts[iVec-1]->Kind() << " "
<< _NodeOutPorts[iVec-1] << endl ;
}
-//=============================================================================
-// File : DataFlowBase_PortsOfNode.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_PortsOfNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_PORTSOFNODE_HXX
#define _DATAFLOWBASE_PORTSOFNODE_HXX
const SALOME_ModuleCatalog::Service& NodeService ,
const char *const * NodeName ,
const SUPERV::KindOfNode aKind ,
- const bool DataFlowOrComputing ,
- const bool WithGateArg ,
- const bool WithInGate , const bool WithOutGate ,
+// const bool DataFlowOrComputing ,
+// const bool WithGateArg ,
+// const bool WithInGate ,
+// const bool WithOutGate ,
int * Graph_prof_debug ,
ostream * Graph_fdebug ) ;
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_Service.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Service.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include "DataFlowBase_Service.hxx"
void GraphBase::Service::SetService( const SALOME_ModuleCatalog::Service aService ) {
-//=============================================================================
-// File : DataFlowBase_Service.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_Service.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_SERVICE_HXX
#define _DATAFLOWBASE_SERVICE_HXX
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_ServicesParameter.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWBASE_SERVICESPARAMETER_HXX
#define _DATAFLOWBASE_SERVICESPARAMETER_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_SwitchNode.cxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_SwitchNode.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <strstream>
#include <iostream>
-//=============================================================================
-// File : DataFlowBase_SwitchNode.hxx
-// Created : 2003
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : DataFlowBase_SwitchNode.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWBASE_SWITCHNODE_HXX
#define _DATAFLOWBASE_SWITCHNODE_HXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_XmlHandler.cxx
-// Created : Thu Sept 13 14:20:36 2001
-// Author : Arnaud RES
-// Project : SALOME
-// Copyright : CEA
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_XmlHandler.cxx
+// Author : Arnaud RES
+// Module : SUPERV
// $Header$
-//#include "SALOME_NamingService.hxx"
-
-//#include <SALOMEconfig.h>
-//#include CORBA_CLIENT_HEADER(SALOME_SuperVision)
-
-//#include "DataFlow_debug.hxx"
-
+using namespace std;
#include "DataFlowBase_XmlHandler.hxx"
#include <qstring.h>
break;
}
case CORBA::tk_objref: {
- aLink.aLinkValue.replace(CORBA::_tc_Object, NULL);
+// aLink.aLinkValue.replace(CORBA::_tc_Object, NULL);
+ aLink.aLinkValue <<= CORBA::Object::_nil() ;
#if TRACE
MESSAGE( " (object reference)" );
#endif
return returnfalse( this , "depth5-8" , qName ) ;
int l = aNode.theListOfFuncName.size() ;
aNode.theListOfFuncName.resize( l+1 ) ;
- aNode.theListOfFuncName[ l ] = fieldvalue[depth].c_str() ;
+ if ( strcmp( fieldvalue[depth].c_str() , "?" ) ) {
+ aNode.theListOfFuncName[ l ] = fieldvalue[depth].c_str() ;
+ }
+ else {
+ aNode.theListOfFuncName[ l ] = "" ;
+ }
aNode.theListOfPythonFunctions.resize( l+1 ) ;
aNode.theListOfPythonFunctions[ l ] = new SUPERV::ListOfStrings() ;
#if TRACE
-//=============================================================================
-// File : GraphBase_XmlHandler.hxx
-// Created : Thu Jun 14 14:02:23 2001
-// Author : Arnaud RES
-// Project : SALOME
-// Copyright : CEA
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : GraphBase_XmlHandler.hxx
+// Author : Arnaud RES
+// Module : SUPERV
// $Header$
#define INCLUDE_MENUITEM_DEF
-#==============================================================================
-# File : Makefile.in
-# Created : aug 21 2001
-# Author : , CEA
-# Project : SALOME
-# Copyright : CEA 2001
+# SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : Makefile.in
+# Author : , CEA
+# Module : SUPERV
# $Header:
-#==============================================================================
-# source path
top_srcdir=@top_srcdir@
-top_builddir=../..
+top_builddir=../../..
srcdir=@srcdir@
VPATH=.:@srcdir@:@top_srcdir@/idl
BIN_SRC =
BIN_SERVER_IDL =
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) \
- -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42 \
- -I${KERNEL_ROOT_DIR}/include/salome
-#LDFLAGS= -L../../../lib $(CORBA_LIBS) -lomniORB3 -ltcpwrapGK -lomniDynamic3 -lomnithread -lCOS3 -lCOSDynamic3 -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeLoggerServer -lc $(PYTHON_LIBS) $(QT_MT_LIBS) $(OGL_LIBS)
-LDFLAGS= $(CORBA_LIBS) -lomniORB3 -ltcpwrapGK -lomniDynamic3 -lomnithread -lCOS3 \
- -lCOSDynamic3 -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeLoggerServer \
- -lc $(QT_MT_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome
-
-LIBS += -L../../lib/salome
+CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES)
+CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42
+LDFLAGS= -L../../../lib $(CORBA_LIBS) -lomniORB3 -ltcpwrapGK -lomniDynamic3 -lomnithread -lCOS3 -lCOSDynamic3 -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeLoggerServer -lc $(PYTHON_LIBS) $(QT_MT_LIBS) $(OGL_LIBS)
+#LDFLAGS= -L../../../lib $(CORBA_LIBS) -lomniORB4 -lomniDynamic4 -lomnithread -lCOS4 -lCOSDynamic4 -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeLoggerServer -lc $(QT_MT_LIBS)
@CONCLUDE@
+// SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SuperVisionBase_CheckOfUndefined.cxx
+// Module : SUPERV
+
using namespace std;
#include <iostream>
#include <fstream>
#include <unistd.h>
-#include "DataFlowBase_Base.hxx"
-#include "DataFlowBase_Graph.hxx"
+#include "Utils_ORB_INIT.hxx"
+#include "Utils_SINGLETON.hxx"
+
+#include "SALOME_NamingService.hxx"
+#include "SALOME_LifeCycleCORBA.hxx"
+
+int _ArgC ;
+char ** _ArgV ;
int main(int argc, char **argv) {
-// debugFile("TestSuperVision.log");
+
+ Engines::Component_var objComponent ;
+ CORBA::Any * anAny = new CORBA::Any() ;
+ CORBA::Object_ptr obj ;
+ char * IOR ;
+
+ ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance() ;
+ ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting()) ;
+ CORBA::ORB_var &orb = init( argc , argv ) ;
+
+ SALOME_NamingService * NamingService = new SALOME_NamingService( orb ) ;
+
+ SALOME_LifeCycleCORBA LCC( NamingService ) ;
+ objComponent = LCC.FindOrLoad_Component( "FactoryServer" , "AddComponent" );
+ if ( CORBA::is_nil( objComponent ) ) {
+ cout << " LCC.FindOrLoad_Component( FactoryServer , AddComponent )" << endl;
+ return 0 ;
+ }
+
+ *anAny <<= objComponent ;
+ IOR = orb->object_to_string( objComponent );
+ cout << "objComponent " << objComponent << " IOR " << IOR << " nil " << CORBA::is_nil( objComponent )
+ << endl ;
+
+ *anAny >>= obj ;
+ IOR = orb->object_to_string( obj );
+ cout << "obj " << obj << " IOR " << IOR << " nil " << CORBA::is_nil( obj )
+ << endl ;
+
return 0;
}
-using namespace std;
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_DataFlow.cxx
+// Module : SUPERV
+using namespace std;
#include "DataFlowEditor_DataFlow.hxx"
// Implementation de la classe GraphEditor::Graph
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_DataFlow.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEDITOR_DATAFLOW_HXX
#define _DATAFLOWEDITOR_DATAFLOW_HXX
GraphExecutor::DataFlow * _DataFlowExecutor ;
bool _ReadOnly ;
bool _Executing ;
+ bool _EditedAfterExecution ;
public:
const char* ToServiceParameterName ,
const CORBA::Any aValue = CORBA::Any() ) ;
+ bool RemoveLink( const char* FromNodeName ,
+ const char* FromServiceParameterName ,
+ const char* ToNodeName ,
+ const char* ToServiceParameterName ) ;
+
bool GetLink(const char* ToNodeName ,
const char* ToServiceParameterName ,
char** FromNodeName ,
const char* ToServiceParameterName ,
const int index , long &X , long &Y ) ;
- bool RemoveLink( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ) ;
-
bool AddInputData( const char* ToNodeName ,
const char* ToParameterName ,
const CORBA::Any aValue = CORBA::Any() ) ;
bool IsExecuting() ;
bool IsEditing() ;
+ void EditedAfterExecution(bool EditedAfterExecution ) ;
+ bool EditedAfterExecution() ;
bool IsReadOnly() ;
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_DataFlow.lxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEDITOR_DATAFLOW_LXX
#define _DATAFLOWEDITOR_DATAFLOW_LXX
const GraphBase::SGraph *aDataFlow ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::LoadDataFlow( aDataFlow ) ;
} ;
inline bool GraphEditor::DataFlow::LoadXml( const char* myFileName ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::LoadXml( myFileName ) ;
} ;
inline bool GraphEditor::DataFlow::LoadInfo( const GraphBase::SNode &aDataFlowInfo ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::LoadInfo( aDataFlowInfo ) ;
} ;
const int NodeY) {
if ( _ReadOnly )
return (GraphEditor::InNode * ) NULL ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::AddNode( NodeService ,
aFuncName , aPythonFunction ,
NodeComponentName ,
inline bool GraphEditor::DataFlow::RemoveNode( const char* NodeName ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::RemoveNode( NodeName ) ;
} ;
const char* NewNodeName ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::ReNameNode( OldNodeName , NewNodeName ) ;
} ;
}
inline void GraphEditor::DataFlow::Coordinates( const int X , const int Y ) {
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::Coordinates( X , Y ) ;
} ;
if ( _ReadOnly )
return false ;
CORBA::Any const * theValue = GetNode( FromNodeName )->GetOutPort( FromServiceParameterName )->Value() ; // Keep the type !
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::AddLink( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
const int nXY ,
const int* X ,
const int* Y ) {
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::AddLinkCoord( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
const int index ,
const int X ,
const int Y ) {
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::AddLinkCoord( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
const int index ,
const int X ,
const int Y ) {
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::ChangeLinkCoord( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
const char* ToNodeName ,
const char* ToServiceParameterName ,
const int index ) {
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::RemoveLinkCoord( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
const char* ToServiceParameterName ) {
if ( _ReadOnly )
return false ;
+ _EditedAfterExecution = true ;
return GraphEditor::OutNode::RemoveLink( FromNodeName ,
FromServiceParameterName ,
ToNodeName ,
return !IsExecuting() ;
}
+inline void GraphEditor::DataFlow::EditedAfterExecution(bool EditedAfterExecution ) {
+ _EditedAfterExecution = EditedAfterExecution ;
+}
+
+inline bool GraphEditor::DataFlow::EditedAfterExecution() {
+ return _EditedAfterExecution ;
+}
+
inline bool GraphEditor::DataFlow::IsReadOnly() {
return _ReadOnly ;
}
inline void GraphEditor::DataFlow::Executor(
GraphExecutor::DataFlow * DataFlowExecutor ) {
+ _Executing = true ;
_DataFlowExecutor = DataFlowExecutor ;
}
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_InNode.cxx
+// Module : SUPERV
+
using namespace std;
#include <string.h>
#include <strstream>
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_InNode.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEDITOR_INNODE_HXX
#define _DATAFLOWEDITOR_INNODE_HXX
-using namespace std;
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_OutNode.cxx
+// Module : SUPERV
+using namespace std;
#include "DataFlowEditor_OutNode.hxx"
#include "DataFlowBase_EndOfLoopNode.hxx"
#include "DataFlowBase_EndOfSwitchNode.hxx"
aMapOfNodes[ *aNodetheName ] = GetGraphNodeIndex( anInNode->Name() ) ;
if ( anInNode->IsOneOfInLineNodes() ) {
anInNode->GraphEditor::InNode::InLineNode()->DefPortsOfNode(
- _Orb , aNode.theService , anInNode->NamePtr() ,
- anInNode->Kind() , false ,
- anInNode->IsLoopNode() || anInNode->IsEndLoopNode() ,
- true , true , Graph_prof_debug() , Graph_fdebug() ) ;
+ _Orb , aNode.theService , anInNode->NamePtr() ,
+ anInNode->Kind() ,
+// false , // DataFlowOrComputing
+// anInNode->IsLoopNode() || anInNode->IsEndLoopNode() , // WithInLoop
+// anInNode->IsInLineNode() || anInNode->IsLoopNode() || anInNode->IsSwitchNode() || anInNode->IsEndSwitchNode() , // WithInGate
+// anInNode->IsInLineNode() || anInNode->IsSwitchNode() || anInNode->IsGOTONode() , // WithOutGate
+ Graph_prof_debug() , Graph_fdebug() ) ;
GraphBase::InLineNode * aINode = anInNode->InLineNode() ;
GraphBase::LoopNode * aLNode = NULL ;
if ( aINode->IsLoopNode() ) {
GraphBase::SLink aLink = aListOfLinks[ i ] ;
string * aLinkFromNodeName = new string( aLink.FromNodeName.c_str() ) ;
string * aLinkToNodeName = new string( aLink.ToNodeName.c_str() ) ;
+ cdebug << "LoadLinks " << aLinkFromNodeName->c_str() << "( "
+ << aLink.FromServiceParameterName.c_str() << " ) --> "
+ << aLinkToNodeName->c_str() << "( "
+ << aLink.FromServiceParameterName.c_str() << " )" << endl ;
RetVal = AddLink( GetGraphNode( aMapOfNodes[ aLinkFromNodeName->c_str() ] )->Name() ,
aLink.FromServiceParameterName.c_str() ,
GetGraphNode( aMapOfNodes[ aLinkToNodeName->c_str() ] )->Name() ,
const CORBA::Any *GraphEditor::OutNode::GetInData(
const char * ToNodeName ,
const char * ToParameterName ) {
- cdebug_in << "GraphEditor::OutNode::GetInData" << endl ;
+// cdebug_in << "GraphEditor::OutNode::GetInData " << ToNodeName
+// << " " << ToParameterName << endl ;
const CORBA::Any * retdata = PortInData( ToNodeName , ToParameterName ) ;
- cdebug_out << "GraphEditor::OutNode::GetInData " << ToNodeName
- << " " << ToParameterName << endl ;
+// cdebug_out << "GraphEditor::OutNode::GetInData" << endl ;
return retdata ;
}
const CORBA::Any *GraphEditor::OutNode::GetOutData(
const char * FromNodeName ,
const char * FromParameterName ) {
- cdebug_in << "GraphEditor::OutNode::GetOutData" << endl ;
+// cdebug_in << "GraphEditor::OutNode::GetOutData " << FromNodeName
+// << " " << FromParameterName << endl ;
const CORBA::Any * retdata = PortOutData( FromNodeName , FromParameterName ) ;
- cdebug_out << "GraphEditor::OutNode::GetOutData " << FromNodeName
- << " " << FromParameterName << endl ;
+// cdebug_out << "GraphEditor::OutNode::GetOutData" << endl ;
return retdata ;
}
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_OutNode.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEDITOR_OUTNODE_HXX
#define _DATAFLOWEDITOR_OUTNODE_HXX
const int NodeX ,
const int NodeY ) ;
GraphEditor::InNode * GetNode( const char* NodeName ) {
- return (GraphEditor::InNode * ) (GraphBase::Graph::GetGraphNode( NodeName )->GetInNode()) ; } ;
+ const GraphBase::Graph::ComputingNode * aNode = GraphBase::Graph::GetGraphNode( NodeName ) ;
+ if ( aNode ) {
+ return (GraphEditor::InNode * ) (aNode->GetInNode()) ;
+ }
+ else {
+ return (GraphEditor::InNode * ) NULL ;
+ } } ;
bool RemoveNode( const char* NodeName ) {
DateModification() ;
_Valid = false ;
-#==============================================================================
-# File : Makefile.in
-# Created : aug 21 2001
-# Author : , CEA
-# Project : SALOME
-# Copyright : CEA 2001
+# SUPERV GraphEditor : contains classes that permit edition of graphs
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : Makefile.in
+# Author : , CEA
+# Module : SUPERV
# $Header:
-#==============================================================================
-# source path
top_srcdir=@top_srcdir@
-top_builddir=../..
+top_builddir=../../..
srcdir=@srcdir@
VPATH=.:@srcdir@:@top_srcdir@/idl
BIN_SRC =
BIN_SERVER_IDL =
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42 -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES)
+CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42
#LDFLAGS+= -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lSalomeSuperVisionExecutor -lOpUtil -lSalomeLoggerServer -lc $(PYTHON_LIBS) $(QT_MT_LIBS) $(OGL_LIBS)
-LDFLAGS+= -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase \
- -lSalomeSuperVisionExecutor -lOpUtil -lSalomeLoggerServer \
- -lc $(QT_MT_LIBS) $(OGL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome
+LDFLAGS+= -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lSalomeSuperVisionExecutor -lOpUtil -lSalomeLoggerServer -lc $(QT_MT_LIBS) $(OGL_LIBS)
@CONCLUDE@
+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SuperVisionEditor_CheckOfUndefined.cxx
+// Module : SUPERV
+
using namespace std;
#include <iostream>
#include <fstream>
#include "DataFlowEditor_DataFlow.hxx"
#include "DataFlowEditor_DataFlow.lxx"
+int _ArgC ;
+char ** _ArgV ;
+
int main(int argc, char **argv) {
return 1;
-using namespace std;
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowExecutor_DataFlow.cxx
+// Module : SUPERV
+using namespace std;
#include "DataFlowExecutor_DataFlow.hxx"
// Implementation de la classe GraphExecutor::Graph
bool GraphExecutor::DataFlow::Suspend() {
cdebug_in << "GraphExecutor::DataFlow::Suspend()" << endl;
- bool RetVal = false ;
- MESSAGE("Suspend not yet implemented.") ;
- cdebug << "Suspend not yet implemented." << endl;
- cdebug_out << "GraphExecutor::DataFlow::Suspend()" << endl;
+ bool RetVal = GraphExecutor::OutNode::Suspend() ;
+ cdebug_out << "GraphExecutor::DataFlow::Suspend()" << RetVal << endl;
return RetVal ;
}
bool GraphExecutor::DataFlow::Resume() {
cdebug_in << "GraphExecutor::DataFlow::Resume()" << endl;
- bool RetVal = false ;
- cdebug << "Resume not yet implemented." << endl;
- cdebug_out << "GraphExecutor::DataFlow::Resume()" << endl;
+ bool RetVal = GraphExecutor::OutNode::Resume() ;
+ cdebug_out << "GraphExecutor::DataFlow::Resume()" << RetVal << endl;
return RetVal ;
}
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowExecutor_DataFlow.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEXECUTOR_DATAFLOW_HXX
#define _DATAFLOWEXECUTOR_DATAFLOW_HXX
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowExecutor_DataFlow.lxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEXECUTOR_DATAFLOW_LXX
#define _DATAFLOWEXECUTOR_DATAFLOW_LXX
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_DynInvoke.cxx
-// Created : 2002
-// Author : Marc Tajchman, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_DynInvoke.cxx
+// Author : Marc Tajchman, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdarg.h>
#include <map>
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowExecutor_DynInvoke.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEXECUTOR_DYNINVOKE_
#define _DATAFLOWEXECUTOR_DYNINVOKE_
-using namespace std;
-//=============================================================================
-// File : DataFlowBase_FiniteStateMachine.cxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_FiniteStateMachine.cxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdlib.h>
#include <iostream>
#include <unistd.h>
-//=============================================================================
-// File : DataFlowBase_FiniteStateMachine.hxx
-// Created : 2002
-// Author : Jean Rahuel, CEA
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV GraphExecutor : contains classes that permit execution of graphs and particularly the execution automaton
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowBase_FiniteStateMachine.hxx
+// Author : Jean Rahuel, CEA
+// Module : SUPERV
+// $Header:
#ifndef _DATAFLOWEXECUTOR_FINITESTATEMACHINE
#define _DATAFLOWEXECUTOR_FINITESTATEMACHINE
bool LoopBeginning = false ;
bool SwitchFinished = false ;
- if ( IsEndLoopNode() && !GetChangeNodeInPort( 1 )->GetOutPort()->BoolValue() ) {
+ if ( IsEndLoopNode() && !GetChangeNodeInPort( 0 )->GetOutPort()->BoolValue() ) {
LoopFinished = true ; // End of Loop
}
if ( IsLoopNode() && GetChangeNodeInPort( 1 )->GetOutPort()->BoolValue() ) {
if ( IsOneOfInLineNodes() ) {
bool StsPyDynInvoke = true ;
+ _OutNode->PThreadLock() ;
try {
if ( IsInLineNode() && (*InLineNode()->PythonFunction()).length() &&
strlen( InLineNode()->PyFuncName() ) ) {
StsPyDynInvoke = PyDynInvoke( InLineNode()->PyRunMethod() ,
InLineNode()->PyFuncName() ,
&aListOfInParameters[2] , ServiceInParameter().length() ,
- &aListOfOutParameters[2] , ServiceOutParameter().length() ) ;
+ &aListOfOutParameters[1] , ServiceOutParameter().length() ) ;
}
else {
cdebug << ThreadNo() << " !ObjInterface " << Name()
StsPyDynInvoke = PyDynInvoke( LoopNode()->PyNextMethod() ,
LoopNode()->PyNextName() ,
&aListOfInParameters[2] , ServiceInParameter().length() ,
- &aListOfOutParameters[2] , ServiceOutParameter().length() ) ;
+ &aListOfOutParameters[1] , ServiceOutParameter().length() ) ;
}
if ( StsPyDynInvoke ) {
cdebug << ThreadNo() << " !ObjInterface " << Name()
<< " OutParameters" << endl ;
int i ;
for ( i = 0 ; i < ServiceInParameter().length() ; i++ ) {
- aListOfInParameters[2 + i].Value = aListOfOutParameters[2+ i].Value ;
- aListOfInParameters[2 + i].Name = aListOfOutParameters[2+ i].Name ;
+ aListOfInParameters[2 + i].Value = aListOfOutParameters[1+ i].Value ;
+ aListOfInParameters[2 + i].Name = aListOfOutParameters[1+ i].Name ;
switch ( aListOfInParameters[2 + i].Value.type()->kind() ) {
case CORBA::tk_string :
cdebug << "Arg" << i << " : "
StsPyDynInvoke = PyDynInvoke( LoopNode()->PyMoreMethod() ,
LoopNode()->PyMoreName() ,
&aListOfInParameters[2] , ServiceInParameter().length() ,
- &aListOfOutParameters[1] , ServiceOutParameter().length()+1 ) ;
+ &aListOfOutParameters[0] , ServiceOutParameter().length()+1 ) ;
}
else {
Err = true ;
StsPyDynInvoke = PyDynInvoke( InLineNode()->PyRunMethod() ,
InLineNode()->PyFuncName() ,
&aListOfInParameters[1] , ServiceInParameter().length() ,
- &aListOfOutParameters[1] , ServiceOutParameter().length() ) ;
+ &aListOfOutParameters[0] , ServiceOutParameter().length() ) ;
}
else if ( (*InLineNode()->PythonFunction()).length() == 0 ||
strlen( InLineNode()->PyFuncName() ) == 0 ) {
<< " Copy of " << ServiceInParameter().length()
<< " OutParameters" << endl ;
int i ;
- int argind0 = 1 ;
- if ( IsEndLoopNode() ) {
- argind0 = 2 ;
+ int argind0 = 0 ;
+ if ( IsEndSwitchNode() ) {
+ argind0 = 0 ;
+ }
+ else if ( IsEndLoopNode() || IsGOTONode() ) {
+ argind0 = 1 ;
}
for ( i = 0 ; i < ServiceInParameter().length() ; i++ ) {
- aListOfOutParameters[argind0 + i].Value = aListOfInParameters[argind0 + i].Value ;
+ aListOfOutParameters[argind0 + i].Value = aListOfInParameters[ 1 + i].Value ;
// aListOfOutParameters[argind0 + i].Name = aListOfInParameters[argind0 + i].Name ;
- switch ( aListOfInParameters[argind0 + i].Value.type()->kind() ) {
+ switch ( aListOfInParameters[ 1 + i].Value.type()->kind() ) {
case CORBA::tk_string :
cdebug << "Arg" << i << " : "
- << aListOfInParameters[argind0 + i].Name.c_str()
+ << aListOfInParameters[ 1 + i].Name.c_str()
<< " Value(string) "
<< aListOfOutParameters[argind0 + i].Name.c_str() << endl ;
break ;
case CORBA::tk_double :
cdebug << "Arg" << i << " : "
- << aListOfInParameters[argind0 + i].Name.c_str()
+ << aListOfInParameters[ 1 + i].Name.c_str()
<< " Value(double) "
<< aListOfOutParameters[argind0 + i].Name.c_str() << endl ;
break ;
case CORBA::tk_long :
cdebug << "Arg" << i << " : "
- << aListOfInParameters[argind0 + i].Name.c_str()
+ << aListOfInParameters[ 1 + i].Name.c_str()
<< " Value(long) "
<< aListOfOutParameters[argind0 + i].Name.c_str() << endl ;
break ;
case CORBA::tk_objref :
cdebug << "Arg" << i << " : "
- << aListOfInParameters[argind0 + i].Name.c_str()
+ << aListOfInParameters[ 1 + i].Name.c_str()
<< " Value(object reference) "
<< aListOfOutParameters[argind0 + i].Name.c_str() << endl ;
break ;
default :
cdebug << "Arg" << i << " : "
- << aListOfInParameters[argind0 + i].Name.c_str()
+ << aListOfInParameters[ 1 + i].Name.c_str()
<< " Value(other) ERROR "
<< aListOfOutParameters[argind0 + i].Name.c_str() << endl ;
}
<< " Python Dynamic Call Exception catched ERROR"
<< endl ;
}
+ _OutNode->PThreadUnLock() ;
}
// else if ( !ObjInterface() ) {
else if ( IsFactoryNode() ) {
DoneAction() ;
if ( IsGOTONode() ||
- ( IsEndLoopNode() && GetNodeInPort(1)->GetOutPort()->BoolValue() ) ) {
- int index ;
- if ( IsGOTONode() ) {
- index = 0 ;
- }
- else {
- index = 1 ;
- CORBA::Any * anAny = new CORBA::Any() ;
- *anAny <<= (long ) 0 ;
- GetChangeNodeOutPort(1)->Value( anAny ) ; // Loop(InLoop) = false
- }
- const GraphBase::OutPort * GateOutPort = GetNodeOutPort(index) ;
+ ( IsEndLoopNode() && GetNodeInPort(0)->GetOutPort()->BoolValue() ) ) {
+// int index ;
+// if ( IsGOTONode() ) {
+// index = 0 ;
+// }
+// else {
+// index = 1 ;
+// CORBA::Any * anAny = new CORBA::Any() ;
+// *anAny <<= (long ) 0 ;
+// GetChangeNodeOutPort(1)->Value( anAny ) ; // Loop(InLoop) = false
+// }
+// const GraphBase::OutPort * GateOutPort = GetNodeOutPort(index) ;
+ const GraphBase::OutPort * GateOutPort = GetNodeOutPort(0) ;
for ( i = 0 ; i < GateOutPort->InPortsSize() ; i++ ) {
const GraphBase::InPort * anInPort = GateOutPort->InPorts( i ) ;
GraphExecutor::InNode * aLabelNode = (GraphExecutor::InNode *) _OutNode->GetChangeGraphNode( anInPort->NodeName() )->GetInNode() ;
for ( j = 1 ; j < GetNodeOutPortsSize() ; j++ ) {
GraphBase::OutPort * aBusParamOutPort = GetChangeNodeOutPort( j ) ;
GraphBase::InPort * aBusParamChangeInPort = NULL ;
- if ( aBusParamOutPort->IsLoop() ) {
- aBusParamChangeInPort = aLabelNode->GetChangeInPort( "InitLoop" ) ;
- }
- else {
+// if ( aBusParamOutPort->IsLoop() ) {
+// aBusParamChangeInPort = aLabelNode->GetChangeInPort( "InitLoop" ) ;
+// }
+// else {
aBusParamChangeInPort = aLabelNode->GetChangeInPort( aBusParamOutPort->PortName() ) ;
- }
-// const GraphBase::InPort * aBusParamInPort = aBusParamChangeInPort ;
-// if ( aBusParamInPort ) {
-// GraphBase::OutPort * anOutPort = aBusParamInPort->GetOutPort() ;
-// anOutPort->Value( aBusParamOutPort->Value() ) ;
-// GraphExecutor::InNode * aFromLabelNode = (GraphExecutor::InNode *) _OutNode->GetChangeGraphNode( anOutPort->NodeName() )->GetInNode() ;
-// if ( aFromLabelNode && !aLabelNode->IsLockedDataWait() ) {
-// res = aLabelNode->SendSomeDataReady( aFromLabelNode->Name() , EndTest ) ;
+// }
if ( aBusParamChangeInPort ) {
aBusParamChangeInPort->ChangeOutPort( aBusParamOutPort ) ;
if ( !aLabelNode->IsLockedDataWait() ) {
<< aLabelNode->Name() << " with datas from "
<< aBusParamOutPort->PortName() << " to port "
<< aBusParamChangeInPort->PortName() << endl;
-// aBusParamChangeInPort->State( SUPERV::ReadyState ) ;
}
}
else {
<< aLabelNode->Name() << endl;
}
}
- const GraphBase::OutPort * aGateOutPort = GetNodeOutPort( index ) ;
- const GraphBase::InPort * aGateInPort = aLabelNode->GetNodeInPort( index ) ;
+// const GraphBase::OutPort * aGateOutPort = GetNodeOutPort( index ) ;
+// const GraphBase::InPort * aGateInPort = aLabelNode->GetNodeInPort( index ) ;
+ const GraphBase::OutPort * aGateOutPort = GetNodeOutPort( 0 ) ; // DoLoop or OutGate
+ const GraphBase::InPort * aGateInPort = aLabelNode->GetNodeInPort( 0 ) ;
if ( aGateInPort ) {
- aGateInPort->GetOutPort()->Value( aGateOutPort->Value() ) ;
+ if ( aGateInPort->GetOutPort() ) {
+ aGateInPort->GetOutPort()->Value( aGateOutPort->Value() ) ;
+ }
if ( !aLabelNode->IsLockedDataWait() ) {
res = aLabelNode->SendSomeDataReady( Name() ) ;
if ( res ) {
}
}
if ( toNode && IsLoopNode() ) {
- GraphBase::OutPort * fromLoopOutPort = GetChangeNodeOutPort(1) ;
+ GraphBase::OutPort * fromLoopOutPort = GetChangeNodeOutPort(0) ;
if ( !fromLoopOutPort->BoolValue() ) {
if ( strcmp( toNode->Name() , CoupledNode()->Name() ) ) {
IgnoreForEndLoop = true ; // toNode is the EndLoopNode
string _Type = CORBA::string_dup(GetChangeNodeOutPort(i)->GetServicesParameter().Parametertype) ;
const char * Type = _Type.c_str() ;
bool OutDone = GetChangeNodeOutPort(i)->Done() ;
-// cdebug << ThreadNo() << " ArgOut" << i << " " << D.Name << " Done("
-// << OutDone << ") " << Type << " : " << endl ;
+ cdebug << ThreadNo() << " ArgOut" << i << " " << D.Name << " Done("
+ << OutDone << ") " << Type << " : " << endl ;
if ( !strcmp( Type , "string" ) ) {
D.Value <<= (char *) NULL ;
}
D.Value <<= (long ) 0 ;
}
else {
- D.Value.replace(CORBA::_tc_Object, NULL);
+// D.Value.replace(CORBA::_tc_Object, NULL);
+ D.Value <<= CORBA::Object::_nil() ;
}
// GetChangeNodeOutPort(i)->Value( D.Value ) ;
-#if 0
+//#if 0
switch (D.Value.type()->kind()) {
case CORBA::tk_string:
char * t;
default:
cdebug << ThreadNo() << " " << "(other ERROR)" << endl ;
}
-#endif
+//#endif
aListOfOutParameters[i] = D ;
}
}
static const char *ComponentName = "SalomeSuperVisionComponent" ;
+extern int _ArgC ;
+extern char ** _ArgV ;
+
GraphExecutor::OutNode::OutNode() :
Graph() {
_Valid = false ;
if ( anInNode->IsOneOfInLineNodes() ) {
anInNode->GraphExecutor::InNode::InLineNode()->DefPortsOfNode(
_Orb , aNode.theService , anInNode->NamePtr() ,
- anInNode->Kind() , false ,
- anInNode->IsLoopNode() || anInNode->IsEndLoopNode() ,
- true , true , Graph_prof_debug() , Graph_fdebug() ) ;
+ anInNode->Kind() ,
+ Graph_prof_debug() , Graph_fdebug() ) ;
#if 0
GraphBase::InLineNode * aINode = anInNode->InLineNode() ;
GraphBase::LoopNode * aLNode = NULL ;
GraphExecutor::InNode * anInNode = (GraphExecutor::InNode *) GraphNodes( i )->GetInNode() ;
if ( !PyInitialized() && anInNode->IsOneOfInLineNodes() ) {
if ( !Py_IsInitialized() ) {
- Py_Initialize() ;
+// Py_Initialize() ;
+ PySys_SetArgv( _ArgC , _ArgV ) ;
}
anInNode->InitPython() ;
PyInitialized( true ) ;
// PushEvent AFTER State and _Done ! ...
PushEvent( NULL , GraphExecutor::EndExecuteEvent ,
OutNodeState ) ;
- Py_Finalize() ;
- PyInitialized( false ) ;
+// Py_Finalize() ;
+// PyInitialized( false ) ;
}
}
cdebug_out << "GraphExecutor::OutNode::CheckAllDone " << _Done
<< _SuspendedThreads << endl ;
}
+void GraphExecutor::OutNode::PThreadLock( pthread_mutex_t * aMutex , char * errmsg ) {
+// if ( strcmp( errmsg , "EventLoop" ) && strcmp( errmsg , "EventW" ) ) {
+// cdebug << "GraphExecutor::OutNode::PThreadLock " << pthread_self() << " " << aMutex << " "
+// << errmsg << endl ;
+// }
+ if ( pthread_mutex_lock( aMutex ) ) {
+ perror( errmsg ) ;
+ exit( 0 ) ;
+ }
+// if ( strcmp( errmsg , "EventLoop" ) && strcmp( errmsg , "EventW" ) ) {
+// cdebug << "GraphExecutor::OutNode::PThreadLocked " << pthread_self() << " " << aMutex << " "
+// << errmsg << endl ;
+// }
+}
+
+void GraphExecutor::OutNode::PThreadUnLock( pthread_mutex_t * aMutex , char * errmsg ) {
+// if ( strcmp( errmsg , "EventLoop" ) && strcmp( errmsg , "EventW" ) ) {
+// cdebug << " GraphExecutor::OutNode::PThreadUnLock " << pthread_self() << " " << aMutex << " "
+// << errmsg << endl ;
+// }
+ if ( pthread_mutex_unlock( aMutex ) ) {
+ perror( errmsg ) ;
+ exit( 0 ) ;
+ }
+}
+
+void GraphExecutor::OutNode::PThreadLock() {
+ cout << " GraphExecutor::OutNode::PThreadLock " << pthread_self() << endl ;
+ if ( pthread_mutex_lock( &_MutexWait ) ) {
+ perror( "GraphExecutor::OutNode::PThreadLock" ) ;
+ exit( 0 ) ;
+ }
+ cout << " GraphExecutor::OutNode::PThreadLocked " << pthread_self() << endl ;
+}
+
+void GraphExecutor::OutNode::PThreadUnLock() {
+ cout << " GraphExecutor::OutNode::PThreadUnLock " << pthread_self() << endl ;
+ if ( pthread_mutex_unlock( &_MutexWait ) ) {
+ perror( "GraphExecutor::OutNode::PThreadUnLock" ) ;
+ exit( 0 ) ;
+ }
+ cout << " GraphExecutor::OutNode::PThreadUnLocked " << pthread_self() << endl ;
+}
+
void GraphExecutor::OutNode::NewThread() {
if ( pthread_mutex_lock( &_MutexWait ) ) {
perror("pthread_mutex_lock _NewThread") ;
bool GraphExecutor::OutNode::PushEvent( GraphExecutor::InNode * aNode ,
GraphExecutor::NodeEvent anEvent ,
SUPERV::AutomatonState aState ) {
- cdebug_in << "PushEvent Threads " << Threads() << " SuspendedThreads "
- << SuspendedThreads() << endl ;
+// cdebug_in << "PushEvent Threads " << Threads() << " SuspendedThreads "
+// << SuspendedThreads() << endl ;
if ( pthread_mutex_lock( &_MutexWait ) ) {
perror("PushEvent pthread_mutex_lock ") ;
exit( 0 ) ;
_States.push_back( aState ) ;
pthread_cond_broadcast( &_EventWait );
if ( aNode ) {
- cdebug << aNode->ThreadNo() << " PushEvent " << aNode->Name() ;
- cdebug << " " << aNode->Automaton()->EventName( anEvent )
- << " " << aNode->Automaton()->StateName( aState )
- << " ControleState "
- << aNode->Automaton()->ControlStateName( aNode->ControlState() ) ;
+// cdebug << aNode->ThreadNo() << " PushEvent " << aNode->Name() ;
+// cdebug << " " << aNode->Automaton()->EventName( anEvent )
+// << " " << aNode->Automaton()->StateName( aState )
+// << " ControleState "
+// << aNode->Automaton()->ControlStateName( aNode->ControlState() ) ;
}
else {
- cdebug << "PushEvent " << Name() ;
- cdebug << " " << theAutomaton->EventName( anEvent ) << " "
- << theAutomaton->StateName( aState ) ;
+// cdebug << "PushEvent " << Name() ;
+// cdebug << " " << theAutomaton->EventName( anEvent ) << " "
+// << theAutomaton->StateName( aState ) ;
}
- cdebug_out << "PushEvent Threads " << Threads() << " SuspendedThreads "
- << SuspendedThreads() << endl ;
+// cdebug_out << "PushEvent Threads " << Threads() << " SuspendedThreads "
+// << SuspendedThreads() << endl ;
if ( pthread_mutex_unlock( &_MutexWait ) ) {
perror("PushEvent pthread_mutex_unlock ") ;
exit( 0 ) ;
const CORBA::Any *GraphExecutor::OutNode::GetInData(
const char * NodeName ,
const char * ServiceParameterName ) {
- cdebug_in << "GraphExecutor::OutNode::GetInData " << NodeName << " "
- << ServiceParameterName << endl ;
+// cdebug_in << "GraphExecutor::OutNode::GetInData " << NodeName << " "
+// << ServiceParameterName << endl ;
const CORBA::Any * retdata = PortInData( NodeName , ServiceParameterName ) ;
- cdebug_out << "GraphExecutor::OutNode::GetInData" << endl ;
+// cdebug_out << "GraphExecutor::OutNode::GetInData" << endl ;
return retdata ;
}
const CORBA::Any *GraphExecutor::OutNode::GetOutData(
const char * NodeName ,
const char * ServiceParameterName ) {
- cdebug_in << "GraphExecutor::OutNode::GetData " << NodeName << " "
- << ServiceParameterName << endl ;
+// cdebug_in << "GraphExecutor::OutNode::GetOutData " << NodeName << " "
+// << ServiceParameterName << endl ;
const CORBA::Any * retdata = PortOutData( NodeName , ServiceParameterName ) ;
- cdebug_out << "GraphExecutor::OutNode::GetOutData" << endl ;
+// cdebug_out << "GraphExecutor::OutNode::GetOutData" << endl ;
return retdata ;
}
void CheckAllDone() ;
+ void PThreadLock( pthread_mutex_t * aMutex , char * errmsg ) ;
+ void PThreadUnLock( pthread_mutex_t * aMutex , char * errmsg ) ;
+ void PThreadLock() ;
+ void PThreadUnLock() ;
+
void NewThread() ;
void ExitThread() ;
void SuspendThread() ;
SUPERV::GraphState & aState ) ;
void State(SUPERV::AutomatonState aState ) ;
+ const char * StateName(SUPERV::AutomatonState aState ) {
+ return theAutomaton->StateName( aState ) ; }
SUPERV::GraphState State() ;
SUPERV::GraphState State( const char * NodeName ) ;
aPyFunc += "import omniORB\n" ;
aPyFunc += "print 'PyObjRef'\n" ;
aPyFunc += "def PyObjRef( IORObjStr ) :\n" ;
-// aPyFunc += " print 'PyObjRef',IORObjStr\n" ;
+ aPyFunc += " print 'PyObjRef',IORObjStr\n" ;
aPyFunc += " orb = CORBA.ORB_init( sys.argv , CORBA.ORB_ID )\n" ;
+ aPyFunc += " print 'PyObjRef orb',orb\n" ;
aPyFunc += " objref = orb.string_to_object( IORObjStr )\n" ;
-// aPyFunc += " print IORObjStr,objref\n" ;
-// aPyFunc += " return objref,objref\n" ;
+ aPyFunc += " print 'PyObjRef IORObjStr objref',IORObjStr,objref\n" ;
aPyFunc += " return objref\n" ;
aPyFunc += "InitPyRunMethod.RunMethod( PyObjRef )\n" ;
if ( PyRun_SimpleString( (char *) aPyFunc.c_str() ) ) {
aPyFunc += "import CORBA\n" ;
aPyFunc += "import omniORB\n" ;
aPyFunc += "def PyObjIor( ObjRef ) :\n" ;
-// aPyFunc += " print 'PyObjIor',ObjRef\n" ;
+ aPyFunc += " print 'PyObjIor',ObjRef\n" ;
aPyFunc += " orb = CORBA.ORB_init( sys.argv , CORBA.ORB_ID )\n" ;
-// aPyFunc += " print 'PyObjIor',orb\n" ;
+ aPyFunc += " print 'PyObjIor orb',orb\n" ;
aPyFunc += " objIor = orb.object_to_string( ObjRef )\n" ;
-// aPyFunc += " print 'PyObjIor',ObjRef,objIor\n" ;
+ aPyFunc += " print 'PyObjIor ObjRef objIor',ObjRef,objIor\n" ;
aPyFunc += " return objIor\n" ;
aPyFunc += "InitPyRunMethod.RunMethod( PyObjIor )\n" ;
if ( PyRun_SimpleString( (char *) aPyFunc.c_str() ) ) {
int n_out = nOutParams ;
const char * sname;
- cdebug_in << "GraphExecutor::InNode::PyDynInvoke " << method << endl ;
+ cdebug_in << ThreadNo() << "GraphExecutor::InNode::PyDynInvoke " << method << " " << n_in
+ << " InArgs " << n_out << " OutArgs" << endl ;
CORBA::Any data ;
PyObject * ArgsList = NULL ;
- PyObject * ArgValue ;
- PyObject * ArgResult ;
- PyObject * Result ;
+ PyObject * ArgValue = NULL ;
+ PyObject * ArgResult = NULL ;
+ PyObject * Result = NULL ;
PyObject * MyPyObjRefList = NULL ;
PyObject * ResultObj = NULL ;
PyObject * MyPyObjIorList = NULL ;
data >>= t ;
ArgValue = Py_BuildValue( "s" , t ) ;
PyTuple_SetItem( ArgsList , i , ArgValue ) ;
- cdebug << "ArgIn" << i << " : " << sname << " Value " << t << " (string) "
+ cdebug << "ArgIn" << i << " : " << sname << " " << method << " Value " << t << " (string) "
<< ArgsList->ob_refcnt << endl ;
break ;
}
data >>= d ;
ArgValue = Py_BuildValue( "d" , d ) ;
PyTuple_SetItem( ArgsList , i , ArgValue ) ;
- cdebug << "ArgIn" << i << " : " << sname << " Value " << d << " (double) "
+ cdebug << "ArgIn" << i << " : " << sname << " " << method << " Value " << d << " (double) "
<< ArgsList->ob_refcnt << endl ;
break ;
}
data >>= l ;
ArgValue = Py_BuildValue( "l" , l ) ;
PyTuple_SetItem( ArgsList , i , ArgValue ) ;
- cdebug << "ArgIn" << i << " : " << sname << " Value " << l
+ cdebug << "ArgIn" << i << " : " << sname << " " << method << " Value " << l
<< " (long) ArgsList->ob_refcnt" << ArgsList->ob_refcnt << endl ;
break ;
}
IORObjRef = ObjectToString( ObjRef ) ;
ObjValue = Py_BuildValue( "s" , IORObjRef ) ;
PyTuple_SetItem( MyPyObjRefList , 0 , ObjValue ) ;
- cdebug << "ArgIn" << i << " : " << sname << " Value " << IORObjRef << " (objref) "
+ cdebug << "ArgIn" << i << " : " << sname << method << " " << " Value " << IORObjRef << " (objref) "
<< MyPyObjRefList->ob_refcnt << endl ;
ResultObj = PyEval_CallObject( MyPyObjRef , MyPyObjRefList ) ;
cdebug << "MyPyObjRefList->ob_refcnt" << MyPyObjRefList->ob_refcnt << " "
<< "ResultObj->ob_refcnt" << ResultObj->ob_refcnt << endl ;
PyObject_Print( ResultObj , stdout , 0 ) ;
PyTuple_SetItem( ArgsList , i , ResultObj ) ;
- cdebug << "ArgIn" << i << " : " << sname << " Value (objref) ArgsList->ob_refcnt"
+ cdebug << "ArgIn" << i << " : " << sname << " " << method << " Value (objref) ArgsList->ob_refcnt"
<< ArgsList->ob_refcnt << " ResultObj->ob_refcnt" << ResultObj->ob_refcnt
<< endl ;
break ;
if ( ArgValue == NULL ) {
ArgValue = Result ;
}
+ if ( !PyString_Check( ArgValue ) ) {
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " ERROR (string)" << endl ;
+ }
t = PyString_AsString( ArgValue ) ;
data <<= t ;
- cdebug << "ArgOut" << i << " : " << sname << " Value " << t << " (string)"
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << t << " (string)"
<< endl ;
break ;
}
case CORBA::tk_double : {
double d ;
ArgValue = PyTuple_GetItem( Result , i ) ;
+ if ( !PyFloat_Check( ArgValue ) ) {
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " ERROR (double)" << endl ;
+ }
if ( ArgValue == NULL ) {
ArgValue = Result ;
}
d = PyFloat_AsDouble( ArgValue ) ;
data <<= d ;
- cdebug << "ArgOut" << i << " : " << sname << " Value " << d << " (double)"
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << d << " (double)"
<< endl ;
break ;
}
if ( ArgValue == NULL ) {
ArgValue = Result ;
}
+ if ( !PyInt_Check( ArgValue ) ) {
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " ERROR (long)" << endl ;
+ }
l = PyInt_AsLong( ArgValue ) ;
data <<= l ;
- cdebug << "ArgOut" << i << " : " << sname << " Value " << l << " (long)" << endl ;
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << l << " (long)" << endl ;
break ;
}
case CORBA::tk_objref : {
if ( ObjIor == NULL ) {
ObjIor = Result ;
}
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << "(object reference) "<< endl ;
+ cout << "ArgOut" << i << " : " << sname << " " << method << " Value " << "(object reference) : " ;
Py_INCREF( ObjIor ) ;
PyObject_Print( ObjIor , stdout , 0 ) ;
PyTuple_SetItem( MyPyObjIorList , 0 , ObjIor ) ;
ObjRef = StringToObject( IOR ) ;
data <<= ObjRef ;
IORObjRef = ObjectToString( ObjRef ) ;
- cdebug << "ArgOut" << i << " : " << sname << " Value " << "(object reference) "
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << "(object reference) "
<< IORObjRef << endl ;
}
else {
cdebug_out << "GraphExecutor::InNode::PyDynInvoke Error ResultIor == NULL"
- << endl ;
+ << method << " " << endl ;
RetVal = false ;
}
break ;
}
default : {
- cdebug << "ArgOut" << i << " : " << sname << " Value " << "(other ERROR)" << endl ;
+ cdebug << "ArgOut" << i << " : " << sname << " " << method << " Value " << "(other ERROR)" << endl ;
}
}
outParams[i].Value = data ;
if ( MyPyObjIorList ) {
int cnt = MyPyObjIorList->ob_refcnt ;
- while ( cnt ) {
+ while ( cnt > 0 ) {
cnt = MyPyObjIorList->ob_refcnt - 1 ;
Py_DECREF( MyPyObjIorList ) ;
+ cdebug << "MyPyObjIorList->ob_refcnt" << MyPyObjIorList->ob_refcnt << endl ;
+ }
+ }
+ if ( ResultIor ) {
+ int cnt = ResultIor->ob_refcnt ;
+ while ( cnt > 0 ) {
+ cnt = ResultIor->ob_refcnt - 1 ;
Py_DECREF( ResultIor ) ;
- cdebug << "MyPyObjIorList->ob_refcnt" << MyPyObjIorList->ob_refcnt << " "
- << "ResultIor->ob_refcnt" << ResultIor->ob_refcnt << endl ;
+ cdebug << "ResultIor->ob_refcnt" << ResultIor->ob_refcnt << endl ;
}
}
Py_DECREF( Result ) ;
Py_DECREF( ArgsList ) ;
if ( MyPyObjRefList ) {
int cnt = MyPyObjRefList->ob_refcnt ;
- while ( cnt ) {
+ while ( cnt > 0 ) {
cnt = MyPyObjRefList->ob_refcnt - 1 ;
Py_DECREF( MyPyObjRefList ) ;
+ cdebug << "MyPyObjRefList->ob_refcnt" << MyPyObjRefList->ob_refcnt << endl ;
+ }
+ }
+ if ( ResultObj ) {
+ int cnt = ResultObj->ob_refcnt ;
+ while ( cnt > 0 ) {
+ cnt = ResultObj->ob_refcnt - 1 ;
Py_DECREF( ResultObj ) ;
- cdebug << "MyPyObjRefList->ob_refcnt" << MyPyObjRefList->ob_refcnt << " "
- << "ResultObj->ob_refcnt" << ResultObj->ob_refcnt << endl ;
+ cdebug << "ResultObj->ob_refcnt" << ResultObj->ob_refcnt << endl ;
}
}
# source path
top_srcdir=@top_srcdir@
-top_builddir=../..
+top_builddir=../../..
srcdir=@srcdir@
VPATH=.:@srcdir@:@top_srcdir@/idl
BIN_SRC =
BIN_SERVER_IDL =
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42 -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES)
+CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42
#LDFLAGS+= -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lOpUtil -lSalomeLoggerServer -lc $(PYTHON_LIBS) $(QT_MT_LIBS) $(OGL_LIBS)
-LDFLAGS+= -export-dynamic -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lOpUtil -lSalomeLoggerServer -lc $(QT_MT_LIBS) $(OGL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome
+LDFLAGS+= -export-dynamic -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeSuperVisionBase -lOpUtil -lSalomeLoggerServer -lc $(QT_MT_LIBS) $(OGL_LIBS)
@CONCLUDE@
-#==============================================================================
-# File : Makefile.in
-# Created : ven déc 7 13:32:20 CET 2001
-# Author : Paul RASCLE, EDF
-# Project : SALOME
-# Copyright : EDF 2001
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : Makefile.in
+# Author : Patrick GOLDBRONN (CEA)
+# Module : SUPERV
# $Header$
-#==============================================================================
-# source path
top_srcdir=@top_srcdir@
-top_builddir=..
+top_builddir=../..
srcdir=@srcdir@
VPATH=.:@srcdir@
+
@COMMENCE@
SUBDIRS = GraphBase GraphExecutor GraphEditor Supervision SUPERVGUI
-##==============================================================================
-# File : Makefile.in
-# Created : aug 29 16:50:13 CEA 2001
-# Author : Arnaud RES, OPENCASCADE
-# Project : SALOME
-# Copyright : CEA 2001
+# SUPERV SUPERVGUI : GUI for Supervisor component
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : Makefile.in
+# Author : Arnaud RES, OPENCASCADE
+# Module : SUPERV
# $Header:
-#==============================================================================
-# source path
top_srcdir=@top_srcdir@
-top_builddir=../..
+top_builddir=../../..
srcdir=@srcdir@
VPATH=.:@srcdir@
# .po files to transform in .qm
PO_FILES = \
- SUPERVGUI_icons.po \
- SUPERVGUI_msg_en.po \
- SUPERVGUI_msg_fr.po
+ SupervisionGUI_icons.po \
+ SupervisionGUI_msg_en.po \
+ SupervisionGUI_msg_fr.po
# Libraries targets
-LIB = libSUPERVGUI.la
+LIB = libSupervisionGUI.la
LIB_SRC = SUPERVGUI.cxx \
SUPERVGUI_Service.cxx \
LIB_SERVER_IDL =
CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) \
- -ftemplate-depth-42 -I${KERNEL_ROOT_DIR}/include/salome
+ -I$(top_builddir)/inc -ftemplate-depth-42
LDFLAGS+=$(QT_MT_LIBS) $(OCC_LIBS) $(VTK_LIBS) $(OGL_LIBS) \
- -lSalomeGUI -lSalomeNS -lqsplitterP \
- -lSalomeLifeCycleCORBA -lSalomeNotification -lSUPERVGraph \
- -L${KERNEL_ROOT_DIR}/lib/salome
+ -L$(top_builddir)/lib -lSalomeGUI -lSalomeNS -lqsplitterP \
+ -lSalomeLifeCycleCORBA -lSalomeNotification -lSUPERVGraph
LIBS+= $(PYTHON_LIBS)
-using namespace std;
-// File : SUPERVGUI.cxx
-// Created : 31 octobre 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI.h"
#include "QAD_Resource.h"
void SUPERVGUI::loadEngine(SALOME_NamingService* namingService) {
Trace("SUPERVGUI::loadEngine")
SALOME_LifeCycleCORBA LCC(namingService);
- Engines::Component_var objComponent = LCC.FindOrLoad_Component("SuperVisionContainer", "SUPERV");
+ Engines::Component_var objComponent = LCC.FindOrLoad_Component("SuperVisionContainer", "Supervision");
if (CORBA::is_nil(objComponent)) {
QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CANT_LOAD_SUPERV"));
return;
-// File : SUPERVGUI.h
-// Created : 31 octobre 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_H
#define SUPERVGUI_H
-using namespace std;
-// File : SUPERVGUI_Array.cxx
-// Created : 08 / 02 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Array.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Def.h"
#include "SUPERVGUI_Array.h"
#include "SUPERVGUI_Main.h"
#include "SUPERVGUI_ComputeNode.h"
#include "SUPERVGUI_BrowseNodeDlg.h"
+#include "SUPERVGUI_Node.h"
+#include "SUPERVGUI_GraphNode.h"
+#include "SUPERVGUI_ControlNode.h"
#include <qtooltip.h>
#include <qlayout.h>
addChild(aNode, x, y); \
x += (CELL_WIDTH + CELL_SPACE); \
SUPERV_CNode aCNodeEnd = SUPERV::CNode::_narrow(nodes->NodesName[co]->Coupled()); \
- SUPERVGUI_Node* aNodeEnd = new SUPERVGUI_Cell(viewport(), main, aCNodeEnd); \
+ SUPERVGUI_Node* aNodeEnd = new SUPERVGUI_CellEndControl(viewport(), main, aCNodeEnd, dynamic_cast<SUPERVGUI_Cell*>(aNode)); \
ResizeGraph(aNodeEnd, x, y); \
addChild(aNodeEnd, x, y); \
x += (CELL_WIDTH + CELL_SPACE); \
};
delete ihmList;
+
+ SUPERVGUI_CellEndControl* cellEC;
+ QObjectList* ihmListEC = queryList("SUPERVGUI_CellEndControl");
+ QObjectListIt iEC(*ihmListEC);
+
+ while ((cellEC=(SUPERVGUI_CellEndControl*)iEC.current()) != 0) {
+ ++iEC;
+ cellEC->updateStudy();
+ cellEC->close(true);
+ };
+
+ delete ihmListEC;
+
}
void SUPERVGUI_Array::sync() {
myStatus->reparent(this, pos());
aBox->addWidget(myStatus);
- // QToolTip::add(service, myNode->Name());
- QToolTip::add(myTitle, myTitle->text());
+ if(m->isEditable()) {
+ // QToolTip::add(service, myNode->Name());
+ QToolTip::add(myTitle, myTitle->text());
+ QToolTip::add(component, component->text());
+ }
myPopup->setItemEnabled(myDeleteItem, false);
adjustSize();
+
+ myIsControl = false;
+ myIsStart = false;
+
+ //check for control nodes
+ if (n->IsLoop() || n->IsSwitch()) {
+ myIsControl = true;
+ myIsStart = true;
+ }
+ if (n->IsEndLoop() || n->IsEndSwitch())
+ myIsControl = true;
}
SUPERVGUI_Cell::~SUPERVGUI_Cell() {
void SUPERVGUI_Cell::rename() {
SUPERVGUI_Node::rename();
- myTitle->setText(myNode->Name());
+ if (!myIsControl) { //not ControlNode
+ myTitle->setText(myNode->Name());
+ }
+ else {
+ if (myIsStart) { //StartControlNode
+ if (myPairCell) {
+ QString nm = myNode->Name();
+ if (!nm.isEmpty()) {
+ myTitle->setText(nm);
+ QString aStr(tr("ENDNODE_PREFIX"));
+ aStr += nm;
+ myPairCell->getTitle()->setText(aStr);
+ myPairCell->setNodeName(aStr);
+ // QToolTip::remove(myPairCell->getTitle());
+ QToolTip::add(myPairCell->getTitle(), myPairCell->getTitle()->text());
+
+ }
+ }
+ }
+ }
+
// QToolTip::remove(myTitle);
- //QToolTip::add(myTitle, myTitle->text());
+ QToolTip::add(myTitle, myTitle->text());
+}
+
+void SUPERVGUI_Cell::setPairCell(SUPERVGUI_Cell* thePairCell) {
+ if (myIsControl) { //only for ControlNode
+ myPairCell = thePairCell;
+ }
+ else
+ myPairCell = 0;
+}
+
+SUPERVGUI_Cell* SUPERVGUI_Cell::getPairCell() {
+ return myPairCell;
+}
+
+SUPERVGUI_CellEndControl::SUPERVGUI_CellEndControl(QWidget* parent, SUPERVGUI_Main* m, SUPERV_CNode n,
+ SUPERVGUI_Cell* theStart)
+ :SUPERVGUI_Cell(parent, m, n)
+{
+ myPairCell = theStart; //set start cell for end cell as pair
+ myPairCell->setPairCell(dynamic_cast<SUPERVGUI_Cell*>(this)); //set end cell for start cell as pair
+}
+
+SUPERVGUI_CellEndControl::~SUPERVGUI_CellEndControl() {
+ Trace("SUPERVGUI_CellEndControl::~SUPERVGUI_CellEndControl");
+ QToolTip::remove(myTitle);
+ if (guiNode != NULL) {
+ guiNode->close();
+ }
}
-// File : SUPERVGUI_Array.h
-// Created : 08 / 02 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Array.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Array_H
#define SUPERVGUI_Array_H
#include "SUPERVGUI_Def.h"
#include <qpopupmenu.h>
#include "SUPERVGUI_Node.h"
+#include "SUPERVGUI_ControlNode.h"
#include "SUPERVGUI_View.h"
#include "SUPERVGUI_Label.h"
void showAll() {};
void updateStudy();
+ SUPERVGUI_Label* getTitle() { return myTitle; }
+ SUPERVGUI_Label* getComponent() { return component; }
+ void setPairCell(SUPERVGUI_Cell* thePairCell);
+ SUPERVGUI_Cell* getPairCell();
public slots:
virtual void rename();
- private:
+ protected:
+ SUPERVGUI_Cell* myPairCell; //for ControlNodes
SUPERVGUI_Label* myTitle;
SUPERVGUI_Node* guiNode;
+
+ private:
SUPERVGUI_Label* component;
//SUPERVGUI_Label* service;
int myShowItem;
+ bool myIsControl;
+ bool myIsStart;
+};
+
+class SUPERVGUI_CellEndControl: public SUPERVGUI_Cell {
+ Q_OBJECT
+
+ public:
+ SUPERVGUI_CellEndControl(QWidget* parent, SUPERVGUI_Main* m, SUPERV_CNode n, SUPERVGUI_Cell* theStart);
+ virtual ~SUPERVGUI_CellEndControl();
};
#endif
-using namespace std;
-// File : SUPERVGUI_BrowseNodeDlg.cxx
-// Created : 10 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_BrowseNodeDlg.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_BrowseNodeDlg.h"
#include "SUPERVGUI_Node.h"
#include "SUPERVGUI.h"
if (aObj->FindAttribute( anAttr, "AttributeIOR" ) ) {
anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
ior = anIOR->Value();
- myActiveField->setData( ior );
}
+ else {
+ ior = aObj->GetStudy()->ConvertObjectToIOR( aObj );
+ }
+ myActiveField->setData( ior );
}
}
}
if (aObj->FindAttribute( anAttr, "AttributeIOR" ) ) {
anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
ior = anIOR->Value();
- myField->setData( ior );
}
+ else {
+ ior = aObj->GetStudy()->ConvertObjectToIOR( aObj );
+ }
+ myField->setData( ior );
}
}
}
-// File : SUPERVGUI_BrowseNodeDlg.h
-// Created : 10 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_BrowseNodeDlg.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_BrowseNodeDlg_H
#define SUPERVGUI_BrowseNodeDlg_H
-using namespace std;
-// File : SUPERVGUI_ComputeNode.cxx
-// Created : 09 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_ComputeNode.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_ComputeNode.h"
#include "SUPERVGUI_Main.h"
#include <qapplication.h>
myServiceBox = new QVBox(this, "service");
myComment = new SUPERVGUI_Label(myServiceBox, LABEL_WIDTH, LABEL_HEIGHT, aComment, QLabel::AlignLeft);
connect(myComment, SIGNAL(MousePress(QMouseEvent*)), this, SLOT(showPopup(QMouseEvent*)));
+ QToolTip::add(myTitle, myTitle->text());
QToolTip::add(myComment, myComment->text());
aGridLayout->addMultiCellWidget(myServiceBox, 1, 1, 0, 1);
SUPERVGUI_ComputeNode::~SUPERVGUI_ComputeNode() {
+ QToolTip::remove(myTitle);
QToolTip::remove(myComment);
}
myShowPopup->setItemChecked(myPortsItem, !aIsVisible);
}
+void SUPERVGUI_ComputeNode::rename() {
+ SUPERVGUI_Node::rename();
+ // QToolTip::remove(myTitle);
+ QToolTip::add(myTitle, myTitle->text());
+}
void SUPERVGUI_ComputeNode::updateShape() {
qApp->processEvents();
-// File : SUPERVGUI_ComputeNode.h
-// Created : 09 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_ComputeNode.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_ComputeNode_H
#define SUPERVGUI_ComputeNode_H
void sync();
void hideAll();
void showAll();
+ SUPERVGUI_Label* getCommLabel() { return myComment; }
+ SUPERVGUI_Label* getTitleLabel() { return myTitle; }
virtual void updateShape();
public slots:
void switchService();
void switchPorts();
+ virtual void rename();
private:
-using namespace std;
-// File : SUPERVGUI_ControlNode.cxx
-// Created : 14 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_ControlNode.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_ControlNode.h"
#include <qapplication.h>
#include "SUPERVGUI_Main.h"
myEndNode = theEndNode;
}
+SUPERVGUI_EndControlNode* SUPERVGUI_StartControlNode::getEndNode() {
+ return myEndNode;
+}
+
void SUPERVGUI_StartControlNode::setShape() {
int aH = height();
-// File : SUPERVGUI_ControlNode.h
-// Created : 14 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_ControlNode.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_ControlNode_H
#define SUPERVGUI_ControlNode_H
virtual void deletePort(SUPERVGUI_Port* thePort);
void setEndNode(SUPERVGUI_EndControlNode* theEndNode);
+ SUPERVGUI_EndControlNode* getEndNode();
virtual QPoint getOutConnectPnt();
-using namespace std;
-// File : SUPERVGUI_CtrlLink.cxx
-// Created : 14 / 05 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_CtrlLink.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_CtrlLink.h"
#include "SUPERVGUI_Graph.h"
#include "SUPERVGUI_GraphNode.h"
-// File : SUPERVGUI_CtrlLink.h
-// Created : 14 / 05 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_CtrlLink.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_CTRLLink_H
#define SUPERVGUI_CTRLLink_H
-// File : SUPERVGUI_Def.h
-// Created : 18 / 11 / 2002
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_Def.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_DEF_H
#define SUPERVGUI_DEF_H
-using namespace std;
-// File : SUPERVGUI_Graph.cxx
-// Created : 17 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Graph.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Def.h"
#include "SUPERVGUI_Graph.h"
#include "SUPERVGUI_Main.h"
-// File : SUPERVGUI_Graph.h
-// Created : 17 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Graph.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Graph_H
#define SUPERVGUI_Graph_H
void draw();
void clearView();
+ bool isAnyLinkCreating() { return (myNewLink != 0);};
+
signals:
void mouseMoved(QMouseEvent* theEvent);
void mousePressed(QMouseEvent* theEvent);
-using namespace std;
-// File : SUPERVGUI_ComputeNode.cxx
-// Created : 09 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_ComputeNode.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_GraphNode.h"
#include "SUPERVGUI_Graph.h"
#include "SUPERVGUI_Main.h"
}
void SUPERVGUI_GraphNode::mouseTitlePress(QMouseEvent* e) {
- if (e->button() == RightButton) {
- MouseLeft = 0;
- showPopup(e);
- } else {
- MouseLeft = 1;
- SUPERVGUI_Graph* sv = myMain->getGraph();
- MouseX = sv->childX(this) - e->globalX();
- MouseY = sv->childY(this) - e->globalY();
+ if (!myMain->getGraph()->isAnyLinkCreating()) {
+ if (e->button() == RightButton) {
+ MouseLeft = 0;
+ showPopup(e);
+ } else {
+ MouseLeft = 1;
+ SUPERVGUI_Graph* sv = myMain->getGraph();
+ MouseX = sv->childX(this) - e->globalX();
+ MouseY = sv->childY(this) - e->globalY();
+ }
}
}
pi->sync();
}
delete ihmList;
+
+ //check: is creation of link is complete
+ if (myMain->getGraph()->isAnyLinkCreating()) {
+ //not creation complete
+ //cout<<" --- $$$ 1"<<endl;
+ myPopup->setItemEnabled(myDeleteItem, false);
+ }
+ else {
+ //creation complete
+ myPopup->setItemEnabled(myDeleteItem, true);
+ }
}
-// File : SUPERVGUI_GraphNode.h
-// Created : 10 / 01 / 2003
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_GraphNode.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_GraphNode_H
#define SUPERVGUI_GraphNode_H
-using namespace std;
-// File : SUPERVGUI_Information.cxx
-// Created : 22 / 01 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Information.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Information.h"
#include "QAD_Application.h"
#include "QAD_Desktop.h"
contV = new QLineEdit( TopGroup );
contV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
contV->setMinimumSize( 200, 0 );
+ contV->setReadOnly( true/*isReadOnly*/ );
+ contV->setText( SUPERV::FNode::_narrow(node)->GetContainer() );
+
+ compnameL = new QLabel( tr( "COMPONENT_NAME_LBL" ), TopGroup );
+ compnameV = new QLineEdit( TopGroup );
+ compnameV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ compnameV->setMinimumSize( 200, 0 );
+ compnameV->setReadOnly( true/*isReadOnly*/ );
+ compnameV->setText( SUPERV::FNode::_narrow(node)->GetComponentName() );
+
+ intnameL = new QLabel( tr( "INTERFACE_NAME_LBL" ), TopGroup );
+ intnameV = new QLineEdit( TopGroup );
+ intnameV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ intnameV->setMinimumSize( 200, 0 );
+ intnameV->setReadOnly( true/*isReadOnly*/ );
+ intnameV->setText( SUPERV::FNode::_narrow(node)->GetInterfaceName() );
+
}
QLabel* cdatL = new QLabel( tr( "DATE_CREATION_LBL" ), TopGroup );
cdatV = new QLabel( TopGroup );
if (node->IsFactory()) {
TopGroupLayout->addWidget( contL, 2, 0 );
TopGroupLayout->addWidget( contV, 2, 1 );
+ TopGroupLayout->addWidget( compnameL, 3, 0 );
+ TopGroupLayout->addWidget( compnameV, 3, 1 );
+ TopGroupLayout->addWidget( intnameL, 4, 0 );
+ TopGroupLayout->addWidget( intnameV, 4, 1 );
}
- TopGroupLayout->addWidget( cdatL, 3, 0 );
- TopGroupLayout->addWidget( cdatV, 3, 1 );
- TopGroupLayout->addWidget( udatL, 4, 0 );
- TopGroupLayout->addWidget( udatV, 4, 1 );
- TopGroupLayout->addWidget( commL, 5, 0 );
- TopGroupLayout->addMultiCellWidget( commV, 5, 6, 1, 1 );
- TopGroupLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding ), 6, 0 );
+ TopGroupLayout->addWidget( cdatL, 5, 0 );
+ TopGroupLayout->addWidget( cdatV, 5, 1 );
+ TopGroupLayout->addWidget( udatL, 6, 0 );
+ TopGroupLayout->addWidget( udatV, 6, 1 );
+ TopGroupLayout->addWidget( commL, 7, 0 );
+ TopGroupLayout->addMultiCellWidget( commV, 7, 8, 1, 1 );
+ TopGroupLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding ), 8, 0 );
TopGroupLayout->setColStretch( 1, 5 );
QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" );
Trace("SUPERVGUI_Information::okButton");
myNode->SetName( nameV->text().latin1());
myNode->SetAuthor( authV->text().latin1() );
- if (myNode->IsFactory()) {
+ /*if (myNode->IsFactory()) {
SUPERV_FNode aFNode = SUPERV::FNode::_narrow(myNode);
aFNode->SetContainer( contV->text().latin1() );
- }
+ }*/
myNode->SetComment( commV->text().latin1() );
accept();
}
-// File : SUPERVGUI_Information.h
-// Created : 22 / 01 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Information.h
+// Author : Francis KLOSS
+// Module : SUPERV
using namespace std;
#ifndef SUPERVGUI_Information_H
QLineEdit* authV;
QLineEdit* contV;
QLabel* contL;
+
+ QLineEdit* compnameV;
+ QLabel* compnameL;
+
+ QLineEdit* intnameV;
+ QLabel* intnameL;
+
QMultiLineEdit* commV;
QLabel* cdatV;
QLabel* udatV;
-using namespace std;
-// File : SUPERVGUI_Label.cxx
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Label.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Label.h"
#include "SUPERVGUI_Def.h"
-// File : SUPERVGUI_Label.h
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
-
-//#include "SUPERVGUI.h"
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Label.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Label_H
#define SUPERVGUI_Label_H
-using namespace std;
-// File : SUPERVGUI_Link.cxx
-// Created : 20 / 12 / 2002
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_Link.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Graph.h"
#include "SUPERVGUI_Main.h"
#include "SUPERVGUI_Link.h"
x = x * x;
int y = y2 - y1;
y = y * y;
- return (int) sqrt(x + y);
+ return (int) sqrt((float)(x + y));
}
-// File : SUPERVGUI_Link.h
-// Created : 20 / 12 / 2002
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_Link.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_Link_H
#define SUPERVGUI_Link_H
-using namespace std;
-// File : SUPERVGUI_Main.cxx
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Main.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "QAD_Splitter.h"
#include "QAD_LeftFrame.h"
#include "QAD_ObjectBrowser.h"
father = builder->NewComponent(STUDY_SUPERVISION);
anAttr = builder->FindOrCreateAttribute(father, "AttributeName");
aName = SALOMEDS::AttributeName::_narrow(anAttr);
- //aName->SetValue("Supervision");
- aName->SetValue( QAD_Application::getDesktop()->getComponentUserName( "SUPERV" ) );
+ aName->SetValue("Supervision");
anAttr = builder->FindOrCreateAttribute(father, "AttributePixMap");
aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_DF_NOTVALID"));
} else if (!dataflow->IsExecutable()) {
QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_DF_NOTEXECUTABLE"));
+ } else if (graph->isAnyLinkCreating()) {
+ QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CRL_NOTCOMPLETE"));
} else {
myRunTime = QDateTime::currentDateTime();
if (myIsKilled) {
void SUPERVGUI_Main::startExecute() {
Trace("SUPERVGUI_Main::startExecute")
- if ((SUPERV_isNull(dataflow))) return;
+ if ((SUPERV_isNull(dataflow))) return;
if (dataflow->IsEditing()) {
if (!dataflow->IsValid()) {
QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_DF_NOTVALID"));
} else if (!dataflow->IsExecutable()) {
QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_DF_NOTEXECUTABLE"));
+ } else if (graph->isAnyLinkCreating()) {
+ QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CRL_NOTCOMPLETE"));
} else {
myRunTime = QDateTime::currentDateTime();
if (myIsKilled) {
isIn = false;
return false;
}
+ } else { // component has no drivel, but could store IORs (like Calculator)
+ SALOMEDS::SObject_var anIORSO = aStudy->FindObjectIOR(p->ToString());
+ if (!CORBA::is_nil(anIORSO)) aBuilder->Addreference(aSO, anIORSO);
}
}
} else {
-// File : SUPERVGUI_Main.h
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Main.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Main_H
#define SUPERVGUI_Main_H
-using namespace std;
-// File : SUPERVGUI_Node.cxx
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Node.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Node.h"
#include "SUPERVGUI_Main.h"
#include "SUPERVGUI_Python.h"
#include "SUPERVGUI_BrowseNodeDlg.h"
#include "SALOMEGUI_NameDlg.h"
#include "SUPERVGUI_Information.h"
+#include "SUPERVGUI_ComputeNode.h"
+#include "SUPERVGUI_ControlNode.h"
#include <qlayout.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qhbox.h>
#include <qgroupbox.h>
+#include <qtooltip.h>
//create common popup
myPopup = new QPopupMenu(this);
- if (myMain->isEditable()) {
+ if (myMain->isEditable() && getNodeType() != SUPERV::EndLoopNode
+ && getNodeType() != SUPERV::EndSwitchNode) {
myRenameItem = myPopup->insertItem(tr("MSG_RENAME"), this, SLOT(rename()));
myDeleteItem = myPopup->insertItem(tr("MSG_DELETE"), this, SLOT(remove()));
mySeparatorId = myPopup->insertSeparator();
}
myPopup->insertItem(tr("MSG_BROWSE"), this, SLOT(browse()));
- myPopup->insertItem(tr("MSG_CHANGE_INFO"), this, SLOT(changeInformation()));
+ if ((getNodeType() != SUPERV::EndLoopNode) && (getNodeType() != SUPERV::EndSwitchNode))
+ myPopup->insertItem(tr("MSG_CHANGE_INFO"), this, SLOT(changeInformation()));
//myPopup->insertItem(tr("MSG_CONFIGURE"), this, SLOT(configure()));
if (myMain->isEditable() && (getNodeType() != SUPERV::FactoryNode)
break;
}
myTime->setPaletteBackgroundColor(myStatus->paletteBackgroundColor());
- int sec = 0; //myNode->getTime();
+ long sec = 0; //myNode->CpuUsed();
// sec++;
char hms[9];
- int s = sec/3600;
+ long s = sec/3600;
hms[0]=(char)(((s/10)%10)+48);
hms[1]=(char)((s%10)+48);
hms[2]=':';
if (aDlg->exec() )
sync();
delete aDlg;
+ if (myNode->IsGOTO()) {
+ QString nmGT = myNode->Name();
+ if ( !nmGT.isEmpty() ) {
+ setNodeName(nmGT);
+ }
+ }
+ if (myMain->isEditable()) {
+ if (myMain->isArrayShown()) { //Table View
+ if (myNode->IsLoop() || myNode->IsSwitch()) { //for synchronic names changing
+ QString nmA = myNode->Name();
+ if ( !nmA.isEmpty() ) {
+ setNodeName(nmA);
+ QString aStrA(tr("ENDNODE_PREFIX"));
+ aStrA+=nmA;
+ (dynamic_cast<SUPERVGUI_Cell*>(this))->getPairCell()->getTitle()->setText(aStrA);
+ (dynamic_cast<SUPERVGUI_Cell*>(this))->getPairCell()->setNodeName(aStrA);
+ // QToolTip::remove((dynamic_cast<SUPERVGUI_Cell*>(this))->getPairCell()->getTitle());
+ QToolTip::add((dynamic_cast<SUPERVGUI_Cell*>(this))->getPairCell()->getTitle(),
+ (dynamic_cast<SUPERVGUI_Cell*>(this))->getPairCell()->getTitle()->text());
+
+ }
+ }
+ // QToolTip::remove((dynamic_cast<SUPERVGUI_Cell*>(this))->getTitle());
+ QToolTip::add((dynamic_cast<SUPERVGUI_Cell*>(this))->getTitle(),
+ (dynamic_cast<SUPERVGUI_Cell*>(this))->getTitle()->text());
+ QToolTip::add((dynamic_cast<SUPERVGUI_Cell*>(this))->getComponent(),
+ (dynamic_cast<SUPERVGUI_Cell*>(this))->getComponent()->text());
+ }
+ else { //Graph View
+ if (myNode->IsLoop() || myNode->IsSwitch()) { //for synchronic names changing
+ QString nm = myNode->Name();
+ if ( !nm.isEmpty() ) {
+ setNodeName(nm);
+ QString aStr(tr("ENDNODE_PREFIX"));
+ aStr+=nm;
+ (dynamic_cast<SUPERVGUI_StartControlNode*>(this))->getEndNode()->setNodeName(aStr);
+ }
+ }
+ else {
+ if (!(myNode->IsGOTO())) {
+ // QToolTip::remove((dynamic_cast<SUPERVGUI_ComputeNode*>(this))->getCommLabel());
+ QToolTip::add((dynamic_cast<SUPERVGUI_ComputeNode*>(this))->getCommLabel(),
+ (dynamic_cast<SUPERVGUI_ComputeNode*>(this))->getCommLabel()->text());
+ QToolTip::add((dynamic_cast<SUPERVGUI_ComputeNode*>(this))->getTitleLabel(),
+ (dynamic_cast<SUPERVGUI_ComputeNode*>(this))->getTitleLabel()->text());
+ }
+ }
+ }
+ }
/* Trace("SUPERVGUI_Node::changeInformation")
if (Supervision.information(myNode, !myMain->isEditable())) {
myMain->syncAsync();
-// File : SUPERVGUI_Node.h
-// Created : 24 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Node.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Node_H
#define SUPERVGUI_Node_H
-using namespace std;
-// File : SUPERVGUI_Notification.cxx
-// Created : 21 / 02 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Notification.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Notification.h"
#include "QAD_Message.h"
#include "QAD_FileDlg.h"
-// File : SUPERVGUI_Notification.h
-// Created : 21 / 02 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Notification.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Notification_H
#define SUPERVGUI_Notification_H
-using namespace std;
-// File : SUPERVGUI_Port.cxx
-// Created : 25 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Port.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Port.h"
#include "SUPERVGUI_Def.h"
#include "SUPERVGUI_Main.h"
-// File : SUPERVGUI_Port.h
-// Created : 25 / 10 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Port.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Port_H
#define SUPERVGUI_Port_H
-using namespace std;
-// File : SUPERVGUI_Python.cxx
-// Created : 18 / 06 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Python.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Def.h"
#include "QAD_PyEditor.h"
#include "QAD_PyInterp.h"
-// File : SUPERVGUI_Python.h
-// Created : 18 / 06 / 2002
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Python.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Python_H
#define SUPERVGUI_Python_H
-using namespace std;
-// File : SUPERVGUI_Service.cxx
-// Created : 7 / 11 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Service.cxx
+// Author : Francis KLOSS
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_Service.h"
#include "SUPERVGUI_Main.h"
#include "SUPERVGUI.h"
-// File : SUPERVGUI_Service.h
-// Created : 7 / 11 / 2001
-// Author : Francis KLOSS
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : CEA
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SUPERVGUI_Service.h
+// Author : Francis KLOSS
+// Module : SUPERV
#ifndef SUPERVGUI_Service_H
#define SUPERVGUI_Service_H
-using namespace std;
-// File : SUPERVGUI_View.cxx
-// Created : 24 / 10 / 2002
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_View.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
+using namespace std;
#include "SUPERVGUI_View.h"
#include "SUPERVGUI_Main.h"
#include "QAD_Config.h"
-// File : SUPERVGUI_View.h
-// Created : 24 / 10 / 2002
-// Author : Vitaly SMETANNIKOV
-// Project : SALOME
-// Module : SUPERVGUI
-// Copyright : Open CASCADE
-
+// SUPERV SUPERVGUI : GUI for Supervisor component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SUPERVGUI_View.h
+// Author : Vitaly SMETANNIKOV
+// Module : SUPERV
#ifndef SUPERVGUI_View_H
#define SUPERVGUI_View_H
--- /dev/null
+# SUPERV SUPERVGUI : GUI for Supervisor component
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : SupervisionGUI_icons.po
+# Module : SUPERV
+
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2001-09-11 12:08:44 PM CEST\n"
+"PO-Revision-Date: YYYY-MM-DD\n"
+"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+
+#: QAD_ObjectBrowser.cxx:140
+msgid "ICON_OBJBROWSER_Supervision"
+msgstr "Superv_tree_superv.png"
\ No newline at end of file
--- /dev/null
+# SUPERV SUPERVGUI : GUI for Supervisor component
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : SupervisionGUI_msg_en.po
+# Module : SUPERV
+
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2001-09-11 12:08:44 PM CEST\n"
+"PO-Revision-Date: YYYY-MM-DD\n"
+"Last-Translator: FULLNAME <EMAIL@ADRESS>\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+
+#Title of error messages
+msgid "ERROR"
+msgstr "Error"
+
+#:SUPERVGUI_Main.cxx:246
+msgid "MSG_FILE_EXIST"
+msgstr "File '%1' exists.\nReplace?"
+
+#:SUPERVGUI_Main.cxx:252
+msgid "MSG_BAD_WRITING"
+msgstr "Bad Writing File"
+
+#:SUPERVGUI_Main.cxx:242
+msgid "TTL_EXPORT_DATAFLOW"
+msgstr "Export Dataflow As..."
+
+#:SUPERVGUI_Main.cxx:41
+msgid "MSG_ACCESS_BAD_IOR"
+msgstr "Can't Access Dataflow: bad IOR"
+
+#:SUPERVGUI_Main.cxx:47
+msgid "MSG_NOACCESS_BY_IOR"
+msgstr "Can't Access Dataflow by IOR"
+
+#:SUPERVGUI_Main.cxx:53
+msgid "MSG_CANT_CREATE_DF"
+msgstr "Can't Create a New Dataflow"
+
+#:SUPERVGUI_Main.cxx:72
+msgid "MSG_BAD_FILE"
+msgstr "Bad File: %1"
+
+#:SUPERVGUI_Main.cxx:86
+msgid "MSG_CANT_COPY"
+msgstr "Can't Copy Dataflow"
+
+#:SUPERVGUI_Main.cxx:102
+msgid "MSG_DEL_LAST_PNT"
+msgstr "Delete Last Point"
+
+#:SUPERVGUI_Main.cxx:103
+msgid "MSG_DEL_LINK"
+msgstr "Delete Link"
+
+#:SUPERVGUI_Main.cxx:104
+msgid "MSG_ORTHO_LINE"
+msgstr "Ortho Mode"
+
+#:SUPERVGUI_Main.cxx:146
+msgid "WARNING"
+msgstr "Supervision Warning"
+
+#:SUPERVGUI_Main.cxx:147
+msgid "MSG_DF_RUNNING"
+msgstr "Dataflow Is Currently Running"
+
+#:SUPERVGUI_Main.cxx:148
+msgid "MSG_DF_EXECUTION"
+msgstr "Background Execution"
+
+#:SUPERVGUI_Main.cxx:149
+msgid "MSG_DF_KILL"
+msgstr "Kill Execution"
+
+#:SUPERVGUI_Main.cxx:185
+msgid "GRAPH_TITLE"
+msgstr "Supervision: "
+
+#:SUPERVGUI_Main.cxx:195
+msgid "MSG_GRAPH_STARTED"
+msgstr "===> Dataflow Execution is started"
+
+#:SUPERVGUI_Main.cxx:191
+msgid "MSG_GRAPH_READONLY"
+msgstr "===> Dataflow is Read Only"
+
+#:SUPERVGUI_Main.cxx:191
+msgid "MSG_GRAPH_EDITING"
+msgstr "===> Dataflow is Modifiable"
+
+#:SUPERVGUI_Main.cxx:200
+msgid "MSG_GRAPH_SUSPENDED"
+msgstr "===> Dataflow Execution is Suspended"
+
+#:SUPERVGUI_Main.cxx:204
+msgid "MSG_GRAPH_FINISHED"
+msgstr "===> Dataflow Execution is Finished"
+
+#:SUPERVGUI_Main.cxx:208
+msgid "MSG_GRAPH_ABORTED"
+msgstr "===> Dataflow Execution is Aborted"
+
+#:SUPERVGUI_Main.cxx:212
+msgid "MSG_GRAPH_KILLED"
+msgstr "===> Dataflow Execution is Killed"
+
+#:SUPERVGUI_Main.cxx:265
+msgid "MSG_GRAPH_INSERT"
+msgstr "Insert a Dataflow"
+
+#:SUPERVGUI_Main.cxx:285
+msgid "MSG_DF_NOTVALID"
+msgstr "Dataflow Not Valid"
+
+#:SUPERVGUI_Main.cxx:287
+msgid "MSG_DF_NOTEXECUTABLE"
+msgstr "Dataflow Not Executable"
+
+#:SUPERVGUI_Main.cxx:289
+msgid "MSG_DF_BADEXECUTE"
+msgstr "Dataflow Bad Execute"
+
+#:SUPERVGUI_Main.cxx:301
+msgid "MSG_DF_NOTRUNNING"
+msgstr "Dataflow Is Not Running"
+
+#:SUPERVGUI_Main.cxx:305
+msgid "MSG_CANTKILL_DF"
+msgstr "Can't Kill Dataflow"
+
+#:SUPERVGUI_Main.cxx:315
+msgid "MSG_DF_RESUMED"
+msgstr "===> Dataflow Execution is Resumed"
+
+#:SUPERVGUI_Main.cxx:318
+msgid "MSG_CANT_RESUME"
+msgstr "Can't Resume Dataflow"
+
+#:SUPERVGUI_Main.cxx:324
+msgid "MSG_CANT_SUSPEND"
+msgstr "Can't Suspend Dataflow"
+
+#:SUPERVGUI_Main.cxx:335
+msgid "MSG_DF_RESTARTED"
+msgstr "===> Dataflow Execution is Restarted"
+
+#:SUPERVGUI_Main.cxx:338
+msgid "MSG_CANT_RESTART"
+msgstr "Can't Restart Dataflow"
+
+#:SUPERVGUI_Main.cxx:344
+msgid "MSG_CANT_STOP"
+msgstr "Can't Stop Dataflow"
+
+#:SUPERVGUI_Main.cxx:477
+msgid "MSG_CHOOSE_OUTPUT"
+msgstr "Choose an Output Port"
+
+#:SUPERVGUI_Main.cxx:477
+msgid "MSG_CHOOSE_INPUT"
+msgstr "Choose an Input Port"
+
+#:SUPERVGUI_Main.cxx:486
+msgid "MSG_CANT_CREATE_LINK"
+msgstr "Can't Create This Link"
+
+#:SUPERVGUI_Main.cxx:508
+msgid "MSG_CANT_CREATE_POINT"
+msgstr "Can't Create Point(s) For This Link"
+
+#:SUPERVGUI_Main.cxx:541
+msgid "MSG_RIGHTLINE"
+msgstr "Right Line"
+
+#:SUPERVGUI_Main.cxx:541
+msgid "MSG_FREEPOINT"
+msgstr "Free Point"
+
+#:SUPERVGUI_Main.cxx:627
+msgid "MSG_CHOOSE_DATA"
+msgstr "Choose a Data in Study"
+
+#:SUPERVGUI_Main.cxx:170
+msgid "MSG_GRAPH_DISPLAYED"
+msgstr "The DataFlow %1 \nis already displayed. Open again?"
+
+#:SUPERVGUI_Main.cxx:288
+msgid "MSG_CRL_NOTCOMPLETE"
+msgstr "Link Creation Is Not Complete"
+
+#:SUPERVGUI_Main.cxx:627
+msgid "MSG_NOTHING_COPY"
+msgstr "Nothing to copy."
+
+msgid "MSG_CANT_CHANGELINK"
+msgstr "Can't Change Point Coordinates For a Link"
+
+msgid "MSG_CANT_CHANGE_COORDLINK"
+msgstr "Can't Change Coordinates For a Link"
+
+msgid "MSG_CANT_DEL_POINT"
+msgstr "Can't Delete this Point"
+
+msgid "MSG_CANT_ADD_POINT"
+msgstr "Can't Add this Point"
+
+msgid "MSG_CANT_GET_LNKCOORD"
+msgstr "Can't Get Coordinates From a Link"
+
+msgid "MSG_NOT_IMPLEMENTED"
+msgstr "Not Yet Implemented"
+
+msgid "MSG_CANT_STOPNODE"
+msgstr "Can't Stop Node"
+
+msgid "MSG_CANT_RESTARTNODE"
+msgstr "Can't Restart Node"
+
+msgid "MSG_CANT_KILLNODE"
+msgstr "Can't Kill Node"
+
+msgid "MSG_CANT_SUSPENDNODE"
+msgstr "Can't Suspend Node"
+
+msgid "MSG_CANT_RESUMENODE"
+msgstr "Can't Resume Node"
+
+msgid "MSG_CANT_RENAMENODE"
+msgstr "Can't Rename this Node"
+
+msgid "MSG_CHANGE_NODENAME"
+msgstr "Change the Name of a Node"
+
+msgid "MSG_ENTER_NODENAME"
+msgstr "Please, Enter a Node Name"
+
+msgid "MSG_STOP"
+msgstr "Stop"
+
+msgid "MSG_RESTART"
+msgstr "Restart"
+
+msgid "MSG_SUSPEND"
+msgstr "Suspend"
+
+msgid "MSG_RESUME"
+msgstr "Resume"
+
+msgid "MSG_KILL"
+msgstr "Kill"
+
+msgid "MSG_DELETE"
+msgstr "Delete"
+
+msgid "MSG_RENAME"
+msgstr "Rename"
+
+msgid "MSG_CONFIGURE"
+msgstr "Configure"
+
+msgid "MSG_CHANGE_INFO"
+msgstr "Change Informations"
+
+msgid "MSG_SHOW_PYTHON"
+msgstr "Show Python"
+
+msgid "MSG_ADD_BEFORE"
+msgstr "Add Before"
+
+msgid "MSG_ADD_AFTER"
+msgstr "Add After"
+
+msgid "MSG_DEL_POINT"
+msgstr "Delete Point"
+
+msgid "MSG_NONODE_TOADD"
+msgstr "No Node to Add in Dataflow"
+
+msgid "MSG_CANT_CHOOSE_SERVICE"
+msgstr "Can't Choose a Service in a Component"
+
+msgid "MSG_NO_SUPERVISION_WINDOW"
+msgstr "No Supervision Window Selected to Add Nodes in a Dataflow"
+
+msgid "MSG_SKETCH_LINK"
+msgstr "Sketch Link"
+
+msgid "MSG_FROMSTUDY"
+msgstr "Set From Study"
+
+msgid "MSG_SETVALUE"
+msgstr "Set Value"
+
+msgid "MSG_BROWSE"
+msgstr "Browse"
+
+msgid "MSG_DELLINK"
+msgstr "Delete Link"
+
+msgid "MSG_CANT_SETVAL"
+msgstr "Can't Set Input Value"
+
+msgid "TIT_INPUT_PORT"
+msgstr "Constant for Input Port"
+
+msgid "MSG_ENTER_VALUE"
+msgstr "Please, Enter a Value"
+
+msgid "MSG_IPORT_VAL"
+msgstr "Input Port Value : "
+
+msgid "MSG_OPORT_VAL"
+msgstr "Output Port Value : "
+
+msgid "MSG_INFO"
+msgstr "Information"
+
+msgid "MSG_TERMINATE"
+msgstr "Terminate"
+
+msgid "MSG_SHOWDATA"
+msgstr "Show Data"
+
+msgid "MSG_CALL_DATASHOW"
+msgstr "Call data show as soon ..."
+
+msgid "MSG_PUT_INSTUDY"
+msgstr "Put in Study"
+
+msgid "MSG_NOT_INSTUDY"
+msgstr "Not in Study"
+
+msgid "MSG_GRAPH_ISRUN"
+msgstr "Dataflow is still executing. Kill it?"
+
+msgid "MSG_NOWINDOW_TO_SUSPEND"
+msgstr "No Supervision Window Selected to Suspend or Resume a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_ADD"
+msgstr "No Supervision Window Selected to add new components"
+
+msgid "MSG_NOWINDOW_TO_EXPORT"
+msgstr "No Supervision Window Selected to Export a Dataflow"
+
+msgid "MSG_CANT_LOAD_SUPERV"
+msgstr "Cannot Find or Load Supervision Component"
+
+msgid "MSG_CANT_NARROW_SUPERV"
+msgstr "Cannot _narrow Supervision Component"
+
+msgid "MSG_NOWINDOW_TO_RELOAD"
+msgstr "No Supervision Window Selected to Reload a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_RUN"
+msgstr "No Supervision Window Selected to Run a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_KILL"
+msgstr "No Supervision Window Selected to Kill a Dataflow"
+
+msgid "MSG_IMPORT"
+msgstr "Import Dataflow"
+
+msgid "MSG_NOTEDITABLE"
+msgstr "Current Dataflow is not editable"
+
+msgid "MSG_ADD_STUDY"
+msgstr "Add in Study"
+
+msgid "MSG_NO_DELLINK"
+msgstr "No Link to Delete"
+
+msgid "MSG_NO_LINK_ADDPNT"
+msgstr "No Link to Add a Point"
+
+msgid "MSG_ADD_NODE"
+msgstr "Add Node"
+
+msgid "MSG_ADD_POINT"
+msgstr "Add Point"
+
+msgid "MSG_INS_FILE"
+msgstr "Insert File"
+
+msgid "MSG_COPY_DATAFLOW"
+msgstr "Copy Dataflow"
+
+msgid "MSG_SWITCH_ARRAY"
+msgstr "Switch Array"
+
+msgid "MSG_FILTER_NOTIFY"
+msgstr "Filter Notification"
+
+msgid "MSG_SWITCH_GRAPH"
+msgstr "Switch Graph"
+
+msgid "MSG_COPY_PREFIX"
+msgstr "Copy%1_Of"
+
+msgid "TIT_RENAME"
+msgstr "Rename Dataflow"
+
+msgid "TLT_INFORMATIONS"
+msgstr "Informations"
+
+msgid "NAME_LBL"
+msgstr "Name:"
+
+msgid "AUTHOR_LBL"
+msgstr "Author:"
+
+msgid "CONTAINER_LBL"
+msgstr "Container:"
+
+msgid "COMPONENT_NAME_LBL"
+msgstr "ComponentName:"
+
+msgid "INTERFACE_NAME_LBL"
+msgstr "InterfaceName:"
+
+msgid "DATE_CREATION_LBL"
+msgstr "Created:"
+
+msgid "DATE_MODIFICATION_LBL"
+msgstr "Updated:"
+
+msgid "COMMENT_LBL"
+msgstr "Comment:"
+
+msgid "BUT_OK"
+msgstr "&OK"
+
+msgid "BUT_CANCEL"
+msgstr "&Cancel"
+
+msgid "MSG_CANT_CHANGE_INFO"
+msgstr "Can't Change Informations"
+
+msgid "MSG_ASK_DELETE"
+msgstr "Selected object and its subobjects will be deleted.\nContinue?"
+
+msgid "POP_VIEW"
+msgstr "View"
+
+msgid "POP_FULLVIEW"
+msgstr "Full"
+
+msgid "POP_CONTROLVIEW"
+msgstr "Control"
+
+msgid "POP_TABLEVIEW"
+msgstr "Table"
+
+msgid "POP_SHOW"
+msgstr "Show"
+
+msgid "POP_SHOWTITLES"
+msgstr "Comment"
+
+msgid "POP_SHOWPORTS"
+msgstr "Ports"
+
+msgid "TIT_BROWSENODE"
+msgstr "Browse Node "
+
+msgid "BUT_APPLY"
+msgstr "Ok"
+
+msgid "BUT_CLOSE"
+msgstr "Close"
+
+msgid "TIT_SETVALUE_PORT"
+msgstr "Set Value"
+
+msgid "ENTER_OR_SELECT_LBL"
+msgstr "Enter value or select any object from the study"
+
+msgid "TIT_SERVICES"
+msgstr "Add Node"
+
+msgid "TLT_FILTER_NOTIFY"
+msgstr "Filter Notification"
+
+msgid "COL_COMPONENTS"
+msgstr "Components and services"
+
+msgid "NOTIFICATION_LOGGING_LBL"
+msgstr "Notification Logging"
+
+msgid "SAVE_LOG_LBL"
+msgstr "Save in File"
+
+msgid "FILTER_LOG_LBL"
+msgstr "Filtered File"
+
+msgid "BUT_BROWSE"
+msgstr "Browse"
+
+msgid "ALL_FILES"
+msgstr "All files (*.*)"
+
+msgid "CHOOSE_LOG_FILES_TLT"
+msgstr "Select log file"
+
+msgid "ERR_CANT_OPEN_LOG_FILE"
+msgstr "Can't Open Log file"
+
+msgid "COL_PORTTYPE"
+msgstr "Port type"
+
+msgid "COL_PORTWAY"
+msgstr "Port way"
+
+msgid "TIT_ADDNODE"
+msgstr "Add Node"
+
+msgid "TIT_ADDCNODE"
+msgstr "Add Compute Node"
+
+msgid "TIT_ADDFNODE"
+msgstr "Add Factory Node"
+
+msgid "BTN_FACTORYNODE"
+msgstr "Factory"
+
+msgid "BTN_SWITCHNODE"
+msgstr "Switch"
+
+msgid "BTN_LOOPNODE"
+msgstr "Loop"
+
+msgid "MODULES_PANE"
+msgstr "Factory"
+
+msgid "INLINE_PANE"
+msgstr "Inline"
+
+msgid "ENDNODE_PREFIX"
+msgstr "EndOf"
+
+msgid "BUT_LOAD"
+msgstr "Load from file..."
+
+msgid "BUT_NEXT"
+msgstr "Next Function"
+
+msgid "TIT_LOADSCRIPT"
+msgstr "Load Script"
+
+msgid "MSG_CANT_LOADSCRIPT"
+msgstr "Can't open file"
+
+msgid "MSG_EMTY_FILE"
+msgstr "File is empty"
+
+msgid "MSG_NOMORE_FUNCTIONS"
+msgstr "No more functions in this file"
+
+msgid "MSG_SCRIPTTIP"
+msgstr "Define Name, Input and Output parameters, and body of function\nin fields below accordingly"
+
+msgid "POP_HIDEPORTS"
+msgstr "Hide Ports"
+
+msgid "COMMENT_FROM"
+msgstr " from "
+
+msgid "COMMENT_PYTHON"
+msgstr "Python function"
+
+msgid "COMMENT_CNODE"
+msgstr "Compute Node"
+
+msgid "TIT_FUNC_PYTHON"
+msgstr "Edit function"
+
+msgid "LBL_NODETYPE"
+msgstr "Node type"
+
+msgid "ITM_DEL_PORT"
+msgstr "Delete"
+
+msgid "MSG_CANT_CREATE_NODE"
+msgstr "Can't create node"
+
+msgid "MSG_PORT_EXIST"
+msgstr "Port with such name already exists"
+
--- /dev/null
+# SUPERV SUPERVGUI : GUI for Supervisor component
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : SupervisionGUI_msg_fr.po
+# Module : SUPERV
+
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2001-09-11 12:08:44 PM CEST\n"
+"PO-Revision-Date: YYYY-MM-DD\n"
+"Last-Translator: FULLNAME <EMAIL@ADRESS>\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+
+#Title of error messages
+msgid "ERROR"
+msgstr "Supervision Error"
+
+#:SUPERVGUI_Main.cxx:246
+msgid "MSG_FILE_EXIST"
+msgstr "File '%1' exists.\nReplace?"
+
+#:SUPERVGUI_Main.cxx:252
+msgid "MSG_BAD_WRITING"
+msgstr "Bad Writing File"
+
+#:SUPERVGUI_Main.cxx:242
+msgid "TTL_EXPORT_DATAFLOW"
+msgstr "Export Dataflow As..."
+
+#:SUPERVGUI_Main.cxx:41
+msgid "MSG_ACCESS_BAD_IOR"
+msgstr "Can't Access Dataflow: bad IOR"
+
+#:SUPERVGUI_Main.cxx:47
+msgid "MSG_NOACCESS_BY_IOR"
+msgstr "Can't Access Dataflow by IOR"
+
+#:SUPERVGUI_Main.cxx:53
+msgid "MSG_CANT_CREATE_DF"
+msgstr "Can't Create a New Dataflow"
+
+#:SUPERVGUI_Main.cxx:72
+msgid "MSG_BAD_FILE"
+msgstr "Bad File"
+
+#:SUPERVGUI_Main.cxx:86
+msgid "MSG_CANT_COPY"
+msgstr "Can't Copy Dataflow"
+
+#:SUPERVGUI_Main.cxx:102
+msgid "MSG_DEL_LAST_PNT"
+msgstr "Delete Last Point"
+
+#:SUPERVGUI_Main.cxx:103
+msgid "MSG_DEL_LINK"
+msgstr "Delete Link"
+
+#:SUPERVGUI_Main.cxx:104
+msgid "MSG_ORTHO_LINE"
+msgstr "Ortho Mode"
+
+#:SUPERVGUI_Main.cxx:146
+msgid "WARNING"
+msgstr "Supervision Warning"
+
+#:SUPERVGUI_Main.cxx:147
+msgid "MSG_DF_RUNNING"
+msgstr "Dataflow Is Currently Running"
+
+#:SUPERVGUI_Main.cxx:148
+msgid "MSG_DF_EXECUTION"
+msgstr "Background Execution"
+
+#:SUPERVGUI_Main.cxx:149
+msgid "MSG_DF_KILL"
+msgstr "Kill Execution"
+
+#:SUPERVGUI_Main.cxx:185
+msgid "GRAPH_TITLE"
+msgstr "Supervision: "
+
+#:SUPERVGUI_Main.cxx:195
+msgid "MSG_GRAPH_STARTED"
+msgstr "===> Dataflow Execution is started"
+
+#:SUPERVGUI_Main.cxx:191
+msgid "MSG_GRAPH_READONLY"
+msgstr "===> Dataflow is Read Only"
+
+#:SUPERVGUI_Main.cxx:191
+msgid "MSG_GRAPH_EDITING"
+msgstr "===> Dataflow is Modifiable"
+
+#:SUPERVGUI_Main.cxx:200
+msgid "MSG_GRAPH_SUSPENDED"
+msgstr "===> Dataflow Execution is Suspended"
+
+#:SUPERVGUI_Main.cxx:204
+msgid "MSG_GRAPH_FINISHED"
+msgstr "===> Dataflow Execution is Finished"
+
+#:SUPERVGUI_Main.cxx:208
+msgid "MSG_GRAPH_ABORTED"
+msgstr "===> Dataflow Execution is Aborted"
+
+#:SUPERVGUI_Main.cxx:212
+msgid "MSG_GRAPH_KILLED"
+msgstr "===> Dataflow Execution is Killed"
+
+#:SUPERVGUI_Main.cxx:265
+msgid "MSG_GRAPH_INSERT"
+msgstr "Insert a Dataflow"
+
+#:SUPERVGUI_Main.cxx:285
+msgid "MSG_DF_NOTVALID"
+msgstr "Dataflow Not Valid"
+
+#:SUPERVGUI_Main.cxx:287
+msgid "MSG_DF_NOTEXECUTABLE"
+msgstr "Dataflow Not Executable"
+
+#:SUPERVGUI_Main.cxx:289
+msgid "MSG_DF_BADEXECUTE"
+msgstr "Dataflow Bad Execute"
+
+#:SUPERVGUI_Main.cxx:301
+msgid "MSG_DF_NOTRUNNING"
+msgstr "Dataflow Is Not Running"
+
+#:SUPERVGUI_Main.cxx:305
+msgid "MSG_CANTKILL_DF"
+msgstr "Can't Kill Dataflow"
+
+#:SUPERVGUI_Main.cxx:315
+msgid "MSG_DF_RESUMED"
+msgstr "===> Dataflow Execution is Resumed"
+
+#:SUPERVGUI_Main.cxx:318
+msgid "MSG_CANT_RESUME"
+msgstr "Can't Resume Dataflow"
+
+#:SUPERVGUI_Main.cxx:324
+msgid "MSG_CANT_SUSPEND"
+msgstr "Can't Suspend Dataflow"
+
+#:SUPERVGUI_Main.cxx:335
+msgid "MSG_DF_RESTARTED"
+msgstr "===> Dataflow Execution is Restarted"
+
+#:SUPERVGUI_Main.cxx:338
+msgid "MSG_CANT_RESTART"
+msgstr "Can't Restart Dataflow"
+
+#:SUPERVGUI_Main.cxx:344
+msgid "MSG_CANT_STOP"
+msgstr "Can't Stop Dataflow"
+
+#:SUPERVGUI_Main.cxx:477
+msgid "MSG_CHOOSE_OUTPUT"
+msgstr "Choose an Output Port"
+
+#:SUPERVGUI_Main.cxx:477
+msgid "MSG_CHOOSE_INPUT"
+msgstr "Choose an Input Port"
+
+#:SUPERVGUI_Main.cxx:486
+msgid "MSG_CANT_CREATE_LINK"
+msgstr "Can't Create This Link"
+
+#:SUPERVGUI_Main.cxx:508
+msgid "MSG_CANT_CREATE_POINT"
+msgstr "Can't Create Point(s) For This Link"
+
+#:SUPERVGUI_Main.cxx:541
+msgid "MSG_RIGHTLINE"
+msgstr "Right Line"
+
+#:SUPERVGUI_Main.cxx:541
+msgid "MSG_FREEPOINT"
+msgstr "Free Point"
+
+#:SUPERVGUI_Main.cxx:627
+msgid "MSG_CHOOSE_DATA"
+msgstr "Choose a Data in Study"
+
+#:SUPERVGUI_Main.cxx:170
+msgid "MSG_GRAPH_DISPLAYED"
+msgstr "The DataFlow %1 \nis already displayed. Open again?"
+
+#:SUPERVGUI_Main.cxx:627
+msgid "MSG_NOTHING_COPY"
+msgstr "Nothing to copy."
+
+msgid "MSG_CANT_CHANGELINK"
+msgstr "Can't Change Point Coordinates For a Link"
+
+msgid "MSG_CANT_CHANGE_COORDLINK"
+msgstr "Can't Change Coordinates For a Link"
+
+msgid "MSG_CANT_DEL_POINT"
+msgstr "Can't Delete this Point"
+
+msgid "MSG_CANT_ADD_POINT"
+msgstr "Can't Add this Point"
+
+msgid "MSG_CANT_GET_LNKCOORD"
+msgstr "Can't Get Coordinates From a Link"
+
+msgid "MSG_NOT_IMPLEMENTED"
+msgstr "Not Yet Implemented"
+
+msgid "MSG_CANT_STOPNODE"
+msgstr "Can't Stop Node"
+
+msgid "MSG_CANT_RESTARTNODE"
+msgstr "Can't Restart Node"
+
+msgid "MSG_CANT_KILLNODE"
+msgstr "Can't Kill Node"
+
+msgid "MSG_CANT_SUSPENDNODE"
+msgstr "Can't Suspend Node"
+
+msgid "MSG_CANT_RESUMENODE"
+msgstr "Can't Resume Node"
+
+msgid "MSG_CANT_RENAMENODE"
+msgstr "Can't Rename this Node"
+
+msgid "MSG_CHANGE_NODENAME"
+msgstr "Change the Name of a Node"
+
+msgid "MSG_ENTER_NODENAME"
+msgstr "Please, Enter a Node Name"
+
+msgid "MSG_STOP"
+msgstr "Stop"
+
+msgid "MSG_RESTART"
+msgstr "Restart"
+
+msgid "MSG_SUSPEND"
+msgstr "Suspend"
+
+msgid "MSG_RESUME"
+msgstr "Resume"
+
+msgid "MSG_KILL"
+msgstr "Kill"
+
+msgid "MSG_DELETE"
+msgstr "Delete"
+
+msgid "MSG_RENAME"
+msgstr "Rename"
+
+msgid "MSG_CONFIGURE"
+msgstr "Configure"
+
+msgid "MSG_CHANGE_INFO"
+msgstr "Change Informations"
+
+msgid "MSG_SHOW_PYTHON"
+msgstr "Show Python"
+
+msgid "MSG_ADD_BEFORE"
+msgstr "Add Before"
+
+msgid "MSG_ADD_AFTER"
+msgstr "Add After"
+
+msgid "MSG_DEL_POINT"
+msgstr "Delete Point"
+
+msgid "MSG_NONODE_TOADD"
+msgstr "No Node to Add in Dataflow"
+
+msgid "MSG_CANT_CHOOSE_SERVICE"
+msgstr "Can't Choose a Service in a Component"
+
+msgid "MSG_NO_SUPERVISION_WINDOW"
+msgstr "No Supervision Window Selected to Add Nodes in a Dataflow"
+
+msgid "MSG_SKETCH_LINK"
+msgstr "Sketch Link"
+
+msgid "MSG_FROMSTUDY"
+msgstr "Set From Study"
+
+msgid "MSG_SETVALUE"
+msgstr "Set Value"
+
+msgid "MSG_BROWSE"
+msgstr "Browse"
+
+msgid "MSG_DELLINK"
+msgstr "Delete Link"
+
+msgid "MSG_CANT_SETVAL"
+msgstr "Can't Set Input Value"
+
+msgid "TIT_INPUT_PORT"
+msgstr "Constant for Input Port"
+
+msgid "MSG_ENTER_VALUE"
+msgstr "Please, Enter a Value"
+
+msgid "MSG_IPORT_VAL"
+msgstr "Input Port Value : "
+
+msgid "MSG_OPORT_VAL"
+msgstr "Output Port Value : "
+
+msgid "MSG_INFO"
+msgstr "Supervision Information"
+
+msgid "MSG_TERMINATE"
+msgstr "Terminate"
+
+msgid "MSG_SHOWDATA"
+msgstr "Show Data"
+
+msgid "MSG_CALL_DATASHOW"
+msgstr "Call data show as soon ..."
+
+msgid "MSG_PUT_INSTUDY"
+msgstr "Put in Study"
+
+msgid "MSG_NOT_INSTUDY"
+msgstr "Not in Study"
+
+msgid "MSG_GRAPH_ISRUN"
+msgstr "Dataflow is still executing. Kill it?"
+
+msgid "MSG_NOWINDOW_TO_SUSPEND"
+msgstr "No Supervision Window Selected to Suspend or Resume a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_ADD"
+msgstr "No Supervision Window Selected to add new components"
+
+msgid "MSG_NOWINDOW_TO_EXPORT"
+msgstr "No Supervision Window Selected to Export a Dataflow"
+
+msgid "MSG_CANT_LOAD_SUPERV"
+msgstr "Cannot Find or Load Supervision Component"
+
+msgid "MSG_CANT_NARROW_SUPERV"
+msgstr "Cannot _narrow Supervision Component"
+
+msgid "MSG_NOWINDOW_TO_RELOAD"
+msgstr "No Supervision Window Selected to Reload a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_RUN"
+msgstr "No Supervision Window Selected to Run a Dataflow"
+
+msgid "MSG_NOWINDOW_TO_KILL"
+msgstr "No Supervision Window Selected to Kill a Dataflow"
+
+msgid "MSG_IMPORT"
+msgstr "Import Dataflow"
+
+msgid "MSG_NOTEDITABLE"
+msgstr "Current Dataflow is not editable"
+
+msgid "MSG_ADD_STUDY"
+msgstr "Add in Study"
+
+msgid "MSG_NO_DELLINK"
+msgstr "No Link to Delete"
+
+msgid "MSG_NO_LINK_ADDPNT"
+msgstr "No Link to Add a Point"
+
+msgid "MSG_ADD_NODE"
+msgstr "Add Node"
+
+msgid "MSG_ADD_POINT"
+msgstr "Add Point"
+
+msgid "MSG_INS_FILE"
+msgstr "Insert File"
+
+msgid "MSG_COPY_DATAFLOW"
+msgstr "Copy Dataflow"
+
+msgid "MSG_SWITCH_ARRAY"
+msgstr "Switch Array"
+
+msgid "MSG_FILTER_NOTIFY"
+msgstr "Filter Notification"
+
+msgid "MSG_SWITCH_GRAPH"
+msgstr "Switch Graph"
+
+msgid "MSG_COPY_PREFIX"
+msgstr "Copy%1_Of"
+
+msgid "TIT_RENAME"
+msgstr "Rename Dataflow"
+
+msgid "MSG_ASK_DELETE"
+msgstr "Selected object and its subobjects will be deleted.\nContinue?"
+
+msgid "POP_VIEW"
+msgstr "View"
+
+msgid "POP_FULLVIEW"
+msgstr "Full"
+
+msgid "POP_CONTROLVIEW"
+msgstr "Control"
+
+msgid "POP_TABLEVIEW"
+msgstr "Table"
+
+msgid "POP_SHOW"
+msgstr "Show"
+
+msgid "POP_SHOWTITLES"
+msgstr "Titles"
+
+msgid "POP_SHOWPORTS"
+msgstr "Ports"
-using namespace std;
-//=============================================================================
-// File : CNode_Impl.cxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : CNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
const char * FuncName ,
const SUPERV::ListOfStrings & PythonFunction ) :
Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
- beginService( "CNode_Impl::CNode_Impl" );
+// beginService( "CNode_Impl::CNode_Impl" );
if ( FuncName && NodeName ) {
cout << "CNode_Impl::CNode_Impl " << (void *) NodeName << " " << NodeName
<< " " << strlen(NodeName) << " " << (void *) FuncName << " " << FuncName
aFuncName ,
aPythonFunction ) ;
_IsNode = true ;
- endService( "CNode_Impl::CNode_Impl" );
+// endService( "CNode_Impl::CNode_Impl" );
}
CNode_Impl::CNode_Impl( CORBA::ORB_ptr orb ,
// beginService( "CNode_Impl::State" );
SUPERV::GraphState RetVal = SUPERV::EditingState ;
GraphExecutor::DataFlow * _DataFlowExecutor = _DataFlowEditor->Executor() ;
- if ( _DataFlowExecutor ) {
+ if ( _DataFlowExecutor && !_DataFlowEditor->EditedAfterExecution() ) {
+ //JR : 12/06/03 if ( _DataFlowExecutor ) {
if ( _IsNode ) {
RetVal = _DataFlowExecutor->State( Name() ) ;
}
return RetVal ;
}
-bool CNode_Impl::ReRun() {
- beginService( "CNode_Impl::ReRun" );
+bool CNode_Impl::Run() {
+ beginService( "CNode_Impl::Run" );
bool RetVal = false ;
GraphExecutor::DataFlow * _DataFlowExecutor = _DataFlowEditor->Executor() ;
if ( _DataFlowExecutor ) {
+ _DataFlowEditor->EditedAfterExecution( false ) ;
if ( _IsNode ) {
RetVal = _DataFlowExecutor->Run( Name() , Name() , false ) ;
}
RetVal = _DataFlowExecutor->Run( false ) ;
}
}
+ endService( "CNode_Impl::Run" );
+ return RetVal ;
+}
+
+bool CNode_Impl::ReRun() {
+ beginService( "CNode_Impl::ReRun" );
+ bool RetVal = false ;
+ GraphExecutor::DataFlow * _DataFlowExecutor = _DataFlowEditor->Executor() ;
+ if ( _DataFlowExecutor ) {
+ _DataFlowEditor->EditedAfterExecution( false ) ;
+ if ( _IsNode ) {
+ RetVal = _DataFlowExecutor->Run( Name() , Name() , false ) ;
+ }
+ else if ( DataFlowEditor()->IsEditing() ) {
+ // RetVal = _DataFlowExecutor->Run( false ) ;
+ return ((Graph_Impl::Graph_Impl *) this)->Graph_Impl::Run() ;
+ }
+ }
endService( "CNode_Impl::ReRun" );
return RetVal ;
}
bool RetVal = false ;
GraphExecutor::DataFlow * _DataFlowExecutor = _DataFlowEditor->Executor() ;
if ( _DataFlowExecutor ) {
+ _DataFlowEditor->EditedAfterExecution( false ) ;
if ( _IsNode ) {
RetVal = _DataFlowExecutor->Run( Name() , aNodeName , false ) ;
}
return RetVal ;
}
+long CNode_Impl::CpuUsed() {
+ long RetVal = 0 ;
+ GraphExecutor::DataFlow * _DataFlowExecutor = _DataFlowEditor->Executor() ;
+ if ( _DataFlowExecutor ) {
+ if ( _IsNode ) {
+// RetVal = _DataFlowExecutor->CpuUsed( Name() ) ;
+ }
+ else {
+// RetVal = _DataFlowExecutor->CpuUsed() ;
+ }
+ }
+ else {
+ return 0 ;
+ }
+ return RetVal ;
+}
+
+
-//=============================================================================
-// File : CNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : CNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _CNODE_IMPL_HXX_
#define _CNODE_IMPL_HXX_
virtual bool SuspendDone() ;
virtual bool Resume() ;
+ virtual bool Run() ;
virtual bool ReRun() ;
virtual bool ReRunAt( const char * aNodeName ) ;
virtual bool ReStart() ;
virtual bool ReStartAt( const char * aNodeName ) ;
+ virtual long CpuUsed() ;
+
} ;
#endif
-using namespace std;
-//=============================================================================
-// File : ELNode_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : ELNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : ELNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : ELNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _ELNODE_IMPL_HXX_
#define _ELNODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : ESNode_Impl.cxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : ESNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : ESNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2003
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : ESNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _ESNODE_IMPL_HXX_
#define _ESNODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : FNode_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : FNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
// Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
CNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , NodeService , NodeName , NodeKindOfNode , (char * ) NULL ) {
MESSAGE( NodeName << " " );
- beginService( "FNode_Impl::FNode_Impl" );
+// beginService( "FNode_Impl::FNode_Impl" );
_thisObj = this ;
_id = _poa->activate_object(_thisObj);
_Orb = CORBA::ORB::_duplicate(orb);
// NodeKindOfNode ) ) ;
DataFlowNode()->ComponentName( NodeComponentName ) ;
DataFlowNode()->InterfaceName( NodeInterfaceName ) ;
- endService( "FNode_Impl::FNode_Impl" );
+// endService( "FNode_Impl::FNode_Impl" );
}
FNode_Impl::FNode_Impl( CORBA::ORB_ptr orb ,
-//=============================================================================
-// File : FNode_Impl.hxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : FNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _FNODE_IMPL_HXX_
#define _FNODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : GNode_Impl.cxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : GNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : GNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2003
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : GNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _GNODE_IMPL_HXX_
#define _GNODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : Graph_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Graph_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
SUPERV::CNode_ptr Graph_Impl::GetNode(char const * aNodeName ) {
// beginService( "Graph_Impl::GetNode" );
SUPERV::CNode_var iobject = SUPERV::CNode::_nil() ;
- if ( CORBA::is_nil( DataFlowEditor()->GetNode( aNodeName )->ObjRef() ) ) {
- CNode_Impl * myNode = new CNode_Impl( _Orb , _Poa , _ContId ,
- instanceName() , interfaceName() ,
- DataFlowEditor() ,
- DataFlowEditor()->GetNode( aNodeName ) ) ;
- PortableServer::ObjectId * id = myNode->getId() ;
- CORBA::Object_var obj = _poa->id_to_reference(*id);
- iobject = SUPERV::CNode::_narrow(obj) ;
- myNode->SetObjRef( SUPERV::CNode::_duplicate( iobject ) ) ;
- }
- else {
- iobject = DataFlowEditor()->GetNode( aNodeName )->ObjRef() ;
+ /* JR : 13/06/03
+ if ( CORBA::is_nil( DataFlowEditor()->GetNode( aNodeName )->ObjRef() ) ) {
+ CNode_Impl * myNode = new CNode_Impl( _Orb , _Poa , _ContId ,
+ instanceName() , interfaceName() ,
+ DataFlowEditor() ,
+ DataFlowEditor()->GetNode( aNodeName ) ) ;
+ PortableServer::ObjectId * id = myNode->getId() ;
+ CORBA::Object_var obj = _poa->id_to_reference(*id);
+ iobject = SUPERV::CNode::_narrow(obj) ;
+ myNode->SetObjRef( SUPERV::CNode::_duplicate( iobject ) ) ;
+ }
+ else {
+ iobject = DataFlowEditor()->GetNode( aNodeName )->ObjRef() ;
+ */
+ GraphEditor::InNode * anInNode = DataFlowEditor()->GetNode( aNodeName ) ;
+ if ( anInNode ) {
+ if ( CORBA::is_nil( anInNode->ObjRef() ) ) {
+ CNode_Impl * myNode = new CNode_Impl( _Orb , _Poa , _ContId ,
+ instanceName() , interfaceName() ,
+ DataFlowEditor() ,
+ DataFlowEditor()->GetNode( aNodeName ) ) ;
+ PortableServer::ObjectId * id = myNode->getId() ;
+ CORBA::Object_var obj = _poa->id_to_reference(*id);
+ iobject = SUPERV::CNode::_narrow(obj) ;
+ myNode->SetObjRef( SUPERV::CNode::_duplicate( iobject ) ) ;
+ }
+ else {
+ iobject = DataFlowEditor()->GetNode( aNodeName )->ObjRef() ;
+ }
}
// endService( "Graph_Impl::GetNode" );
return SUPERV::CNode::_duplicate( iobject ) ;
SUPERV::ListOfNodes_var Graph_Impl::SetNode( SUPERV::ListOfNodes_var RetVal ,
GraphBase::ComputingNode * aNode ) {
int index = 0 ;
- MESSAGE("Graph_Impl::SetNode " << aNode->Name() << " " << aNode->Kind() ) ;
+// MESSAGE("Graph_Impl::SetNode " << aNode->Name() << " " << aNode->Kind() ) ;
+// if ( _DataFlowExecutor ) {
+// MESSAGE("Graph_Impl::SetNode " << aNode->Name() << " " << aNode->Kind() << " "
+// << _DataFlowExecutor->StateName( _DataFlowExecutor->AutomatonState( aNode->Name() ) ) ) ;
+// }
+// else {
+// MESSAGE("Graph_Impl::SetNode " << aNode->Name() << " " << aNode->Kind() ) ;
+// }
if ( aNode->IsComputingNode() ) {
index = RetVal->CNodes.length() ;
RetVal->CNodes.length( index+1 );
GraphBase::ComputingNode * aNode = DataFlowEditor()->GraphNodes( i ) ;
RetVal = SetNode( RetVal , aNode ) ;
}
- MESSAGE("Graph_Impl::Nodes CNodes " << RetVal->CNodes.length()
- << " FNodes " << RetVal->FNodes.length()
- << " INodes " << RetVal->INodes.length()
- << " GNodes " << RetVal->GNodes.length()
- << " LNodes " << RetVal->LNodes.length()
- << " ELNodes " << RetVal->ELNodes.length()
- << " SNodes " << RetVal->SNodes.length()
- << " ESNodes " << RetVal->ESNodes.length() ) ;
+ char * aStateG = "" ;
+ if ( _DataFlowExecutor ) {
+ aStateG = (char *) _DataFlowExecutor->StateName( _DataFlowExecutor->AutomatonState() ) ;
+ }
+// MESSAGE("Graph_Impl::Nodes GraphState " << aStateG
+// << " CNodes " << RetVal->CNodes.length()
+// << " FNodes " << RetVal->FNodes.length()
+// << " INodes " << RetVal->INodes.length()
+// << " GNodes " << RetVal->GNodes.length()
+// << " LNodes " << RetVal->LNodes.length()
+// << " ELNodes " << RetVal->ELNodes.length()
+// << " SNodes " << RetVal->SNodes.length()
+// << " ESNodes " << RetVal->ESNodes.length() ) ;
+// if ( _DataFlowExecutor ) {
+// _DataFlowExecutor->EventList() ;
+// }
endService( "Graph_Impl::Nodes" );
return ( RetVal._retn() ) ;
}
_DataFlowExecutor = NULL ;
DataFlowEditor()->Executor( NULL ) ;
}
+ DataFlowEditor()->EditedAfterExecution( false ) ;
_ExecNumber += 1 ;
char ExecNumber[30] ;
sprintf( ExecNumber , "_%d" , _ExecNumber ) ;
beginService( "Graph_Impl::Run" );
bool RetVal = false ;
if ( DataFlowEditor()->IsEditing() ) {
+ MESSAGE( "Graph_Impl::Run IsEditing" );
RetVal = Begin() ;
+ MESSAGE( "Graph_Impl::(Re)Run " );
+ RetVal = CNode_Impl::Run() ;
}
else {
- RetVal = true ;
- }
- if ( RetVal ) {
MESSAGE( "Graph_Impl::(Re)Run " );
- RetVal = ReRun() ;
+ RetVal = CNode_Impl::ReRun() ;
}
endService( "Graph_Impl::Run" );
return RetVal ;
beginService( "Graph_Impl::Start" );
bool RetVal = false ;
if ( DataFlowEditor()->IsEditing() ) {
+ MESSAGE( "Graph_Impl::Start IsEditing" );
RetVal = Begin() ;
}
else {
}
}
else {
- aNode = SUPERV::Graph::_duplicate( NULL ) ;
+ aNode = SUPERV::Graph::_duplicate( SUPERV::Graph::_nil() ) ;
}
}
anEvent = theEvent ;
-//=============================================================================
-// File : Graph_Impl.hxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Graph_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _GRAPH_IMPL_HXX_
#define _GRAPH_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : INode_Impl.cxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : INode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : INode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : INode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _INODE_IMPL_HXX_
#define _INODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : LNode_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : LNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : LNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : LNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _LNODE_IMPL_HXX_
#define _LNODE_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : Link_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Link_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : Link_Impl.hxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Link_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _LINK_IMPL_HXX_
#define _LINK_IMPL_HXX_
-#==============================================================================
-# File : Makefile.in
-# Created : aug 21 2001
-# Author : , CEA
-# Project : SALOME
-# Copyright : CEA 2001
+# SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# 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.
+#
+# 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : Makefile.in
+# Author : , CEA
+# Module : SUPERV
# $Header:
-#==============================================================================
-# source path
top_srcdir=@top_srcdir@
-top_builddir=../..
+top_builddir=../../..
srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
+VPATH=.:@srcdir@:@top_srcdir@/idl
@COMMENCE@
# Input_Impl.hxx \
# Libraries targets
-LIB = libSUPERVEngine.la
+LIB = libSupervisionEngine.la
LIB_SRC = Value_Impl.cxx \
Port_Impl.cxx \
Link_Impl.cxx \
BIN_SRC =
BIN_SERVER_IDL =
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) \
- $(OGL_INCLUDES) $(OCC_INCLUDES) \
- -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42 \
- -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS+= -lSalomeSuperVisionEditor -lSalomeSuperVisionExecutor -lSalomeSuperVisionBase \
- -lSalomeContainer -lSalomeNotification -lSalomeDS -lSalomeNS -lSalomeLifeCycleCORBA \
- -lOpUtil -lRegistry -lSalomeHDFPersist -lSalomeLoggerServer \
- $(QT_MT_LIBS) $(OGL_LIBS) $(HDF5_LIBS) \
- -L${KERNEL_ROOT_DIR}/lib/salome
-
-#LDFLAGS+= -lSalomeSuperVisionEditor -lSalomeSuperVisionExecutor -lSalomeSuperVisionBase -lSalomeContainer -lSalomeNotification -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lRegistry -lSalomeHDFPersist -lSalomeLoggerServer $(QT_MT_LIBS) $(OGL_LIBS) $(HDF5_LIBS)
+CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_MT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES)
+CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ -ftemplate-depth-42
+LDFLAGS+= -lSalomeSuperVisionEditor -lSalomeSuperVisionExecutor -lSalomeSuperVisionBase -lSalomeContainer -lSalomeNotification -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lRegistry -lTOOLSDS -lSalomeLoggerServer $(QT_MT_LIBS)
@CONCLUDE@
-using namespace std;
-//=============================================================================
-// File : Port_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Port_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : Port_Impl.hxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Port_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _PORT_IMPL_HXX_
#define _PORT_IMPL_HXX_
-using namespace std;
-//=============================================================================
-// File : SNode_Impl.cxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SNode_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : SNode_Impl.hxx
-// Created : 2003
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2003
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SNode_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _SNODE_IMPL_HXX_
#define _SNODE_IMPL_HXX_
#! /usr/bin/env python
+#
+# SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+#
+# Copyright (C) 2003 CEA/DEN, EDF R&D
+#
+#
+#
+# File : SuperV.py
+# Module : SUPERV
try :
from salome import orb
from salome import lcc
from salome import naming_service
from salome import CORBA
- from salome import sg
+ import SALOME_ModuleCatalog
except :
import curses
from LifeCycleCORBA import *
from SALOME_NamingServicePy import *
import SUPERV
import SUPERV_idl
+ import SALOME_ModuleCatalog
# try :
# from libSuperVision_Swig import SuperV_Swig
# print 'SuperV_Swig imported'
# SuperVision.Swig = 1
# print 'SuperV_Swig created'
#except :
-# SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
+# SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision")
# SuperVision.Swig = 0
# print 'Supervision Component loaded'
-SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
+SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision")
SuperVision.Swig = 0
modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
return self.N.Y()
def destroy( self ):
self.N.destroy()
+ def CpuUsed( self ):
+ return self.N.CpuUsed()
##########################################################
class FNode(CNode):
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SuperV_CheckOfUndefined.cxx
+// Module : SUPERV
+
using namespace std;
#include <iostream>
#include <fstream>
#include "DataFlowEditor_DataFlow.hxx"
#include "DataFlowEditor_DataFlow.lxx"
+int _ArgC ;
+char ** _ArgV ;
+
static PyMethodDef MethodPyVoidMethod[] = {
{ NULL, NULL }
};
-using namespace std;
-//=============================================================================
-// File : SuperV_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header$
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SuperV_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header$
+using namespace std;
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
return aStreamFile._retn();
}
+SALOMEDS::TMPFile* SuperV_Impl::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
+ const char* theURL,
+ bool isMultiFile) {
+ SALOMEDS::TMPFile_var aStreamFile = Save(theComponent, theURL, isMultiFile);
+ return aStreamFile._retn();
+}
+
// void SuperV_Impl::Load(const char* IORSComponent, const char* aUrlOfFile) {
CORBA::Boolean SuperV_Impl::Load(SALOMEDS::SComponent_ptr theComponent,
const SALOMEDS::TMPFile& theStream,
return true;
}
+CORBA::Boolean SuperV_Impl::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
+ const SALOMEDS::TMPFile& theStream,
+ const char* theURL,
+ bool isMultiFile) {
+ return Load(theComponent, theStream, theURL, isMultiFile);
+}
+
void SuperV_Impl::Close(SALOMEDS::SComponent_ptr theComponent) {
// mpv 06.03.2003: bug SAL1508 - graphs will be destructed at the GUI-level at the supervision frame closing
char* SuperV_Impl::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
const char* IORString,
- CORBA::Boolean isMultiFile) {
+ CORBA::Boolean isMultiFile,
+ CORBA::Boolean isASCII) {
MESSAGE("SuperV_Impl::IORToLocalPersistentID: IOR:"<<IORString);
try {
char* SuperV_Impl::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
const char* aLocalPersistentID,
- CORBA::Boolean isMultiFile)
+ CORBA::Boolean isMultiFile,
+ CORBA::Boolean isASCII)
throw(SALOME::SALOME_Exception)
{
MESSAGE("SuperV_Impl::LocalPersistentIDToIOR : IOR = " << aLocalPersistentID);
CORBA::Long theObjectID,
SALOMEDS::SObject_ptr theObject) {
SALOMEDS::SObject_var aResultSO;
-
+ if(CORBA::is_nil(theObject)) return aResultSO._retn();
SALOMEDS::StudyBuilder_var aBuilder = theObject->GetStudy()->NewBuilder();
+
+ aResultSO = SALOMEDS::SObject::_narrow(CORBA::Object::_duplicate(theObject));
bool isGraph = (strcmp(theObject->GetFatherComponent()->GetID(),theObject->GetID()) == 0);
+
if (!isGraph) {
SALOMEDS::AttributeIOR_var anIOR =
SALOMEDS::AttributeIOR::_narrow(aBuilder->FindOrCreateAttribute(theObject, "AttributeIOR"));
- anIOR->SetValue((char*)theStream.NP_data());
- return SALOMEDS::SObject_var(theObject)._retn();
+ int aLen = theStream.length();
+ char* aVal = new char[aLen+1];
+ aVal[aLen] = (char)0;
+ memcpy((void*)aVal, (void*)theStream.NP_data(), aLen);
+ anIOR->SetValue(aVal);
+ return aResultSO._retn();
}
- if(CORBA::is_nil(theObject)) return aResultSO._retn();
- CORBA::String_var aTmpDir = strdup(SALOMEDS_Tool::GetTmpDir());
- SALOMEDS::ListOfFileNames_var aSeq = SALOMEDS_Tool::PutStreamToFiles(theStream, aTmpDir, false);
- char* aFullName = new char[strlen(aTmpDir)+strlen(aSeq[0])+1];
- strcpy(aFullName, aTmpDir);
- strcpy(aFullName+strlen(aTmpDir), aSeq[0]);
- SUPERV::Graph_ptr aGraph = Graph(strdup(aFullName));
- delete(aFullName);
-
- SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir, aSeq.in(), true);
+ TCollection_AsciiString aTmpDir = SALOMEDS_Tool::GetTmpDir();
+ SALOMEDS::ListOfFileNames_var aSeq = SALOMEDS_Tool::PutStreamToFiles(theStream, aTmpDir.ToCString(), false);
+ TCollection_AsciiString aFullName;
+ aFullName = aTmpDir+aSeq[0];
+ SUPERV::Graph_var aGraph = Graph(aFullName.ToCString());
- if (isGraph) {
- aResultSO = aBuilder->NewObject(theObject);
- } else {
- aResultSO = theObject;
- }
-
- SALOMEDS::AttributeIOR_var anIOR =
- SALOMEDS::AttributeIOR::_narrow(aBuilder->FindOrCreateAttribute(aResultSO, "AttributeIOR"));
- anIOR->SetValue(aGraph->getIOR());
+ SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.ToCString(), aSeq.in(), true);
+
+ if (isGraph) {
+ aResultSO = aBuilder->NewObject(theObject);
+ }
+
+ SALOMEDS::AttributeIOR_var anIOR =
+ SALOMEDS::AttributeIOR::_narrow(aBuilder->FindOrCreateAttribute(aResultSO, "AttributeIOR"));
+ anIOR->SetValue(CORBA::string_dup(aGraph->getIOR()));
return aResultSO._retn();
}
}
SUPERV::Graph_ptr SuperV_Impl::getGraph(const char* ior) {
- SUPERV::Graph_var iobject = (SUPERV::Graph_var)NULL;
+ SUPERV::Graph_var iobject = SUPERV::Graph::_nil();
try {
CORBA::Object_ptr obj = _Orb->string_to_object(ior);
iobject = SUPERV::Graph::_narrow(obj);
} catch ( ... ) {
- SUPERV::Graph_var iobject = (SUPERV::Graph_var)NULL;
+ return SUPERV::Graph::_nil();
+ // SUPERV::Graph_var iobject = (SUPERV::Graph_var)NULL;
};
return(SUPERV::Graph::_duplicate(iobject));
}
-//=============================================================================
-// File : SuperV_Impl.hxx
-// Created : jeu jui 30 12:28:30 CEST 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header$
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SuperV_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header$
#ifndef _SUPERV_IMPL_HXX_
#define _SUPERV_IMPL_HXX_
SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
const char* theURL,
bool isMultiFile);
+ SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
+ const char* theURL,
+ bool isMultiFile);
CORBA::Boolean Load(SALOMEDS::SComponent_ptr theComponent,
const SALOMEDS::TMPFile& theStream,
const char* theURL,
bool isMultiFile);
+ CORBA::Boolean LoadASCII(SALOMEDS::SComponent_ptr theComponent,
+ const SALOMEDS::TMPFile& theStream,
+ const char* theURL,
+ bool isMultiFile);
void Close(SALOMEDS::SComponent_ptr theComponent);
char* ComponentDataType();
char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
const char* IORString,
- CORBA::Boolean isMultiFile);
+ CORBA::Boolean isMultiFile,
+ CORBA::Boolean isASCII);
char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
const char* aLocalPersistentID,
- CORBA::Boolean isMultiFile)
+ CORBA::Boolean isMultiFile,
+ CORBA::Boolean isASCII)
throw(SALOME::SALOME_Exception);
char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject, CORBA::Boolean isMultiFile);
-using namespace std;
-//=============================================================================
-// File : Value_Impl.cxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Value_Impl.cxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
+using namespace std;
#include <stdio.h>
#include <fstream>
#include <strstream>
-//=============================================================================
-// File : Value_Impl.hxx
-// Created : Nov 2001
-// Author : Jean Rahuel
-// Project : SALOME
-// Copyright : CEA 2001
-// $Header:
-//=============================================================================
+// SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : Value_Impl.hxx
+// Author : Jean Rahuel
+// Module : SUPERV
+// $Header:
#ifndef _VALUE_IMPL_HXX_
#define _VALUE_IMPL_HXX_
#! /usr/bin/env python
+#
+# SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+#
+# Copyright (C) 2003 CEA/DEN, EDF R&D
+#
+#
+#
+# File : batchmode_SuperV.py
+# Module : SUPERV
try :
from batchmode_salome import orb
import re
from types import *
import SALOMEDS
-
#try :
# SuperVision = SuperV_Swig( len(sys.argv) , sys.argv )
# SuperVision.Swig = 1
# print 'SuperV_Swig created'
#except :
-# SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
+# SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision")
# SuperVision.Swig = 0
# print 'Supervision Component loaded'
-SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
+SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision")
SuperVision.Swig = 0
modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")