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:
thunder2 2012-08-02 13:17:53 +00:00
parent ebc8fa3212
commit 09b5d7a8c6
42 changed files with 7004 additions and 7 deletions

View file

@ -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())

View file

@ -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) ;

View file

@ -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.

View file

@ -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();

View file

@ -62,6 +62,8 @@ RsServer::RsServer(RsIface &i, NotifyBase &callback)
pqih = NULL;
mPluginsManager = NULL;
/* services */
ad = NULL;
msgSrv = NULL;

View file

@ -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 */

View file

@ -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);