]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObject.h
279fe761858eb9f30a4de49c830c8594cc7ea3cf
[cpPlugins.git] / lib / cpPlugins / DataObject.h
1 #ifndef __CPPLUGINS__DATAOBJECT__H__
2 #define __CPPLUGINS__DATAOBJECT__H__
3
4 #include <cpPlugins/Object.h>
5
6 namespace cpPlugins
7 {
8   // Some forward declarations
9   class ProcessObject;
10
11   /**
12    */
13   class cpPlugins_EXPORT DataObject
14     : public Object
15   {
16   public:
17     typedef DataObject                      Self;
18     typedef Object                          Superclass;
19     typedef itk::SmartPointer< Self >       Pointer;
20     typedef itk::SmartPointer< const Self > ConstPointer;
21
22   public:
23     itkNewMacro( Self );
24     itkTypeMacro( DataObject, Object );
25     cpPlugins_Id_Macro( DataObject, Object );
26
27   public:
28     ProcessObject* GetSource( );
29     const ProcessObject* GetSource( ) const;
30     void SetSource( ProcessObject* src );
31
32     void DisconnectFromPipeline( );
33
34   protected:
35     DataObject( );
36     virtual ~DataObject( );
37
38   private:
39     // Purposely not implemented
40     DataObject( const Self& );
41     Self& operator=( const Self& );
42
43   protected:
44     ProcessObject* m_Source;
45   };
46
47 } // ecapseman
48
49 #endif // __CPPLUGINS__DATAOBJECT__H__
50
51 // eof - $RCSfile$