Salome HOME
add getJobDumpState function
[modules/kernel.git] / idl / SALOME_ContainerManager.idl
index 66d51d569bf96e660c871a1092f4bf79c4bc5814..965c7b0e18c123f104cdf82dd3fc47753da5db23 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -19,6 +19,7 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #ifndef _SALOME_CONTAINERMANAGER_IDL_
 #define _SALOME_CONTAINERMANAGER_IDL_
 
@@ -125,6 +126,8 @@ struct ResourceDefinition
   string applipath;
   //! list of available components 
   CompoList componentList;
+  //! Type of resource: interactive or batch
+  string mode;
 
   //! operating system 
   string OS;
@@ -150,6 +153,7 @@ exception NotFound {};
 
 struct JobParameters
 {
+  string job_name;
   //! Job Type - Could be equal to "command" or "yacs_file" or "python_salome"
   string job_type;
 
@@ -182,6 +186,18 @@ struct JobParameters
   Engines::ParameterList specific_parameters;
 };
 
+struct JobDescription
+{
+  long job_id;
+  Engines::JobParameters job_parameters;
+};
+typedef sequence<Engines::JobDescription> JobsList;
+
+interface SalomeLauncherObserver
+{
+  void notify(in string event_name, in string event_data);
+};
+
 /*! \brief Interface of the %salomelauncher
     This interface is used for interaction with the unique instance
     of SalomeLauncher
@@ -193,15 +209,27 @@ interface SalomeLauncher
   void   launchJob    (in long job_id)                           raises (SALOME::SALOME_Exception);
   string getJobState  (in long job_id)                           raises (SALOME::SALOME_Exception);
   void   getJobResults(in long job_id, in string directory)      raises (SALOME::SALOME_Exception);
+  boolean getJobDumpState(in long job_id, in string directory)   raises (SALOME::SALOME_Exception);
   void   removeJob    (in long job_id)                           raises (SALOME::SALOME_Exception);
 
   // Useful methods
   long    createJobWithFile(in string xmlJobFile, in string clusterName) raises (SALOME::SALOME_Exception);
-  boolean testBatch        (in ResourceParameters params)               raises (SALOME::SALOME_Exception);
+  boolean testBatch        (in ResourceParameters params)                raises (SALOME::SALOME_Exception);
 
   // SALOME kernel service methods
   void Shutdown();
   long getPID();
+
+  // Observer and introspection methods
+  void addObserver(in Engines::SalomeLauncherObserver observer);
+  void removeObserver(in Engines::SalomeLauncherObserver observer);
+  Engines::JobsList getJobsList();
+  Engines::JobParameters getJobParameters(in long job_id) raises (SALOME::SALOME_Exception);
+
+  // Save and load methods
+  void loadJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
+  void saveJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
+
 };
   
 /*! \brief Interface of the %containerManager
@@ -213,7 +241,7 @@ interface ContainerManager
   //! GiveContainer - use mode parameter of ContainerParameters to configure
   //! how this method works
   //! Currently: get, start, getorstart, findorstart, find
-  Container GiveContainer(in ContainerParameters params);
+  Container GiveContainer(in ContainerParameters params) raises (SALOME::SALOME_Exception);
 
   //!  Shutdown all containers that have been launched by the container manager
   void ShutdownContainers();
@@ -239,6 +267,24 @@ interface ResourcesManager
 
   //!  Get definition of a resource
   ResourceDefinition GetResourceDefinition(in string name);
+
+  //! Add a new resource to the resource_manager
+  /*!
+      write -> true, resource manager will add it into a xml_file
+      xml_file -> could be empty, in this case if write is true, resource manager will write
+      the resource in its first ResourceCatalog file
+    */
+  void AddResource(in ResourceDefinition new_resource, in boolean write, in string xml_file) 
+    raises (SALOME::SALOME_Exception);
+
+  //! Remove a new resource to the resource_manager
+  /*!
+      write -> true, resource manager will write a new xml_file
+      xml_file -> could be empty, in this case if write is true, resource manager will write
+      the resource in its first ResourceCatalog file
+    */
+  void RemoveResource(in string resource_name, in boolean write, in string xml_file) 
+    raises (SALOME::SALOME_Exception);
 };