1 #ifndef __cpPlugins__Pipeline__DataObject__h__
2 #define __cpPlugins__Pipeline__DataObject__h__
4 #include <cpPlugins/Pipeline/Object.h>
10 // Some forward declarations
15 class cpPlugins_EXPORT DataObject
18 friend class ProcessObject;
21 typedef DataObject Self;
22 typedef Object Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
28 itkTypeMacro( DataObject, Object );
29 cpPlugins_Id_Macro( DataObject, Object );
32 virtual bool IsCompatible( const Self* other ) const;
34 ProcessObject* GetSource( );
35 const ProcessObject* GetSource( ) const;
36 void SetSource( ProcessObject* src );
38 void DisconnectFromPipeline( );
42 virtual ~DataObject( );
44 template< class _TType >
45 inline bool _DisconnectVTK( );
48 // Purposely not implemented
49 DataObject( const Self& );
50 Self& operator=( const Self& );
53 ProcessObject* m_Source;
60 #endif // __cpPlugins__Pipeline__DataObject__h__