diff options
author | danglassey <danglassey> | 2002-08-14 09:57:17 +0000 |
---|---|---|
committer | danglassey <danglassey> | 2002-08-14 09:57:17 +0000 |
commit | c9458897ebbb739d8db83c80e06512d8a612f743 (patch) | |
tree | f8c5381045887e34388cc6b26cfccc254bf766dc /examples/classes/swmgrex.cpp | |
download | sword-sf-cvs-c9458897ebbb739d8db83c80e06512d8a612f743.tar.gz |
*** empty log message ***
Diffstat (limited to 'examples/classes/swmgrex.cpp')
-rw-r--r-- | examples/classes/swmgrex.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/classes/swmgrex.cpp b/examples/classes/swmgrex.cpp new file mode 100644 index 0000000..5cb10ba --- /dev/null +++ b/examples/classes/swmgrex.cpp @@ -0,0 +1,52 @@ +/****************************************************************************** + * Class SWMgr manages installed modules for a frontend. + * SWMgr reads a mods.conf file to discover its information. + * It then instantiates the correct decendent of SWModule for each + * module entry in mods.conf + * The developer may use this class to query what modules are installed + * and to retrieve an (SWModule *) for any one of these modules + * + * SWMgr makes its modules available as an STL Map. + * The Map definition is typedef'ed as ModMap + * ModMap consists of: FIRST : string moduleName + * SECOND: SWModule *module + * + */ + +#include <swmgr.h> + +main() { + SWMgr manager; // create a default manager that looks in the current directory for mods.conf + + cout << "\nInstalled Modules:\n\n"; + + ModMap::iterator modIterator; + +// Loop thru all installed modules and print out information + + for (modIterator = manager.Modules.begin(); modIterator != manager.Modules.end(); modIterator++) { + string modName = (*modIterator).first; // mod.conf section name (stored in module->Name()) + SWModule *module = (*modIterator).second; + + cout << modName << "(" << module->Name() << ") | " << module->Type() << "\n"; + } + +// Print out a verse from the first module: + + cout << "\n" << manager.Modules.begin()->second->KeyText() << ":\n"; + cout << (const char *)(*manager.Modules.begin()->second); + cout << " (" << manager.Modules.begin()->second->Name() << ")\n"; + +// Print out the same verse from the second module (less confusing): + + modIterator = manager.Modules.begin(); // get first module + modIterator++; // increment to next module + + SWModule *mod = modIterator->second; + + cout << "\n" << mod->KeyText() << ":\n"; +// cout << (const char *)(*mod); // we could do this, the same as above + mod->Display(); // instead of casting mod to const char * to get its contents, we'll call the default display method that writes to stdout; + cout << " (" << mod->Name() << ")\n\n"; + +} |