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;
60 virtual bool RequiresProcessor()
const=0;
70 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
const String& type)
const = 0;
71 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
const String& type)
const = 0;
73 virtual String GetFormatName()
const =0;
74 virtual String GetFormatDescription()
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();
boost::shared_ptr< EntityIOHandler > EntityIOHandlerP
pure abstract base class for creation of a specfic entity io handle
virtual ~EntityIOHandler()
boost::shared_ptr< EntityIOHandlerFactoryBase > EntityIOHandlerFactoryBaseP
virtual ~EntityIOHandlerFactoryBase()
pure abstract base class for entity io handlers