/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "JingleIBBTransportMethodPayloadParser.h" #include "JingleFileTransferDescriptionParser.h" using namespace boost; namespace Swift { FullPayloadParserFactoryCollection::FullPayloadParserFactoryCollection() { factories_.push_back(shared_ptr(new GenericPayloadParserFactory("", "http://jabber.org/protocol/ibb"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("show"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("status"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("replace", "http://swift.im/protocol/replace"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "jabber:iq:last"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("body"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("subject"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("priority"))); factories_.push_back(shared_ptr(new ErrorParserFactory(this))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("delay", "urn:xmpp:delay"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "jabber:iq:version"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("storage", "storage:bookmarks"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("x", "http://jabber.org/protocol/rosterx"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "jabber:iq:roster"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "http://jabber.org/protocol/disco#info"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "http://jabber.org/protocol/disco#items"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("c", "http://jabber.org/protocol/caps"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("bind", "urn:ietf:params:xml:ns:xmpp-bind"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("session", "urn:ietf:params:xml:ns:xmpp-session"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory >("block", "urn:xmpp:blocking"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory >("blocklist", "urn:xmpp:blocking"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory >("unblock", "urn:xmpp:blocking"))); factories_.push_back(shared_ptr(new SecurityLabelParserFactory())); factories_.push_back(shared_ptr(new SecurityLabelsCatalogParserFactory())); factories_.push_back(shared_ptr(new FormParserFactory())); factories_.push_back(shared_ptr(new CommandParserFactory())); factories_.push_back(shared_ptr(new InBandRegistrationPayloadParserFactory())); factories_.push_back(shared_ptr(new SearchPayloadParserFactory())); factories_.push_back(shared_ptr(new StreamInitiationParserFactory())); factories_.push_back(shared_ptr(new BytestreamsParserFactory())); factories_.push_back(shared_ptr(new VCardUpdateParserFactory())); factories_.push_back(shared_ptr(new VCardParserFactory())); factories_.push_back(shared_ptr(new PrivateStorageParserFactory(this))); factories_.push_back(shared_ptr(new ChatStateParserFactory())); factories_.push_back(shared_ptr(new MUCUserPayloadParserFactory())); factories_.push_back(shared_ptr(new MUCOwnerPayloadParserFactory(this))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "http://jabber.org/protocol/muc#admin"))); factories_.push_back(shared_ptr(new NicknameParserFactory())); factories_.push_back(shared_ptr(new JingleParserFactory(this))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("reason", "urn:xmpp:jingle:1"))); factories_.push_back(shared_ptr(new JingleContentPayloadParserFactory(this))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("transport", "urn:xmpp:jingle:transports:ibb:1"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("transport", "urn:xmpp:jingle:transports:s5b:1"))); factories_.push_back(shared_ptr(new JingleFileTransferDescriptionParserFactory(this))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("file", "http://jabber.org/protocol/si/profile/file-transfer"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("received", "urn:xmpp:jingle:apps:file-transfer:3"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("checksum"))); factories_.push_back(shared_ptr(new GenericPayloadParserFactory("query", "http://jabber.org/protocol/bytestreams"))); foreach(shared_ptr factory, factories_) { addFactory(factory.get()); } defaultFactory_ = new RawXMLPayloadParserFactory(); setDefaultFactory(defaultFactory_); } FullPayloadParserFactoryCollection::~FullPayloadParserFactoryCollection() { setDefaultFactory(NULL); delete defaultFactory_; foreach(shared_ptr factory, factories_) { removeFactory(factory.get()); } } }