diff options
| author | Tobias Markmann <tm@ayena.de> | 2014-12-17 15:21:30 (GMT) | 
|---|---|---|
| committer | Swift Review <review@swift.im> | 2015-02-03 10:03:17 (GMT) | 
| commit | b5fc240f1cf4e340e04177a23cb8cf827b9ca16b (patch) | |
| tree | 13d701e160af328553551974e55fea876d21eed8 /Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp | |
| parent | d860805af76ec85e003bf3019407bbb7acd218c9 (diff) | |
| download | swift-b5fc240f1cf4e340e04177a23cb8cf827b9ca16b.zip swift-b5fc240f1cf4e340e04177a23cb8cf827b9ca16b.tar.bz2 | |
Update Jingle FT protocol to namespace verison urn:xmpp:jingle:apps:file-transfer:4.
Test-Information:
Adjusted unit tests and successfully build/run them on OS X 10.9.5.
Change-Id: I63789e3fb351999f719157b54fa9fcf95f40fb07
Diffstat (limited to 'Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp | 59 | 
1 files changed, 23 insertions, 36 deletions
| diff --git a/Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp b/Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp index b394115..fb1836f 100644 --- a/Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp +++ b/Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.cpp @@ -4,72 +4,59 @@   * See Documentation/Licenses/BSD-simplified.txt for more information.   */ -#include "JingleFileTransferDescriptionParser.h" +/* + * Copyright (c) 2014 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#include <Swiften/Parser/PayloadParsers/JingleFileTransferDescriptionParser.h> + +#include <boost/optional.hpp> +#include <boost/lexical_cast.hpp>  #include <Swiften/Parser/PayloadParserFactoryCollection.h>  #include <Swiften/Parser/PayloadParserFactory.h> -#include <Swiften/Base/Log.h> +#include <Swiften/Base/DateTime.h> +#include <Swiften/StringCodecs/Base64.h>  namespace Swift { -JingleFileTransferDescriptionParser::JingleFileTransferDescriptionParser(PayloadParserFactoryCollection* factories) :   factories(factories), level(0), -															currentElement(UnknownElement) { -	 +JingleFileTransferDescriptionParser::JingleFileTransferDescriptionParser(PayloadParserFactoryCollection* factories) :   factories(factories), level(0) {  }  void JingleFileTransferDescriptionParser::handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { -	if (level == 0) { -		 -	} -	  	if (level == 1) { -		if (element == "offer") { -			currentElement = OfferElement; -		} else if (element == "request") { -			currentElement = RequestElement; -		} else { -			currentElement = UnknownElement; -		} -	} - -	if (level == 2) {  		PayloadParserFactory* payloadParserFactory = factories->getPayloadParserFactory(element, ns, attributes);  		if (payloadParserFactory) {  			currentPayloadParser.reset(payloadParserFactory->createPayloadParser());  		}  	} -	if (level >= 2 && currentPayloadParser) { +	if (level >= 1 && currentPayloadParser) {  		currentPayloadParser->handleStartElement(element, ns, attributes);  	} -  	++level;  }  void JingleFileTransferDescriptionParser::handleEndElement(const std::string& element, const std::string& ns) {  	--level; -	if (currentPayloadParser) {  -		if (level >= 2) { -			currentPayloadParser->handleEndElement(element, ns); -		} +	if (level >= 1 && currentPayloadParser) { +		currentPayloadParser->handleEndElement(element, ns); +	} -		if (level == 2) { -			boost::shared_ptr<StreamInitiationFileInfo> info = boost::dynamic_pointer_cast<StreamInitiationFileInfo>(currentPayloadParser->getPayload()); -			if (info) { -				if (currentElement == OfferElement) { -					getPayloadInternal()->addOffer(*info); -				} else if (currentElement == RequestElement) { -					getPayloadInternal()->addRequest(*info); -				} -			} +	if (level == 0) { +		boost::shared_ptr<JingleFileTransferFileInfo> info = boost::dynamic_pointer_cast<JingleFileTransferFileInfo>(currentPayloadParser->getPayload()); +		if (info) { +			getPayloadInternal()->setFileInfo(*info);  		}  	}  }  void JingleFileTransferDescriptionParser::handleCharacterData(const std::string& data) { -	if (level >= 2 && currentPayloadParser) { +	if (level >= 1 && currentPayloadParser) {  		currentPayloadParser->handleCharacterData(data);  	}  } -		 +  } | 
 Swift
 Swift