mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-02-07 01:54:19 +01:00
IPluginManager's API is now a little more sane (people complained about byref pointers)
--HG-- extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%40483
This commit is contained in:
parent
b94553edb0
commit
540267578a
@ -122,13 +122,13 @@ namespace SourceMM
|
|||||||
/**
|
/**
|
||||||
* @brief Returns information about a plugin
|
* @brief Returns information about a plugin
|
||||||
*
|
*
|
||||||
* @param id Id of plugin
|
* @param id Id of plugin
|
||||||
* @param file Pointer to file string by reference
|
* @param file Pointer to store filename pointer, or NULL to ignore.
|
||||||
* @param status By reference status of plugin
|
* @param status Pointer to store status, or NULL to ignore.
|
||||||
* @param source By reference source of plugin
|
* @param source Pointer to store source, or NULL to ignore.
|
||||||
* @return True on success, false if not found
|
* @return True on success, false if not found
|
||||||
*/
|
*/
|
||||||
virtual bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) =0;
|
virtual bool Query(PluginId id, const char **file, Pl_Status *status, PluginId *source) =0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Checks another plugin's QueryRunning() status.
|
* @brief Checks another plugin's QueryRunning() status.
|
||||||
@ -144,10 +144,10 @@ namespace SourceMM
|
|||||||
* @brief Returns the handle of a plugin (OS dependent meaning)
|
* @brief Returns the handle of a plugin (OS dependent meaning)
|
||||||
*
|
*
|
||||||
* @param id Id of plugin
|
* @param id Id of plugin
|
||||||
* @param handle By reference handle of plugin, if any
|
* @param handle Pointer to store handle pointer, or NULL to ignore.
|
||||||
* @return True if plugin id is valid, false otherwise
|
* @return True if plugin id is valid, false otherwise
|
||||||
*/
|
*/
|
||||||
virtual bool QueryHandle(PluginId id, void *&handle) =0;
|
virtual bool QueryHandle(PluginId id, void **handle) =0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -623,7 +623,7 @@ bool CPluginManager::UnloadAll()
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CPluginManager::Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source)
|
bool CPluginManager::Query(PluginId id, const char **file, Pl_Status *status, PluginId *source)
|
||||||
{
|
{
|
||||||
CPlugin *pl = FindById(id);
|
CPlugin *pl = FindById(id);
|
||||||
|
|
||||||
@ -632,9 +632,20 @@ bool CPluginManager::Query(PluginId id, const char *&file, Pl_Status &status, Pl
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
file = pl->m_File.c_str();
|
if (file != NULL)
|
||||||
status = pl->m_Status;
|
{
|
||||||
source = pl->m_Source;
|
*file = pl->m_File.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status != NULL)
|
||||||
|
{
|
||||||
|
*status = pl->m_Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source != NULL)
|
||||||
|
{
|
||||||
|
*source = pl->m_Source;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -655,7 +666,7 @@ bool CPluginManager::QueryRunning(PluginId id, char *error, size_t maxlength)
|
|||||||
return pl->m_API->QueryRunning(error, maxlength);
|
return pl->m_API->QueryRunning(error, maxlength);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CPluginManager::QueryHandle(PluginId id, void *&handle)
|
bool CPluginManager::QueryHandle(PluginId id, void **handle)
|
||||||
{
|
{
|
||||||
CPlugin *pl = FindById(id);
|
CPlugin *pl = FindById(id);
|
||||||
|
|
||||||
@ -664,7 +675,10 @@ bool CPluginManager::QueryHandle(PluginId id, void *&handle)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
handle = static_cast<void *>(pl->m_Lib);
|
if (handle)
|
||||||
|
{
|
||||||
|
*handle = static_cast<void *>(pl->m_Lib);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -104,9 +104,9 @@ public:
|
|||||||
bool UnloadAll();
|
bool UnloadAll();
|
||||||
void SetAlias(const char *alias, const char *value);
|
void SetAlias(const char *alias, const char *value);
|
||||||
public:
|
public:
|
||||||
bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source);
|
bool Query(PluginId id, const char **file, Pl_Status *status, PluginId *source);
|
||||||
bool QueryRunning(PluginId id, char *error, size_t maxlength);
|
bool QueryRunning(PluginId id, char *error, size_t maxlength);
|
||||||
bool QueryHandle(PluginId id, void *&handle);
|
bool QueryHandle(PluginId id, void **handle);
|
||||||
|
|
||||||
void AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar);
|
void AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar);
|
||||||
void AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd);
|
void AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user