/* -*- C++ -*- * Copyright ©2005 Hugo Mills * * This software is distributed under the terms of the GNU GPL * For more information on the GPL, see the file COPYING or * visit http://www.gnu.org/ * * This software is distributed without warranty */ #ifndef OPTIONS_H #define OPTIONS_H #include #include #include class Options { public: Options(int argc, char* argv[]); virtual ~Options(); std::istream* configfile(void) const { return _configfile; } int debug_plugin(void) const { return _debug_plugin; } int debug_parse(void) const { return _debug_parse; } int debug_render(void) const { return _debug_render; } int debug_lexer(void) const { return _debug_lexer; } void add_plugin_path(const std::string& dir) { plugin_search_path.push_back(dir); } void add_data_path(const std::string& dir) { data_search_path.push_back(dir); } void clear_plugin_path(void) { plugin_search_path.clear(); } void clear_data_path(void) { data_search_path.clear(); } std::string find_data_file( const std::string& sub_path, const std::string& filename ) const; typedef std::list::const_iterator psearch_it; psearch_it plugin_dir_start(void) const { return plugin_search_path.begin(); } psearch_it plugin_dir_end(void) const { return plugin_search_path.end(); } private: std::istream* _configfile; int _debug_plugin; int _debug_parse; int _debug_render; int _debug_lexer; std::list plugin_search_path; std::list data_search_path; void help(void) const; }; extern Options* opts; #endif