SALOME documentation central

idl/SALOME_Component.idl

Go to the documentation of this file.
00001 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 //  This library is free software; you can redistribute it and/or
00007 //  modify it under the terms of the GNU Lesser General Public
00008 //  License as published by the Free Software Foundation; either
00009 //  version 2.1 of the License.
00010 //
00011 //  This library is distributed in the hope that it will be useful,
00012 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 //  Lesser General Public License for more details.
00015 //
00016 //  You should have received a copy of the GNU Lesser General Public
00017 //  License along with this library; if not, write to the Free Software
00018 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 //  File   : SALOME_Component.idl
00023 //  Author : Paul RASCLE, EDF
00024 //  $Header: 
00025 //
00026 #ifndef _SALOME_COMPONENT_IDL_
00027 #define _SALOME_COMPONENT_IDL_
00028 
00029 #include "SALOMEDS.idl"
00030 #include "SALOME_Exception.idl"
00031 #include "SALOME_PyNode.idl"
00032 
00041 module Engines
00042 {
00047   typedef sequence<octet> TMPFile;  
00048   
00050   struct KeyValuePair
00051   {
00052     string key;
00053     any value;
00054   };
00055 
00057   struct dataref
00058   {
00059     string ref;
00060   };
00061 
00062   typedef sequence<KeyValuePair> FieldsDict;
00063 
00064   interface Component ;
00065   interface fileRef ;
00066   interface fileTransfer ;
00067   interface Salome_file;
00068 
00074   interface Container
00075   {
00076 
00084     boolean load_component_Library(in string componentName);
00085 
00087 
00096     Engines::Component create_component_instance(in string componentName,
00097                                                  in long studyId);
00098 
00100 
00107     Component find_component_instance(in string registeredName,
00108                           in long studyId);
00109 
00111 
00120     Component load_impl(in string nameToRegister,
00121                in string componentName);
00122 
00124 
00127     void remove_impl(in Component component_i);
00128 
00130     void finalize_removal() ;
00131 
00133     void ping();
00134 
00136     readonly attribute string name ;
00137 
00139     readonly attribute string workingdir ;
00140 
00142     attribute string logfilename ;
00143 
00145     void Shutdown();
00146 
00148     string getHostName();
00149 
00151     long getPID();
00152 
00154 
00159     boolean Kill_impl() ;
00160 
00162 
00168     fileRef createFileRef(in string origFileName);
00169 
00171 
00179     Salome_file createSalome_file(in string origFileName);
00180 
00182 
00187     fileTransfer getFileTransfer();
00188 
00190 
00195     void copyFile(in Container contai, in string remoteFile, in string localFile);
00196 
00198 
00202     PyNode createPyNode(in string nodeName, in string code)  raises(SALOME::SALOME_Exception);
00203   };
00204 
00209   interface Component
00210   {
00212     readonly attribute string instanceName ;
00213 
00215     readonly attribute string interfaceName ;
00216 
00218     void ping();
00219 
00221 
00227     long getStudyId();
00228 
00230 
00235     void destroy() ;
00236 
00238     Container GetContainerRef() ;
00239 
00241 
00247     void setProperties(in FieldsDict dico);
00248 
00250 
00254     FieldsDict getProperties();
00255 
00257 
00263     void Names( in string aGraphName , in string aNodeName ) ;
00264 
00266 
00269     boolean Kill_impl() ;
00270 
00272 
00276     boolean Stop_impl() ;
00277 
00279 
00283     boolean Suspend_impl() ;
00284 
00286 
00289     boolean Resume_impl() ;
00290 
00292 
00295     long CpuUsed_impl() ;
00296     
00298 
00302     TMPFile DumpPython(in Object theStudy,
00303                  in boolean isPublished, 
00304                  out boolean isValidScript);
00305 
00306     
00308 
00318     Engines::Salome_file getInputFileToService(in string service_name, 
00319                                 in string Salome_file_name)  raises(SALOME::SALOME_Exception);
00320 
00322 
00337     void checkInputFilesToService(in string service_name)                  raises(SALOME::SALOME_Exception);
00338 
00340 
00350     Engines::Salome_file setInputFileToService(in string service_name,
00351                                 in string Salome_file_name) raises(SALOME::SALOME_Exception);
00352 
00354 
00364     Engines::Salome_file getOutputFileToService(in string service_name, 
00365                               in string Salome_file_name) raises(SALOME::SALOME_Exception);
00366 
00368 
00383     void checkOutputFilesToService(in string service_name)             raises(SALOME::SALOME_Exception);
00384 
00386 
00396     Engines::Salome_file setOutputFileToService(in string service_name,
00397                               in string Salome_file_name)    raises(SALOME::SALOME_Exception);
00398 
00400 
00405     boolean hasObjectInfo();
00406     
00408 
00419     string getObjectInfo(in long studyId, in string entry);
00420   } ;
00421 
00423   typedef sequence<octet> fileBlock;
00424 
00429   interface fileTransfer
00430   {
00432 
00440     long open(in string fileName);
00442 
00446     long openW(in string fileName);
00447 
00449 
00453     void close(in long fileId);
00454 
00456 
00460     fileBlock getBlock(in long fileId);
00461 
00463 
00467     void putBlock(in long fileId, in fileBlock block);
00468 
00469   };
00470 
00472   struct file {
00474     string file_name;
00476     string path; 
00477     string type;
00478     string source_file_name;
00480     string status; 
00481     long   node;
00482     Engines::Container container;
00483   };
00484 
00486   typedef sequence<Engines::file> files;
00487 
00488 
00490   struct SfState {
00492     string  name; 
00494     string  hdf5_file_name; 
00496     long    number_of_files; 
00498     boolean files_ok; 
00499 
00500   };
00501 
00507   interface Salome_file : Engines::fileTransfer
00508   {
00510 
00516     void load(in string hdf5_file)               raises (SALOME::SALOME_Exception);
00517 
00519 
00526     void save(in string hdf5_file)               raises (SALOME::SALOME_Exception);
00527 
00529 
00537     void save_all(in string hdf5_file)                raises (SALOME::SALOME_Exception);
00538 
00539 /**************/
00540 
00542 
00548     void setLocalFile(in string comp_file_name) raises (SALOME::SALOME_Exception);
00549 
00551 
00557     void setDistributedFile(in string comp_file_name) raises (SALOME::SALOME_Exception);
00558 
00560 
00567     void connect(in Engines::Salome_file source_Salome_file) raises (SALOME::SALOME_Exception);
00568 
00570 
00577     void connectDistributedFile(in string file_name,
00578                     in Engines::Salome_file source_Salome_file) raises (SALOME::SALOME_Exception);
00579     
00581 
00588     void setDistributedSourceFile(in string file_name,
00589                       in string source_file_name) raises (SALOME::SALOME_Exception);
00590 
00591 /**************/
00592 
00594 
00598     void recvFiles()                             raises (SALOME::SALOME_Exception) ;
00599 
00600 /**************/
00601 
00603 
00609     void removeFile(in string file_name)              raises (SALOME::SALOME_Exception);
00610 
00612     void removeFiles();
00613 
00614 /**************/
00615 
00617 
00620     Engines::files getFilesInfos();
00621 
00623 
00631     Engines::file  getFileInfos(in string file_name)       raises (SALOME::SALOME_Exception);
00632 
00634     Engines::SfState getSalome_fileState();
00635 
00636 
00638 
00642     void setContainer(in Engines::Container container);
00643   };
00644 
00662   interface fileRef
00663   {
00665     readonly attribute string origFileName;
00667     readonly attribute string refMachine;
00668 
00669     Container getContainer();
00670 
00671     boolean addRef(in string machine,
00672           in string fileName);
00673 
00674     string getRef(in string machine);
00675   };
00676 };
00677 
00678 #endif