1 #ifndef __CPPLUGINS__INTERFACE__PROCESSOBJECTPORT__H__
2 #define __CPPLUGINS__INTERFACE__PROCESSOBJECTPORT__H__
4 #include <cpPlugins/Interface/DataObject.h>
12 class cpPlugins_Interface_EXPORT ProcessObjectPort
15 typedef ProcessObjectPort Self;
19 virtual ~ProcessObjectPort( );
20 Self& operator=( DataObject* obj );
21 Self& operator=( const Self& other );
23 bool IsValid( ) const;
25 // This could be seen as a pointer to DataObject's
26 inline DataObject* GetPointer( )
27 { return( this->m_Data.GetPointer( ) ); }
28 inline const DataObject* GetPointer( ) const
29 { return( this->m_Data.GetPointer( ) ); }
30 inline DataObject* operator->( ) const
31 { return( this->m_Data.GetPointer( ) ); }
34 cpPlugins::Interface::DataObject::Pointer m_Data;
39 class cpPlugins_Interface_EXPORT InputProcessObjectPort
40 : public ProcessObjectPort
43 typedef InputProcessObjectPort Self;
44 typedef ProcessObjectPort Superclass;
47 InputProcessObjectPort( bool required = false );
48 virtual ~InputProcessObjectPort( );
49 Self& operator=( DataObject* obj );
50 Self& operator=( const Superclass& other );
52 bool IsRequired( ) const;
55 void SetRequired( bool required );
63 class cpPlugins_Interface_EXPORT OutputProcessObjectPort
64 : public ProcessObjectPort
67 typedef OutputProcessObjectPort Self;
68 typedef ProcessObjectPort Superclass;
71 OutputProcessObjectPort( );
72 virtual ~OutputProcessObjectPort( );
73 Self& operator=( DataObject* obj );
74 Self& operator=( const Superclass& other );
81 #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECTPORT__H__