core/systems/PluginSys.h
changeset 282 cd7c334f7ae0
parent 262 de0e374ffa47
child 290 da8de49409e8
     1.1 --- a/core/systems/PluginSys.h	Thu Jan 11 01:11:24 2007 +0000
     1.2 +++ b/core/systems/PluginSys.h	Thu Jan 11 01:13:34 2007 +0000
     1.3 @@ -129,7 +129,7 @@
     1.4  	/**
     1.5  	 * Calls the OnPluginLoad function, and sets any failed states if necessary.
     1.6  	 * NOTE: Valid pre-states are: Plugin_Created
     1.7 -	 * If validated, plugin state is changed to Plugin_Loaded
     1.8 +	 * NOTE: If validated, plugin state is changed to Plugin_Loaded
     1.9  	 *
    1.10  	 * If the error buffer is NULL, the error message is cached locally.
    1.11  	 */
    1.12 @@ -138,11 +138,21 @@
    1.13  	/**
    1.14  	 * Calls the OnPluginInit function.
    1.15  	 * NOTE: Valid pre-states are: Plugin_Created
    1.16 -	 * NOTE: Pre-state will be changed to Plugin_Running
    1.17 +	 * NOTE: Post-state will be Plugin_Running
    1.18  	 */
    1.19  	void Call_OnPluginInit();
    1.20 +
    1.21 +	/**
    1.22 +	 * Calls the OnPluginUnload function.
    1.23 +	 */
    1.24 +	void Call_OnPluginUnload();
    1.25  public:
    1.26  	time_t HasUpdatedFile();
    1.27 +
    1.28 +	/** 
    1.29 +	 * Returns true if the plugin was running, but is now invalid.
    1.30 +	 */
    1.31 +	bool WasRunning();
    1.32  protected:
    1.33  	void UpdateInfo();
    1.34  private:
    1.35 @@ -160,6 +170,7 @@
    1.36  	time_t m_LastAccess;
    1.37  	IdentityToken_t *m_ident;
    1.38  	Handle_t m_handle;
    1.39 +	bool m_WasRunning;
    1.40  };
    1.41  
    1.42  class CPluginManager : 
    1.43 @@ -181,7 +192,7 @@
    1.44  		virtual bool MorePlugins();
    1.45  		virtual IPlugin *GetPlugin();
    1.46  		virtual void NextPlugin();
    1.47 -		virtual void Release();
    1.48 +		void Release();
    1.49  	public:
    1.50  		void Reset();
    1.51  	private:
    1.52 @@ -190,22 +201,22 @@
    1.53  	};
    1.54  	friend class CPluginManager::CPluginIterator;
    1.55  public: //IPluginManager
    1.56 -	virtual IPlugin *LoadPlugin(const char *path, 
    1.57 +	IPlugin *LoadPlugin(const char *path, 
    1.58  								bool debug,
    1.59  								PluginType type,
    1.60  								char error[],
    1.61  								size_t err_max);
    1.62 -	virtual bool UnloadPlugin(IPlugin *plugin);
    1.63 -	virtual IPlugin *FindPluginByContext(const sp_context_t *ctx);
    1.64 -	virtual unsigned int GetPluginCount();
    1.65 -	virtual IPluginIterator *GetPluginIterator();
    1.66 -	virtual void AddPluginsListener(IPluginsListener *listener);
    1.67 -	virtual void RemovePluginsListener(IPluginsListener *listener);
    1.68 +	bool UnloadPlugin(IPlugin *plugin);
    1.69 +	IPlugin *FindPluginByContext(const sp_context_t *ctx);
    1.70 +	unsigned int GetPluginCount();
    1.71 +	IPluginIterator *GetPluginIterator();
    1.72 +	void AddPluginsListener(IPluginsListener *listener);
    1.73 +	void RemovePluginsListener(IPluginsListener *listener);
    1.74  public: //SMGlobalClass
    1.75 -	virtual void OnSourceModAllInitialized();
    1.76 -	virtual void OnSourceModShutdown();
    1.77 +	void OnSourceModAllInitialized();
    1.78 +	void OnSourceModShutdown();
    1.79  public: //IHandleTypeDispatch
    1.80 -	virtual void OnHandleDestroy(HandleType_t type, void *object);
    1.81 +	void OnHandleDestroy(HandleType_t type, void *object);
    1.82  public:
    1.83  	/**
    1.84  	 * Loads all plugins not yet loaded