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( ) ); }
33 inline void SetPointer( DataObject* ptr )
34 { this->m_Data = ptr; }
37 cpPlugins::Interface::DataObject::Pointer m_Data;
42 class cpPlugins_Interface_EXPORT InputProcessObjectPort
43 : public ProcessObjectPort
46 typedef InputProcessObjectPort Self;
47 typedef ProcessObjectPort Superclass;
50 InputProcessObjectPort( bool required = false );
51 virtual ~InputProcessObjectPort( );
52 Self& operator=( DataObject* obj );
53 Self& operator=( const Superclass& other );
55 bool IsRequired( ) const;
58 void SetRequired( bool required );
66 class cpPlugins_Interface_EXPORT OutputProcessObjectPort
67 : public ProcessObjectPort
70 typedef OutputProcessObjectPort Self;
71 typedef ProcessObjectPort Superclass;
74 OutputProcessObjectPort( );
75 virtual ~OutputProcessObjectPort( );
76 Self& operator=( DataObject* obj );
77 Self& operator=( const Superclass& other );
84 #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECTPORT__H__