Moved RosterResponder out of UserManager

This commit is contained in:
HanzZ 2011-06-05 14:01:26 +02:00
parent b63c1d0aad
commit 7a0e5e31e6
6 changed files with 10 additions and 12 deletions

View file

@ -38,6 +38,7 @@ class LocalBuddy;
class Config;
class NetworkConversation;
class VCardResponder;
class RosterResponder;
class NetworkPluginServer {
public:
@ -83,6 +84,7 @@ class NetworkPluginServer {
UserManager *m_userManager;
VCardResponder *m_vcardResponder;
RosterResponder *m_rosterResponder;
Config *m_config;
boost::shared_ptr<Swift::ConnectionServer> m_server;
std::list<Client *> m_clients;

View file

@ -27,18 +27,16 @@
namespace Transport {
class StorageBackend;
class UserManager;
class RosterResponder : public Swift::Responder<Swift::RosterPayload> {
public:
RosterResponder(Swift::IQRouter *router, StorageBackend *storageBackend, UserManager *userManager);
RosterResponder(Swift::IQRouter *router, UserManager *userManager);
~RosterResponder();
private:
virtual bool handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr<Swift::RosterPayload> payload);
virtual bool handleSetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr<Swift::RosterPayload> payload);
StorageBackend *m_storageBackend;
UserManager *m_userManager;
};

View file

@ -83,7 +83,6 @@ class UserManager {
Component *m_component;
StorageBackend *m_storageBackend;
StorageResponder *m_storageResponder;
RosterResponder *m_rosterResponder;
friend class RosterResponder;
};

View file

@ -29,6 +29,7 @@
#include "transport/config.h"
#include "transport/conversation.h"
#include "transport/vcardresponder.h"
#include "transport/rosterresponder.h"
#include "Swiften/Swiften.h"
#include "Swiften/Server/ServerStanzaChannel.h"
#include "Swiften/Elements/StreamError.h"
@ -126,6 +127,9 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U
m_vcardResponder->onVCardRequired.connect(boost::bind(&NetworkPluginServer::handleVCardRequired, this, _1, _2, _3));
m_vcardResponder->start();
m_rosterResponder = new RosterResponder(component->getIQRouter(), userManager);
m_rosterResponder->start();
m_server = component->getFactories()->getConnectionFactory()->createConnectionServer(10000);
m_server->onNewConnection.connect(boost::bind(&NetworkPluginServer::handleNewClientConnection, this, _1));
m_server->start();
@ -138,6 +142,7 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U
NetworkPluginServer::~NetworkPluginServer() {
m_pingTimer->stop();
delete m_vcardResponder;
delete m_rosterResponder;
}
void NetworkPluginServer::handleNewClientConnection(boost::shared_ptr<Swift::Connection> c) {

View file

@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
#include "rosterresponder.h"
#include "transport/rosterresponder.h"
#include <iostream>
#include <boost/bind.hpp>
@ -33,8 +33,7 @@ using namespace boost;
namespace Transport {
RosterResponder::RosterResponder(Swift::IQRouter *router, StorageBackend *storageBackend, UserManager *userManager) : Swift::Responder<RosterPayload>(router) {
m_storageBackend = storageBackend;
RosterResponder::RosterResponder(Swift::IQRouter *router, UserManager *userManager) : Swift::Responder<RosterPayload>(router) {
m_userManager = userManager;
}

View file

@ -25,7 +25,6 @@
#include "transport/conversationmanager.h"
#include "transport/rostermanager.h"
#include "storageresponder.h"
#include "rosterresponder.h"
namespace Transport {
@ -38,9 +37,6 @@ UserManager::UserManager(Component *component, StorageBackend *storageBackend) {
m_storageResponder = new StorageResponder(component->getIQRouter(), m_storageBackend, this);
m_storageResponder->start();
m_rosterResponder = new RosterResponder(component->getIQRouter(), m_storageBackend, this);
m_rosterResponder->start();
component->onUserPresenceReceived.connect(bind(&UserManager::handlePresence, this, _1));
m_component->getStanzaChannel()->onMessageReceived.connect(bind(&UserManager::handleMessageReceived, this, _1));
m_component->getStanzaChannel()->onPresenceReceived.connect(bind(&UserManager::handleGeneralPresenceReceived, this, _1));
@ -50,7 +46,6 @@ UserManager::UserManager(Component *component, StorageBackend *storageBackend) {
UserManager::~UserManager(){
m_storageResponder->stop();
delete m_storageResponder;
delete m_rosterResponder;
}
void UserManager::addUser(User *user) {