added second pass function

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40218
This commit is contained in:
David Anderson
2006-12-15 13:53:58 +00:00
parent 8792f0b4f0
commit a9087b13dd
3 changed files with 25 additions and 7 deletions
+18 -3
View File
@@ -444,7 +444,7 @@ bool CPlugin::SetPauseState(bool paused)
* PLUGIN ITERATOR *
*******************/
CPluginManager::CPluginIterator::CPluginIterator(List<IPlugin *> *_mylist)
CPluginManager::CPluginIterator::CPluginIterator(List<CPlugin *> *_mylist)
{
mylist = _mylist;
}
@@ -495,7 +495,7 @@ CPluginManager::~CPluginManager()
}
void CPluginManager::LoadAll_FirstPass( const char *config, const char *basedir )
void CPluginManager::LoadAll_FirstPass(const char *config, const char *basedir)
{
/* First read in the database of plugin settings */
SMCParseError err;
@@ -730,6 +730,21 @@ void CPluginManager::AddPlugin(CPlugin *pPlugin)
}
}
void CPluginManager::LoadAll_SecondPass()
{
List<CPlugin *>::iterator iter;
CPlugin *pPlugin;
for (iter=m_plugins.begin(); iter!=m_plugins.end(); iter++)
{
pPlugin = (*iter);
if (pPlugin->GetStatus() == Plugin_Loaded)
{
RunSecondPass(pPlugin);
}
}
}
void CPluginManager::RunSecondPass(CPlugin *pPlugin)
{
/* Tell this plugin to finish initializing itself */
@@ -776,7 +791,7 @@ bool CPluginManager::UnloadPlugin(IPlugin *plugin)
pListener->OnPluginDestroyed(pPlugin);
}
m_plugins.remove(plugin);
m_plugins.remove(pPlugin);
sm_trie_delete(m_LoadLookup, pPlugin->m_filename);
delete pPlugin;
+4 -4
View File
@@ -161,7 +161,7 @@ public:
class CPluginIterator : public IPluginIterator
{
public:
CPluginIterator(List<IPlugin *> *mylist);
CPluginIterator(List<CPlugin *> *mylist);
virtual ~CPluginIterator();
virtual bool MorePlugins();
virtual IPlugin *GetPlugin();
@@ -170,8 +170,8 @@ public:
public:
void Reset();
private:
List<IPlugin *> *mylist;
List<IPlugin *>::iterator current;
List<CPlugin *> *mylist;
List<CPlugin *>::iterator current;
};
friend class CPluginManager::CPluginIterator;
public: //IPluginManager
@@ -252,7 +252,7 @@ protected:
void ReleaseFunctionToPool(CFunction *func);
private:
List<IPluginsListener *> m_listeners;
List<IPlugin *> m_plugins;
List<CPlugin *> m_plugins;
List<sp_nativeinfo_t *> m_natives;
CStack<CPluginManager::CPluginIterator *> m_iters;
CStack<CFunction *> m_funcpool;