24 #ifndef OST_IO_PROFILE_IO_HANDLER_HH
25 #define OST_IO_PROFILE_IO_HANDLER_HH
27 #include <boost/shared_ptr.hpp>
28 #include <boost/filesystem/operations.hpp>
34 namespace ost {
namespace io {
42 const boost::filesystem::path& loc) = 0;
45 const boost::filesystem::path& loc)
const = 0;
54 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
55 const String& format=
"auto")
const = 0;
56 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
57 const String& format=
"auto")
const = 0;
59 virtual String GetFormatName()
const =0;
60 virtual String GetFormatDescription()
const =0;
65 template <
class HANDLER>
67 virtual bool ProvidesImport(
const boost::filesystem::path& loc,
68 const String& format=
"auto")
const {
69 return HANDLER::ProvidesImport(loc, format);
72 virtual bool ProvidesExport(
const boost::filesystem::path& loc,
73 const String& format=
"auto")
const {
74 return HANDLER::ProvidesExport(loc, format);
81 virtual String GetFormatName()
const {
82 return HANDLER::GetFormatName();
85 virtual String GetFormatDescription()
const {
86 return HANDLER::GetFormatDescription();
pure abstract base class for creation of a specfic io handler
virtual ~ProfileIOHandler()
pure abstract base class for profile io handlers
virtual ~ProfileIOHandlerFactoryBase()
boost::shared_ptr< ProfileIOHandlerFactoryBase > ProfileIOHandlerFactoryBasePtr
Provides a profile for a sequence.
boost::shared_ptr< ProfileIOHandler > ProfileIOHandlerPtr