1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_core_internal_ModuleManager_hpp
10 #define anna_core_internal_ModuleManager_hpp
14 #include <anna/core/Singleton.hpp>
18 class ModuleManager : public Singleton <ModuleManager> {
20 typedef std::pair <const char*, const char*> Module;
21 typedef std::vector <Module> Modules;
22 typedef Modules::const_iterator const_iterator;
24 void insert(const char* module, const char* revision) throw();
25 const_iterator begin() const throw() { return a_modules.begin(); }
26 const_iterator end() const throw() { return a_modules.end(); }
28 static const char* module(const_iterator& ii) throw() { return ii->first; }
29 static const char* revision(const_iterator& ii) throw() { return ii->second;; }
36 ModuleManager(const ModuleManager&);
38 friend class Singleton <ModuleManager>;