}
// -------------------------------------------------------------------------
-cpPlugins::Interface::Object* cpPlugins::Interface::Interface::
+cpPlugins::Interface::Object::Pointer cpPlugins::Interface::Interface::
CreateObject( const std::string& name ) const
{
TClassesIterator cIt = this->m_Classes.find( name );
ObjectProvider* provider =
dynamic_cast< ObjectProvider* >( this->m_Providers[ cIt->second ] );
if( provider != NULL )
- return( dynamic_cast< Object* >( provider->create( ) ) );
+ return( provider->create( ) );
} // fi
return( NULL );
}
+// -------------------------------------------------------------------------
+cpPlugins::Interface::ProcessObject::Pointer
+cpPlugins::Interface::Interface::
+CreateProcessObject( const std::string& name ) const
+{
+ cpPlugins::Interface::Object::Pointer o = this->CreateObject( name );
+ cpPlugins::Interface::ProcessObject::Pointer p =
+ dynamic_cast< cpPlugins::Interface::ProcessObject* >( o.GetPointer( ) );
+ return( p );
+}
+
// -------------------------------------------------------------------------
bool cpPlugins::Interface::Interface::
Load( const std::string& path )
// Get reader provider
for( unsigned int i = 0; i < this->m_Providers.size( ); ++i )
{
- Object* dummy = this->m_Providers[ i ]->create( );
+ Object::Pointer dummy = this->m_Providers[ i ]->create( );
this->m_Classes[ dummy->GetClassName( ) ] = i;
- delete dummy;
} // rof
}