Anonymous avatar Anonymous committed 28b577e

adding the interface for tools meant to monitor the python side of a job

Comments (0)

Files changed (5)

+2007-06-07  Sebastien Binet  <binet@lblbox>
+
+	* tagging PerfMonKernel-00-01-04
+	* adding the interface for tools meant to monitor the python side of a
+	  job
+	* A PerfMonKernel/IPerfMonPyTool.h
+	* A src/IPerfMonPyTool.cxx
+	* M PerfMonKernel/IPerfMonSvc.h
+	* M src/IPerfMonSvc.cxx
+
 2007-04-19  Sebastien Binet  <binet@lblbox>
 
 	* tagging PerfMonKernel-00-01-03

PerfMonKernel/IPerfMonPyTool.h

+///////////////////////// -*- C++ -*- /////////////////////////////
+// IPerfMonPyTool.h 
+// Header file for class IPerfMonPyTool
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef PERFMONKERNEL_IPERFMONPYTOOL_H 
+#define PERFMONKERNEL_IPERFMONPYTOOL_H 
+
+// STL includes
+
+// FrameWork includes
+#include "GaudiKernel/IAlgTool.h"
+
+// forward declaration
+class IPerfMonSvc;
+
+class IPerfMonPyTool : virtual public IAlgTool
+{ 
+  friend class IPerfMonSvc;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Destructor: 
+   */
+  virtual ~IPerfMonPyTool();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+  static const InterfaceID& interfaceID();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /// retrieve performance monitoring data - during python execution
+  virtual void pyMonitor() = 0;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected methods: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+  /// shutdown monitoring: make sure that metadata (if any) is up-to-date
+  /// clean-up any persistency related stuff (@c IPerfMonTupleSvc)
+  /// This method is called by @c IPerfMonSvc
+  virtual StatusCode shutdown() = 0;
+
+}; 
+
+// I/O operators
+//////////////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+inline const InterfaceID& IPerfMonPyTool::interfaceID() 
+{ 
+  static const InterfaceID IID_IPerfMonPyTool("IPerfMonPyTool", 1, 0);
+  return IID_IPerfMonPyTool; 
+}
+
+#endif //> PERFMONKERNEL_IPERFMONPYTOOL_H

PerfMonKernel/IPerfMonSvc.h

 
 // forward declaration
 class IPerfMonTool;
+class IPerfMonPyTool;
 
 class IPerfMonSvc : virtual public IService
 { 
   /// shutdown an @c IPerfMonTool
   StatusCode shutdown( IPerfMonTool* tool );
 
+  /// shutdown an @c IPerfMonPyTool
+  StatusCode shutdown( IPerfMonPyTool* tool );
+
 }; 
 
 // I/O operators

src/IPerfMonPyTool.cxx

+///////////////////////// -*- C++ -*- /////////////////////////////
+// IPerfMonPyTool.cxx 
+// Implementation file for class IPerfMonPyTool
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+// PerfMonKernel includes
+#include "PerfMonKernel/IPerfMonPyTool.h"
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+IPerfMonPyTool::~IPerfMonPyTool()
+{}
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Non-const methods: 
+/////////////////////////////////////////////////////////////////// 
+
+/////////////////////////////////////////////////////////////////// 
+// Protected methods: 
+/////////////////////////////////////////////////////////////////// 
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Non-const methods: 
+/////////////////////////////////////////////////////////////////// 

src/IPerfMonSvc.cxx

 // PerfMonKernel includes
 #include "PerfMonKernel/IPerfMonSvc.h"
 #include "PerfMonKernel/IPerfMonTool.h"
+#include "PerfMonKernel/IPerfMonPyTool.h"
 
 /////////////////////////////////////////////////////////////////// 
 // Public methods: 
   return tool->shutdown();
 }
 
+StatusCode IPerfMonSvc::shutdown( IPerfMonPyTool* tool )
+{
+  return tool->shutdown();
+}
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.