diff options
Diffstat (limited to 'db/module.cpp')
| -rw-r--r-- | db/module.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/db/module.cpp b/db/module.cpp new file mode 100644 index 00000000000..d218fe6ec87 --- /dev/null +++ b/db/module.cpp @@ -0,0 +1,52 @@ +// module.cpp + +#include "stdafx.h" +#include "module.h" + +namespace mongo { + + std::list<Module*> * Module::_all; + + Module::Module( const string& name ) + : _name( name ) , _options( (string)"Module " + name + " options" ){ + if ( ! _all ) + _all = new list<Module*>(); + _all->push_back( this ); + } + + Module::~Module(){} + + void Module::addOptions( program_options::options_description& options ){ + if ( ! _all ) { + return; + } + for ( list<Module*>::iterator i=_all->begin(); i!=_all->end(); i++ ){ + Module* m = *i; + options.add( m->_options ); + } + } + + void Module::configAll( program_options::variables_map& params ){ + if ( ! _all ) { + return; + } + for ( list<Module*>::iterator i=_all->begin(); i!=_all->end(); i++ ){ + Module* m = *i; + m->config( params ); + } + + } + + + void Module::initAll(){ + if ( ! _all ) { + return; + } + for ( list<Module*>::iterator i=_all->begin(); i!=_all->end(); i++ ){ + Module* m = *i; + m->init(); + } + + } + +} |
