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