46 lines
1019 B
C++
46 lines
1019 B
C++
#include "PluginServer.h"
|
|
#include <memory>
|
|
|
|
namespace LifeGraphics
|
|
{
|
|
PluginServer::PluginServer()
|
|
{
|
|
}
|
|
|
|
PluginServer::~PluginServer()
|
|
{
|
|
for(RendererVector::reverse_iterator it = g_rendererCollection.rbegin();
|
|
it != g_rendererCollection.rend(); ++it)
|
|
{
|
|
delete *it;
|
|
}
|
|
|
|
for(PluginMap::reverse_iterator it = g_loadedPlugins.rbegin();
|
|
it != g_loadedPlugins.rend(); ++it)
|
|
{
|
|
delete it->second;
|
|
}
|
|
}
|
|
|
|
HRESULT PluginServer::LoadPlugin(const std::string& name)
|
|
{
|
|
if(g_loadedPlugins.find(name) == g_loadedPlugins.end())
|
|
{
|
|
Plugin* p = new Plugin(name);
|
|
p->registerPlugin(*this);
|
|
g_loadedPlugins.insert(PluginMap::value_type(name, p));
|
|
|
|
printf("%s\n", "Plugin successfully loaded!");
|
|
|
|
//std::string s = p.getPluginName();
|
|
printf(g_rendererCollection.at(0)->GetRendererName().c_str());
|
|
}
|
|
return S_OK;
|
|
}
|
|
|
|
void PluginServer::RegisterRendererPlugin(IRenderer* renderer)
|
|
{
|
|
printf("%s\n", renderer->GetRendererName().c_str());
|
|
g_rendererCollection.push_back(renderer);
|
|
}
|
|
} |