ultimatepp/bazaar/Functions4U/StaticPlugin.cpp
koldo d4330f4923 Functions4U: Removed some warnings
git-svn-id: svn://ultimatepp.org/upp/trunk@13615 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2019-09-23 22:13:14 +00:00

65 lines
1.4 KiB
C++

#include <Core/Core.h>
#include "StaticPlugin.h"
using namespace Upp;
Array<StaticPlugin::PluginData>& StaticPlugin::Plugins() {
static Array<PluginData> x;
return x;
}
StaticPlugin::StaticPlugin() {
data = 0;
}
StaticPlugin::~StaticPlugin() {
End();
}
void StaticPlugin::End() {
if (!data)
return;
for (int i = 0; i < Plugins().GetCount(); ++i) {
if (Plugins()[i].name == name && Plugins()[i].type == type && Plugins()[i].instance == instance) {
Plugins()[i].Delete(data);
data = 0;
return;
}
}
for (int i = 0; i < Plugins().GetCount(); ++i) {
if (Plugins()[i].name == "" && Plugins()[i].type == type && Plugins()[i].instance == instance) {
Plugins()[i].Delete(data);
data = 0;
return;
}
}
}
bool StaticPlugin::_Init(const char *_name, const char *_type) {
type = _type;
End();
for (int i = 0; i < Plugins().GetCount(); ++i) {
if (Plugins()[i].name == _name && Plugins()[i].type == type) {
data = Plugins()[i].New();
name = _name;
instance = this;
Plugins()[i].instance = instance;
return true;
}
}
for (int i = 0; i < Plugins().GetCount(); ++i) {
if (Plugins()[i].name == "" && Plugins()[i].type == type) {
if (data)
Plugins()[i].Delete(data);
data = Plugins()[i].New();
name = "";
instance = this;
Plugins()[i].instance = instance;
return false;
}
}
return false;
}