+++ /dev/null
-#ifndef __cpPlugins__Pipeline__Port__h__
-#define __cpPlugins__Pipeline__Port__h__
-
-#include <vector>
-#include <cpPlugins/Pipeline/DataObject.h>
-
-namespace cpPlugins
-{
- namespace Pipeline
- {
- /**
- */
- class cpPlugins_EXPORT Port
- {
- public:
- typedef Port Self;
-
- public:
- Port( bool required = true );
- virtual ~Port( );
-
- virtual void Add( DataObject* o ) = 0;
- virtual DataObject* Get( unsigned int i = 0 ) = 0;
- virtual const DataObject* Get( unsigned int i = 0 ) const = 0;
- virtual unsigned int Size( ) const = 0;
- virtual bool IsValid( ) const = 0;
-
- virtual bool IsRequired( ) const;
- virtual void Clear( );
-
- template< class _TType >
- inline void Configure( ) { this->m_Sample = _TType::New( ); }
-
- protected:
- bool m_Required;
- DataObject::Pointer m_Sample;
- };
-
- /**
- */
- class cpPlugins_EXPORT SingleDataPort
- : public Port
- {
- public:
- typedef SingleDataPort Self;
- typedef Port Superclass;
-
- public:
- SingleDataPort( bool required = true );
- virtual ~SingleDataPort( );
-
- virtual void Add( DataObject* o ) override;
- virtual DataObject* Get( unsigned int i = 0 ) override;
- virtual const DataObject* Get( unsigned int i = 0 ) const override;
- virtual unsigned int Size( ) const override;
- virtual bool IsValid( ) const override;
- virtual void Clear( ) override;
-
- protected:
- DataObject::Pointer m_Data;
- };
-
- /**
- */
- class cpPlugins_EXPORT OutputPort
- : public SingleDataPort
- {
- public:
- typedef OutputPort Self;
- typedef SingleDataPort Superclass;
- typedef Port BaseClass;
-
- public:
- OutputPort( bool required = true );
- virtual ~OutputPort( );
-
- void Set( DataObject* o );
- };
-
- /**
- */
- class cpPlugins_EXPORT InputPort
- : public SingleDataPort
- {
- public:
- typedef InputPort Self;
- typedef SingleDataPort Superclass;
- typedef Port BaseClass;
-
- public:
- InputPort( bool required = true );
- virtual ~InputPort( );
- };
-
- /**
- */
- class cpPlugins_EXPORT MultipleInputsPort
- : public Port
- {
- public:
- typedef MultipleInputsPort Self;
- typedef Port Superclass;
-
- public:
- MultipleInputsPort( bool required = true );
- virtual ~MultipleInputsPort( );
-
- virtual void Add( DataObject* o ) override;
- virtual DataObject* Get( unsigned int i = 0 ) override;
- virtual const DataObject* Get( unsigned int i = 0 ) const override;
- virtual unsigned int Size( ) const override;
- virtual bool IsValid( ) const override;
- virtual void Clear( ) override;
-
- void Delete( unsigned int id );
-
- protected:
- std::vector< DataObject::Pointer > m_Data;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __cpPlugins__Pipeline__Port__h__
-
-// eof - $RCSfile$