| // |
| // C++ Interface: PresetFactory |
| // |
| // Description: |
| // |
| // |
| // Author: Carmelo Piccione <carmelo.piccione@gmail.com>, (C) 2008 |
| // |
| // Copyright: See COPYING file that comes with this distribution |
| // |
| // |
| #include "Preset.hpp" |
| #include <memory> |
| |
| #ifndef __PRESET_FACTORY_HPP |
| #define __PRESET_FACTORY_HPP |
| |
| |
| class PresetFactory { |
| |
| public: |
| static const std::string IDLE_PRESET_PROTOCOL; |
| static std::string protocol(const std::string & url, std::string & path); |
| |
| inline PresetFactory() {} |
| |
| inline virtual ~PresetFactory() {} |
| |
| /// Constructs a new preset given an url and optional meta data |
| /// \param url a locational identifier referencing the preset |
| /// \param name the preset name |
| /// \param author the preset author |
| /// \returns a valid preset object |
| virtual std::auto_ptr<Preset> allocate (const std::string & url, |
| const std::string & name=std::string(), |
| const std::string & author=std::string()) = 0; |
| |
| /// Returns a space separated list of supported extensions |
| virtual std::string supportedExtensions() const = 0; |
| |
| }; |
| |
| #endif |