173870b5a00925b8735decd6b7579cceecaafbbe
Stefan Schuermans implemented module manager...

Stefan Schuermans authored 13 years ago

1) /* Blinker
2)    Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #ifndef MODULEMGR_H
7) #define MODULEMGR_H
8) 
9) #include <list>
10) 
11) #include "CallMgr.h"
12) #include "Directory.h"
13) #include "Module.h"
14) #include "StreamMgr.h"
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

15) #include "TimeCallee.h"
Stefan Schuermans implemented module manager...

Stefan Schuermans authored 13 years ago

16) 
17) namespace Blinker {
18) 
19) /// manager for modules of one type
20) template<typename MODULE>
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

21) class ModuleMgr: public TimeCallee
Stefan Schuermans implemented module manager...

Stefan Schuermans authored 13 years ago

22) {
23) protected:
24)   /// module list entry
25)   struct Entry {
26)     std::string m_name;     ///< name of module
27)     MODULE      *m_pModule; ///< module object
28)     Entry(const std::string &name); ///< constructor
29)     void createModule(ModuleMgr &mgr); ///< create module
30)     void destroyModule(); ///< destroy module
31)   };
32) 
33)   /// module list
34)   typedef std::list<Entry> ModuleList;
35) 
36) public:
37)   /**
38)    * @brief constructor
39)    * @param[in] callMgr callback manager
40)    * @param[in] streamMgr stream manager
41)    * @param[in] dirBase base directory
42)    */
43)   ModuleMgr(CallMgr &callMgr, StreamMgr &streamMgr, const Directory &dirBase);
44) 
45)   /// destructor
46)   ~ModuleMgr();
47) 
48) private:
49)   /// copy constructor disabled
Stefan Schuermans whitespace fixes

Stefan Schuermans authored 13 years ago

50)   ModuleMgr(const ModuleMgr &that);
Stefan Schuermans implemented module manager...

Stefan Schuermans authored 13 years ago

51) 
52)   /// assignment operator disabled
53)   const ModuleMgr & operator=(const ModuleMgr &that);
54) 
55) public:
Stefan Schuermans fixed comment typo

Stefan Schuermans authored 12 years ago

56)   /// callback when requested time reached
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

57)   virtual void timeCall();
58) 
59) protected:
Stefan Schuermans implemented module manager...

Stefan Schuermans authored 13 years ago

60)   /// check for update of configuration
61)   void updateConfig();
62) 
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

63)   /// light update of module list, i.e. call all modules in current list
64)   void updateModuleListLight();
65) 
66)   /// full update of module list, i.e. scan all subdirs in base directory
67)   void updateModuleListFull();