]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/ProcessObject.h
...
[cpPlugins.git] / lib / cpPlugins / ProcessObject.h
index 6801fc2f0b7f886139248b6b2e12700ea7a9304e..1f888a9db864f9efcdbba1e48e3cefdf1489a43d 100644 (file)
@@ -24,6 +24,12 @@ namespace cpPlugins
     itkTypeMacro( ProcessObject, Object );
     cpPlugins_Id_Macro( ProcessObject, Object );
 
+    itkBooleanMacro( PrintExecution );
+    itkGetConstMacro( LastExecutionSpan, long );
+    itkGetConstMacro( PrintExecution, bool );
+    itkSetMacro( PrintExecution, bool );
+    itkSetObjectMacro( PrintExecutionStream, std::ofstream );
+
   public:
     Parameters* GetParameters( );
     const Parameters* GetParameters( ) const;
@@ -37,23 +43,30 @@ namespace cpPlugins
     unsigned int GetNumberOfInputs( ) const;
     unsigned int GetNumberOfOutputs( ) const;
 
-    OutputPort& GetOutput( const std::string& id );
-    const OutputPort& GetOutput( const std::string& id ) const;
+    OutputPort& GetOutputPort( const std::string& id );
+    const OutputPort& GetOutputPort( const std::string& id ) const;
+
+    DataObject* GetInput( const std::string& id );
+    const DataObject* GetInput( const std::string& id ) const;
+    DataObject* GetOutput( const std::string& id );
+    const DataObject* GetOutput( const std::string& id ) const;
 
-    DataObject* GetInputData( const std::string& id );
-    const DataObject* GetInputData( const std::string& id ) const;
-    DataObject* GetOutputData( const std::string& id );
-    const DataObject* GetOutputData( const std::string& id ) const;
+    template< class _TType >
+      _TType* GetInputData( const std::string& name );
 
-    bool SetInput( const std::string& id, const OutputPort& port );
+    template< class _TType >
+      _TType* GetOutputData( const std::string& name );
+
+    bool SetInputPort( const std::string& id, const OutputPort& port );
 
     void DisconnectInputs( );
     void DisconnectOutputs( );
     void Disconnect( );
 
     // Pipeline execution
+    virtual void Modified( ) const ITK_OVERRIDE;
     virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
-    virtual std::string Update( );
+    virtual void Update( );
 
     // Qt dialog creation
     virtual ParametersQtDialog* CreateQtDialog( );
@@ -65,6 +78,7 @@ namespace cpPlugins
     virtual ~ProcessObject( );
 
     void _AddInput( const std::string& name, bool required = true );
+    void _Error( const std::string& error );
 
     template< class O >
       inline void _AddOutput( const std::string& name );
@@ -74,7 +88,7 @@ namespace cpPlugins
     template< class F >
       inline F* _CreateVTK( );
 
-    virtual std::string _GenerateData( ) = 0;
+    virtual void _GenerateData( ) = 0;
 
   private:
     // Purposely not implemented
@@ -90,6 +104,10 @@ namespace cpPlugins
     _TOutputs m_Outputs;
 
     itk::ModifiedTimeType m_LastExecutionTime;
+    mutable long m_LastExecutionSpan;
+
+    bool m_PrintExecution;
+    std::ostream* m_PrintExecutionStream;
   };
 
 } // ecapseman