mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-06 16:15:23 -04:00
Added the first version of the FeedReader plugin.
Added a new method to RsPlugInInterfaces to stop the plugins at shutdown of RetroShare. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5372 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
ebc8fa3212
commit
09b5d7a8c6
42 changed files with 7004 additions and 7 deletions
|
@ -134,6 +134,21 @@ void RsPluginManager::loadPlugins(const std::vector<std::string>& plugin_directo
|
|||
std::cerr << "Loaded a total of " << _plugins.size() << " plugins." << std::endl;
|
||||
}
|
||||
|
||||
void RsPluginManager::stopPlugins()
|
||||
{
|
||||
std::cerr << " Stopping plugins." << std::endl;
|
||||
|
||||
for (uint32_t i = 0; i < _plugins.size(); ++i)
|
||||
{
|
||||
if (_plugins[i].plugin != NULL)
|
||||
{
|
||||
_plugins[i].plugin->stop();
|
||||
// delete _plugins[i].plugin;
|
||||
// _plugins[i].plugin = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RsPluginManager::getPluginStatus(int i,uint32_t& status,std::string& file_name,std::string& hash,std::string& error_string) const
|
||||
{
|
||||
if((uint32_t)i >= _plugins.size())
|
||||
|
|
|
@ -78,6 +78,8 @@ class RsPluginManager: public RsPluginHandler, public p3Config
|
|||
//
|
||||
void loadPlugins(const std::vector<RsPlugin*>& explicit_plugin_entries) ;
|
||||
|
||||
void stopPlugins();
|
||||
|
||||
void registerCacheServices() ;
|
||||
void registerClientServices(p3ServiceServer *pqih) ;
|
||||
|
||||
|
|
|
@ -94,6 +94,9 @@ class RsPlugin
|
|||
virtual RsPQIService *rs_pqi_service() const { return NULL ; }
|
||||
virtual uint16_t rs_service_id() const { return 0 ; }
|
||||
|
||||
// Shutdown
|
||||
virtual void stop() {}
|
||||
|
||||
// Filename used for saving the specific plugin configuration. Both RsCacheService and RsPQIService
|
||||
// derive from p3Config, which means that the service provided by the plugin can load/save its own
|
||||
// config by deriving loadList() and saveList() from p3Config.
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "pqi/authssl.h"
|
||||
#include "pqi/authgpg.h"
|
||||
#include "retroshare/rsinit.h"
|
||||
#include "plugins/pluginmanager.h"
|
||||
#include "util/rsdebug.h"
|
||||
const int p3facemsgzone = 11453;
|
||||
|
||||
|
@ -182,6 +183,8 @@ void RsServer::rsGlobalShutDown()
|
|||
join();
|
||||
ftserver->StopThreads();
|
||||
|
||||
mPluginsManager->stopPlugins();
|
||||
|
||||
// stop the p3distrib threads
|
||||
mForums->join();
|
||||
mChannels->join();
|
||||
|
|
|
@ -62,6 +62,8 @@ RsServer::RsServer(RsIface &i, NotifyBase &callback)
|
|||
|
||||
pqih = NULL;
|
||||
|
||||
mPluginsManager = NULL;
|
||||
|
||||
/* services */
|
||||
ad = NULL;
|
||||
msgSrv = NULL;
|
||||
|
|
|
@ -49,6 +49,7 @@ class p3PeerMgrIMPL;
|
|||
class p3LinkMgrIMPL;
|
||||
class p3NetMgrIMPL;
|
||||
class p3HistoryMgr;
|
||||
class RsPluginManager;
|
||||
|
||||
/* The Main Interface Class - for controlling the server */
|
||||
|
||||
|
@ -161,6 +162,8 @@ class RsServer: public RsControl, public RsThread
|
|||
|
||||
pqipersongrp *pqih;
|
||||
|
||||
RsPluginManager *mPluginsManager;
|
||||
|
||||
//sslroot *sslr;
|
||||
|
||||
/* services */
|
||||
|
|
|
@ -2177,7 +2177,7 @@ int RsServer::StartupRetroShare()
|
|||
// possible entries include: /usr/lib/retroshare, ~/.retroshare/extensions/, etc.
|
||||
#endif
|
||||
|
||||
RsPluginManager *mPluginsManager = new RsPluginManager ;
|
||||
mPluginsManager = new RsPluginManager ;
|
||||
rsPlugins = mPluginsManager ;
|
||||
mConfigMgr->addConfiguration("plugins.cfg", mPluginsManager);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue