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