Listing 8
// main.cxx
#include <iostream>
#include <typeinfo>
#include "Plugin.h"
#include "TextPlugin.h"
using namespace std;
int main(int argc, char* argv[])
{
try
{
Plugin& plugin = PluginManager::instance().findPlugin("language");
TextPlugin& text = dynamic_cast<TextPlugin&>(plugin);
cout << "Name: " << text.pluginName() << endl
<< "Type: " << text.pluginType() << endl
<< "String: " << text.getSayHelloString() << endl;
}
catch(const SharedLibraryException& error)
{
cerr << error.getError() << endl;
return 101;
}
catch(const bad_cast& ex)
{
cout << "Cast to TextPlugin Failed" << endl;
return 102;
}
return 0;
}