Salome HOME
[EDF29150] : Add relevant traces in resource manager + dump of logmanager service
[modules/kernel.git] / src / Launcher / SALOME_LogManager.hxx
index 81c58766900bdf61978be9c933f7a47d9081a85c..80cc55514ddd5d97d94886e942127ea1a1035df2 100644 (file)
@@ -37,6 +37,19 @@ class SALOME_NamingService_Abstract;
 class SALOME_LogManager;
 class SALOME_ContainerPerfLog;
 class SALOME_ContainerScriptPerfLog;
+class SALOME_ContainerScriptExecPerfLog;
+
+class SALOMELAUNCHER_EXPORT SALOME_VisitorContainerLog
+{
+public:
+  virtual void enterLogManager(SALOME_LogManager& inst) = 0;
+  virtual void leaveLogManager(SALOME_LogManager& inst) = 0;
+  virtual void enterContainerPerfLog(SALOME_ContainerPerfLog& inst) = 0;
+  virtual void leaveContainerPerfLog(SALOME_ContainerPerfLog& inst) = 0;
+  virtual void enterContainerScriptPerfLog(SALOME_ContainerScriptPerfLog& inst) = 0;
+  virtual void leaveContainerScriptPerfLog(SALOME_ContainerScriptPerfLog& inst) = 0;
+  virtual void visitContainerScriptExecPerfLog(SALOME_ContainerScriptExecPerfLog& inst) = 0;
+};
 
 class SALOMELAUNCHER_EXPORT SALOME_ContainerScriptExecPerfLog : public POA_Engines::ContainerScriptExecPerfLog
 {
@@ -48,6 +61,10 @@ public:
   PortableServer::POA_var getPOA();
   void assign(const SALOME::vectorOfByte& value) override;
   SALOME::vectorOfByte *getObj() override;
+  const std::vector<char>& data() const { return _data; }
+  void setData(std::vector<char>&& data) { _data = std::move(data); }
+public:
+  void accept(SALOME_VisitorContainerLog &visitor);
 public:
   void start();
   AutoPyRef end();
@@ -69,6 +86,13 @@ public:
   Engines::ListOfContainerScriptExecPerfLog *listOfExecs() override;
   char *getCode() override;
   char *getName() override;
+  const std::string& name() const { return _name; }
+  const std::string& code() const { return _code; }
+  void setName(const std::string& name) { _name = name; }
+  void setCode(const std::string& code) { _code = code; }
+  std::size_t getNumberOfSessions() const { return _sessions.size(); }
+public:
+  void accept(SALOME_VisitorContainerLog &visitor);
 private:
   AutoPyRef _pyScriptLog;
   SALOME_ContainerPerfLog *_father = nullptr;
@@ -89,6 +113,13 @@ public:
   char *getContainerEntryInNS() override;
   Engines::ContainerScriptPerfLog_ptr addScript(const char *name, const char *code) override;
   Engines::ListOfContainerScriptPerfLog *listOfScripts() override;
+  const std::string& nameInNS() const { return _name_in_ns; }
+  const std::string& logFile() const { return _log_file; }
+  void setNameInNS(const std::string& name) { _name_in_ns = name; }
+  void setLogFile(const std::string& logFile) { _log_file = logFile; }
+  std::size_t getNumberOfScripts() const { return _scripts.size(); }
+public:
+  void accept(SALOME_VisitorContainerLog &visitor);
 private:
   AutoPyRef _pyContLog;
   SALOME_LogManager *_father = nullptr;
@@ -106,6 +137,12 @@ class SALOMELAUNCHER_EXPORT SALOME_LogManager : public POA_Engines::LogManager
   virtual ~SALOME_LogManager() = default;
   Engines::ContainerPerfLog_ptr declareContainer(const char *contInNS, const char *logfile) override;
   Engines::ListOfContainerPerfLog *listOfContainerLogs() override;
+  SALOME::vectorOfByte *getAllStruct() override;
+  std::size_t getNumberOfContainers() const { return _containers.size(); }
+ public:
+  void accept(SALOME_VisitorContainerLog &visitor);
+ private:
+  std::vector<char> dumpCppInternalFrmt();
  private:
   PyObject *_pyLogManager = nullptr;
   std::unique_ptr<SALOME_NamingService_Abstract> _NS;