diff options
Diffstat (limited to 'Limber/main.cpp')
| -rw-r--r-- | Limber/main.cpp | 130 | 
1 files changed, 65 insertions, 65 deletions
| diff --git a/Limber/main.cpp b/Limber/main.cpp index e4bac77..52f9347 100644 --- a/Limber/main.cpp +++ b/Limber/main.cpp @@ -31,76 +31,76 @@  using namespace Swift;  class Server { -	public: -		Server(UserRegistry* userRegistry, EventLoop* eventLoop) : userRegistry_(userRegistry) { -			serverFromClientConnectionServer_ = BoostConnectionServer::create(5222, boostIOServiceThread_.getIOService(), eventLoop); -			serverFromClientConnectionServer_->onNewConnection.connect(boost::bind(&Server::handleNewConnection, this, _1)); -			serverFromClientConnectionServer_->start(); -		} +    public: +        Server(UserRegistry* userRegistry, EventLoop* eventLoop) : userRegistry_(userRegistry) { +            serverFromClientConnectionServer_ = BoostConnectionServer::create(5222, boostIOServiceThread_.getIOService(), eventLoop); +            serverFromClientConnectionServer_->onNewConnection.connect(boost::bind(&Server::handleNewConnection, this, _1)); +            serverFromClientConnectionServer_->start(); +        } -	private: -		void handleNewConnection(boost::shared_ptr<Connection> c) { -			boost::shared_ptr<ServerFromClientSession> session(new ServerFromClientSession(idGenerator_.generateID(), c, &payloadParserFactories_, &payloadSerializers_, &xmlParserFactory, userRegistry_)); -			serverFromClientSessions_.push_back(session); -			session->onElementReceived.connect(boost::bind(&Server::handleElementReceived, this, _1, session)); -			session->onSessionFinished.connect(boost::bind(&Server::handleSessionFinished, this, session)); -			session->startSession(); -		} +    private: +        void handleNewConnection(boost::shared_ptr<Connection> c) { +            boost::shared_ptr<ServerFromClientSession> session(new ServerFromClientSession(idGenerator_.generateID(), c, &payloadParserFactories_, &payloadSerializers_, &xmlParserFactory, userRegistry_)); +            serverFromClientSessions_.push_back(session); +            session->onElementReceived.connect(boost::bind(&Server::handleElementReceived, this, _1, session)); +            session->onSessionFinished.connect(boost::bind(&Server::handleSessionFinished, this, session)); +            session->startSession(); +        } -		void handleSessionFinished(boost::shared_ptr<ServerFromClientSession> session) { -			serverFromClientSessions_.erase(std::remove(serverFromClientSessions_.begin(), serverFromClientSessions_.end(), session), serverFromClientSessions_.end()); -		} +        void handleSessionFinished(boost::shared_ptr<ServerFromClientSession> session) { +            serverFromClientSessions_.erase(std::remove(serverFromClientSessions_.begin(), serverFromClientSessions_.end(), session), serverFromClientSessions_.end()); +        } -		void handleElementReceived(boost::shared_ptr<ToplevelElement> element, boost::shared_ptr<ServerFromClientSession> session) { -			boost::shared_ptr<Stanza> stanza(boost::dynamic_pointer_cast<Stanza>(element)); -			if (!stanza) { -				return; -			} -			stanza->setFrom(session->getRemoteJID()); -			if (!stanza->getTo().isValid()) { -				stanza->setTo(JID(session->getLocalJID())); -			} -			if (!stanza->getTo().isValid() || stanza->getTo() == session->getLocalJID() || stanza->getTo() == session->getRemoteJID().toBare()) { -				if (boost::shared_ptr<IQ> iq = boost::dynamic_pointer_cast<IQ>(stanza)) { -					if (iq->getPayload<RosterPayload>()) { -						session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), boost::make_shared<RosterPayload>())); -					} -					if (iq->getPayload<VCard>()) { -						if (iq->getType() == IQ::Get) { -							boost::shared_ptr<VCard> vcard(new VCard()); -							vcard->setNickname(iq->getFrom().getNode()); -							session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), vcard)); -						} -						else { -							session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), ErrorPayload::Forbidden, ErrorPayload::Cancel)); -						} -					} -					else { -						session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), ErrorPayload::FeatureNotImplemented, ErrorPayload::Cancel)); -					} -				} -			} -		} +        void handleElementReceived(boost::shared_ptr<ToplevelElement> element, boost::shared_ptr<ServerFromClientSession> session) { +            boost::shared_ptr<Stanza> stanza(boost::dynamic_pointer_cast<Stanza>(element)); +            if (!stanza) { +                return; +            } +            stanza->setFrom(session->getRemoteJID()); +            if (!stanza->getTo().isValid()) { +                stanza->setTo(JID(session->getLocalJID())); +            } +            if (!stanza->getTo().isValid() || stanza->getTo() == session->getLocalJID() || stanza->getTo() == session->getRemoteJID().toBare()) { +                if (boost::shared_ptr<IQ> iq = boost::dynamic_pointer_cast<IQ>(stanza)) { +                    if (iq->getPayload<RosterPayload>()) { +                        session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), boost::make_shared<RosterPayload>())); +                    } +                    if (iq->getPayload<VCard>()) { +                        if (iq->getType() == IQ::Get) { +                            boost::shared_ptr<VCard> vcard(new VCard()); +                            vcard->setNickname(iq->getFrom().getNode()); +                            session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), vcard)); +                        } +                        else { +                            session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), ErrorPayload::Forbidden, ErrorPayload::Cancel)); +                        } +                    } +                    else { +                        session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), ErrorPayload::FeatureNotImplemented, ErrorPayload::Cancel)); +                    } +                } +            } +        } -	private: -		IDGenerator idGenerator_; -		PlatformXMLParserFactory xmlParserFactory; -		UserRegistry* userRegistry_; -		BoostIOServiceThread boostIOServiceThread_; -		boost::shared_ptr<BoostConnectionServer> serverFromClientConnectionServer_; -		std::vector< boost::shared_ptr<ServerFromClientSession> > serverFromClientSessions_; -		FullPayloadParserFactoryCollection payloadParserFactories_; -		FullPayloadSerializerCollection payloadSerializers_; +    private: +        IDGenerator idGenerator_; +        PlatformXMLParserFactory xmlParserFactory; +        UserRegistry* userRegistry_; +        BoostIOServiceThread boostIOServiceThread_; +        boost::shared_ptr<BoostConnectionServer> serverFromClientConnectionServer_; +        std::vector< boost::shared_ptr<ServerFromClientSession> > serverFromClientSessions_; +        FullPayloadParserFactoryCollection payloadParserFactories_; +        FullPayloadSerializerCollection payloadSerializers_;  };  int main() { -	SimpleEventLoop eventLoop; -	SimpleUserRegistry userRegistry; -	userRegistry.addUser(JID("remko@localhost"), "remko"); -	userRegistry.addUser(JID("kevin@localhost"), "kevin"); -	userRegistry.addUser(JID("remko@limber.swift.im"), "remko"); -	userRegistry.addUser(JID("kevin@limber.swift.im"), "kevin"); -	Server server(&userRegistry, &eventLoop); -	eventLoop.run(); -	return 0; +    SimpleEventLoop eventLoop; +    SimpleUserRegistry userRegistry; +    userRegistry.addUser(JID("remko@localhost"), "remko"); +    userRegistry.addUser(JID("kevin@localhost"), "kevin"); +    userRegistry.addUser(JID("remko@limber.swift.im"), "remko"); +    userRegistry.addUser(JID("kevin@limber.swift.im"), "kevin"); +    Server server(&userRegistry, &eventLoop); +    eventLoop.run(); +    return 0;  } | 
 Swift
 Swift