19 #ifndef OST_IO_SURFACE_IO_PLUGIN_H
20 #define OST_IO_SURFACE_IO_PLUGIN_H
22 #include <boost/shared_ptr.hpp>
23 #include <boost/filesystem/operations.hpp>
27 namespace ost {
namespace io {
33 virtual void Export(
const mol::SurfaceHandle& ent,
const boost::filesystem::path& loc)
const = 0;
41 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
const String& type)
const = 0;
42 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
const String& type)
const = 0;
44 virtual String GetFormatName()
const =0;
45 virtual String GetFormatDescription()
const =0;
50 template <
class HANDLER>
51 class SurfaceIOHandlerFactory:
public SurfaceIOHandlerFactoryBase
53 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
const String& type)
const {
54 return HANDLER::ProvidesImport(loc,type);
57 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
const String& type)
const {
58 return HANDLER::ProvidesExport(loc,type);
65 virtual String GetFormatName()
const {
66 return HANDLER::GetFormatName();
69 virtual String GetFormatDescription()
const {
70 return HANDLER::GetFormatDescription();
virtual ~SurfaceIOHandlerFactoryBase()
boost::shared_ptr< SurfaceIOHandlerFactoryBase > SurfaceIOHandlerFactoryBasePtr
virtual ~SurfaceIOHandler()
boost::shared_ptr< SurfaceIOHandler > SurfaceIOHandlerPtr