19 #ifndef OST_IO_ENTITY_IO_PLUGIN_H
20 #define OST_IO_ENTITY_IO_PLUGIN_H
22 #include <boost/shared_ptr.hpp>
23 #include <boost/filesystem/operations.hpp>
50 const boost::filesystem::path& loc)=0;
53 const boost::filesystem::path& loc)
const = 0;
56 std::istream& stream)=0;
59 std::ostream& stream)
const=0;
79 template <
class HANDLER>
82 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
const String& type)
const {
83 return HANDLER::ProvidesImport(loc,type);
86 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
const String& type)
const {
87 return HANDLER::ProvidesExport(loc,type);
90 virtual String GetFormatName()
const {
91 return HANDLER::GetFormatName();
94 virtual String GetFormatDescription()
const {
95 return HANDLER::GetFormatDescription();
pure abstract base class for creation of a specfic entity io handle
virtual String GetFormatDescription() const =0
virtual bool ProvidesExport(const boost::filesystem::path &loc, const String &type) const =0
virtual String GetFormatName() const =0
virtual bool ProvidesImport(const boost::filesystem::path &loc, const String &type) const =0
virtual EntityIOHandlerP Create() const =0
virtual ~EntityIOHandlerFactoryBase()
pure abstract base class for entity io handlers
virtual void Export(const mol::EntityView &ent, const boost::filesystem::path &loc) const =0
virtual void Export(const mol::EntityView &ent, std::ostream &stream) const =0
virtual bool RequiresProcessor() const =0
virtual void Import(mol::EntityHandle &ent, std::istream &stream)=0
virtual void Import(mol::EntityHandle &ent, const boost::filesystem::path &loc)=0
virtual ~EntityIOHandler()
boost::shared_ptr< EntityIOHandlerFactoryBase > EntityIOHandlerFactoryBaseP
boost::shared_ptr< EntityIOHandler > EntityIOHandlerP