summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-11-23 07:09:39 (GMT)
committerTobias Markmann <tm@ayena.de>2016-11-23 11:30:02 (GMT)
commite405ff3561be3d3c0bd79d7d5173923a8828cf02 (patch)
tree9118ef838ebfaec1df90ec24761944b5d833774c /Swiften/Serializer
parent8a71b91be885652f37c5aab5e1ecf25af4599fbc (diff)
downloadswift-e405ff3561be3d3c0bd79d7d5173923a8828cf02.zip
swift-e405ff3561be3d3c0bd79d7d5173923a8828cf02.tar.bz2
Migrate remaining Swiften/Base/foreach.h use to range-based for loop
Test-Information: Build on macOS 10.12.1 and all tests pass. Change-Id: Iedaa3fa7e7672c77909fd0568bf30e9393cb87e0
Diffstat (limited to 'Swiften/Serializer')
-rw-r--r--Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.cpp7
-rw-r--r--Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/FormSerializer.cpp39
-rw-r--r--Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/IBBSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.cpp7
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.cpp4
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.cpp4
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/StorageSerializer.cpp5
-rw-r--r--Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp1
-rw-r--r--Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.cpp3
-rw-r--r--Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp23
-rw-r--r--Swiften/Serializer/StanzaSerializer.cpp3
-rw-r--r--Swiften/Serializer/StreamFeaturesSerializer.cpp5
-rw-r--r--Swiften/Serializer/XML/XMLElement.cpp6
-rw-r--r--Swiften/Serializer/XMPPSerializer.cpp1
46 files changed, 77 insertions, 138 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.cpp
index 93eab75..78bb0eb 100644
--- a/Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.cpp
@@ -1,41 +1,40 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/XML/XMLElement.h>
namespace Swift {
BytestreamsSerializer::BytestreamsSerializer() {
}
std::string BytestreamsSerializer::serializePayload(std::shared_ptr<Bytestreams> bytestreams) const {
XMLElement queryElement("query", "http://jabber.org/protocol/bytestreams");
queryElement.setAttribute("sid", bytestreams->getStreamID());
- foreach(const Bytestreams::StreamHost& streamHost, bytestreams->getStreamHosts()) {
+ for (const auto& streamHost : bytestreams->getStreamHosts()) {
std::shared_ptr<XMLElement> streamHostElement(new XMLElement("streamhost"));
streamHostElement->setAttribute("host", streamHost.host);
streamHostElement->setAttribute("jid", streamHost.jid.toString());
streamHostElement->setAttribute("port", boost::lexical_cast<std::string>(streamHost.port));
queryElement.addNode(streamHostElement);
}
if (bytestreams->getUsedStreamHost()) {
std::shared_ptr<XMLElement> streamHostElement(new XMLElement("streamhost-used"));
streamHostElement->setAttribute("jid", *bytestreams->getUsedStreamHost());
queryElement.addNode(streamHostElement);
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp b/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
index e1dd6ed..25a70f6 100644
--- a/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
@@ -1,90 +1,89 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/CommandSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
CommandSerializer::CommandSerializer() {
}
std::string CommandSerializer::serializePayload(std::shared_ptr<Command> command) const {
XMLElement commandElement("command", "http://jabber.org/protocol/commands");
commandElement.setAttribute("node", command->getNode());
if (!command->getSessionID().empty()) {
commandElement.setAttribute("sessionid", command->getSessionID());
}
std::string action = actionToString(command->getAction());
if (!action.empty()) {
commandElement.setAttribute("action", action);
}
std::string status;
switch (command->getStatus()) {
case Command::Executing: status = "executing";break;
case Command::Completed: status = "completed";break;
case Command::Canceled: status = "canceled";break;
case Command::NoStatus: break;
}
if (!status.empty()) {
commandElement.setAttribute("status", status);
}
if (command->getAvailableActions().size() > 0) {
std::string actions = "<actions";
std::string executeAction = actionToString(command->getExecuteAction());
if (!executeAction.empty()) {
actions += " execute='" + executeAction + "'";
}
actions += ">";
- foreach (Command::Action action, command->getAvailableActions()) {
+ for (const auto& action : command->getAvailableActions()) {
actions += "<" + actionToString(action) + "/>";
}
actions += "</actions>";
commandElement.addNode(std::make_shared<XMLRawTextNode>(actions));
}
- foreach (Command::Note note, command->getNotes()) {
+ for (const auto& note : command->getNotes()) {
std::shared_ptr<XMLElement> noteElement(new XMLElement("note"));
std::string type;
switch (note.type) {
case Command::Note::Info: type = "info"; break;
case Command::Note::Warn: type = "warn"; break;
case Command::Note::Error: type = "error"; break;
}
if (!type.empty()) {
noteElement->setAttribute("type", type);
}
noteElement->addNode(std::make_shared<XMLTextNode>(note.note));
commandElement.addNode(noteElement);
}
Form::ref form = command->getForm();
if (form) {
commandElement.addNode(std::make_shared<XMLRawTextNode>(FormSerializer().serialize(form)));
}
return commandElement.serialize();
}
std::string CommandSerializer::actionToString(Command::Action action) const {
std::string string;
switch (action) {
case Command::Cancel: string = "cancel"; break;
case Command::Execute: string = "execute"; break;
case Command::Complete: string = "complete"; break;
case Command::Prev: string = "prev"; break;
case Command::Next: string = "next"; break;
case Command::NoAction: break;
diff --git a/Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.cpp b/Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.cpp
index 73e2585..06cad2b 100644
--- a/Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.cpp
@@ -1,47 +1,46 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
DiscoInfoSerializer::DiscoInfoSerializer() : GenericPayloadSerializer<DiscoInfo>() {
}
std::string DiscoInfoSerializer::serializePayload(std::shared_ptr<DiscoInfo> discoInfo) const {
XMLElement queryElement("query", "http://jabber.org/protocol/disco#info");
if (!discoInfo->getNode().empty()) {
queryElement.setAttribute("node", discoInfo->getNode());
}
- foreach(const DiscoInfo::Identity& identity, discoInfo->getIdentities()) {
+ for (const auto& identity : discoInfo->getIdentities()) {
std::shared_ptr<XMLElement> identityElement(new XMLElement("identity"));
if (!identity.getLanguage().empty()) {
identityElement->setAttribute("xml:lang", identity.getLanguage());
}
identityElement->setAttribute("category", identity.getCategory());
identityElement->setAttribute("name", identity.getName());
identityElement->setAttribute("type", identity.getType());
queryElement.addNode(identityElement);
}
- foreach(const std::string& feature, discoInfo->getFeatures()) {
+ for (const auto& feature : discoInfo->getFeatures()) {
std::shared_ptr<XMLElement> featureElement(new XMLElement("feature"));
featureElement->setAttribute("var", feature);
queryElement.addNode(featureElement);
}
- foreach(const Form::ref extension, discoInfo->getExtensions()) {
+ for (const auto& extension : discoInfo->getExtensions()) {
queryElement.addNode(std::make_shared<XMLRawTextNode>(FormSerializer().serialize(extension)));
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.cpp
index 1b734dc..a8eafef 100644
--- a/Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.cpp
@@ -1,36 +1,35 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
namespace Swift {
DiscoItemsSerializer::DiscoItemsSerializer() : GenericPayloadSerializer<DiscoItems>() {
}
std::string DiscoItemsSerializer::serializePayload(std::shared_ptr<DiscoItems> discoItems) const {
XMLElement queryElement("query", "http://jabber.org/protocol/disco#items");
if (!discoItems->getNode().empty()) {
queryElement.setAttribute("node", discoItems->getNode());
}
- foreach(const DiscoItems::Item& item, discoItems->getItems()) {
+ for (const auto& item : discoItems->getItems()) {
std::shared_ptr<XMLElement> itemElement(new XMLElement("item"));
itemElement->setAttribute("name", item.getName());
itemElement->setAttribute("jid", item.getJID());
if (!item.getNode().empty()) {
itemElement->setAttribute("node", item.getNode());
}
queryElement.addNode(itemElement);
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/FormSerializer.cpp b/Swiften/Serializer/PayloadSerializers/FormSerializer.cpp
index ed010b4..f723ead 100644
--- a/Swiften/Serializer/PayloadSerializers/FormSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/FormSerializer.cpp
@@ -1,208 +1,209 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <memory>
#include <string>
#include <Swiften/Base/Algorithm.h>
#include <Swiften/Base/String.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
using namespace Swift;
namespace {
template<typename T> void serializeValueAsString(std::shared_ptr<FormField> field, std::shared_ptr<XMLElement> parent) {
std::string value = std::dynamic_pointer_cast<T>(field)->getValue();
if (!value.empty()) {
std::shared_ptr<XMLElement> valueElement(new XMLElement("value"));
valueElement->addNode(XMLTextNode::create(value));
parent->addNode(valueElement);
}
}
}
namespace Swift {
FormSerializer::FormSerializer() : GenericPayloadSerializer<Form>() {}
std::string FormSerializer::serializePayload(std::shared_ptr<Form> form) const {
if (!form) {
return "";
}
std::shared_ptr<XMLElement> formElement(new XMLElement("x", "jabber:x:data"));
std::string type;
switch (form->getType()) {
case Form::FormType: type = "form"; break;
case Form::SubmitType: type = "submit"; break;
case Form::CancelType: type = "cancel"; break;
case Form::ResultType: type = "result"; break;
}
formElement->setAttribute("type", type);
if (!form->getTitle().empty()) {
multiLineify(form->getTitle(), "title", formElement);
}
if (!form->getInstructions().empty()) {
multiLineify(form->getInstructions(), "instructions", formElement);
}
- foreach(std::shared_ptr<FormPage> page, form->getPages()) {
+ for (const auto& page : form->getPages()) {
formElement->addNode(pageToXML(page));
}
- foreach(std::shared_ptr<FormField> field, form->getFields()) {
+ for (const auto& field : form->getFields()) {
formElement->addNode(fieldToXML(field, true));
}
if (!form->getReportedFields().empty()) {
std::shared_ptr<XMLElement> reportedElement(new XMLElement("reported"));
- foreach(FormField::ref field, form->getReportedFields()) {
+ for (const auto& field : form->getReportedFields()) {
reportedElement->addNode(fieldToXML(field, true));
}
formElement->addNode(reportedElement);
}
- foreach(Form::FormItem item, form->getItems()) {
+ for (const auto& item : form->getItems()) {
std::shared_ptr<XMLElement> itemElement(new XMLElement("item"));
- foreach(FormField::ref field, item) {
+ for (const auto& field : item) {
itemElement->addNode(fieldToXML(field, false));
}
formElement->addNode(itemElement);
}
- foreach(const FormText::text text, form->getTextElements()) {
+ for (const auto& text : form->getTextElements()) {
formElement->addNode(textToXML(text));
}
- foreach (std::shared_ptr<FormField> field, fields_) {
+ for (const auto& field : fields_) {
formElement->addNode(fieldToXML(field,true));
}
return formElement->serialize();
}
std::shared_ptr<XMLElement> FormSerializer::textToXML(std::shared_ptr<FormText> text) const {
std::shared_ptr<XMLElement> textElement (new XMLElement("text"));
textElement->addNode(std::make_shared<XMLTextNode>(text->getTextString()));
return textElement;
}
std::shared_ptr<XMLElement> FormSerializer::fieldRefToXML(const std::string& ref) const {
std::shared_ptr<XMLElement> fieldRefElement(new XMLElement("fieldref"));
fieldRefElement->setAttribute("var", ref);
return fieldRefElement;
}
std::shared_ptr<XMLElement> FormSerializer::pageToXML(std::shared_ptr<FormPage> page) const {
std::shared_ptr<XMLElement> pageElement(new XMLElement("page"));
pageElement->setAttribute("xmlns", "http://jabber.org/protocol/xdata-layout");
if (!page->getLabel().empty()) {
pageElement->setAttribute("label", page->getLabel());
}
- foreach(const FormText::text text, page->getTextElements()) {
+ for (const auto& text : page->getTextElements()) {
pageElement->addNode(textToXML(text));
}
- foreach (const std::shared_ptr<FormField> field, page->getFields()) {
+ for (const auto& field : page->getFields()) {
pageElement->addNode(fieldRefToXML(field->getName()));
fields_.push_back(field);
}
- foreach(const FormReportedRef::ref reportedRef, page->getReportedRefs()) {
+ for (const auto& reportedRef: page->getReportedRefs()) {
+ (void)reportedRef;
pageElement->addNode(std::make_shared<XMLElement>("reportedref"));
}
- foreach(const FormSection::section section, page->getChildSections()) {
+ for (const auto& section : page->getChildSections()) {
pageElement->addNode(sectionToXML(section));
}
return pageElement;
}
std::shared_ptr<XMLElement> FormSerializer::sectionToXML(std::shared_ptr<FormSection> section) const {
std::shared_ptr<XMLElement> sectionElement(new XMLElement("section"));
if (!section->getLabel().empty()) {
sectionElement->setAttribute("label", section->getLabel());
}
- foreach(const FormText::text text, section->getTextElements()) {
+ for (const auto& text : section->getTextElements()) {
sectionElement->addNode(textToXML(text));
}
- foreach(const std::shared_ptr<FormField> field, section->getFields()) {
+ for (const auto& field : section->getFields()) {
sectionElement->addNode(fieldRefToXML(field->getName()));
fields_.push_back(field);
}
- foreach(const FormReportedRef::ref reportedRef, section->getReportedRefs()) {
+ for (const auto& reportedRef : section->getReportedRefs()) {
+ (void)reportedRef;
sectionElement->addNode(std::make_shared<XMLElement>("reportedref"));
}
- foreach(const FormSection::section childSection, section->getChildSections()) {
+ for (const auto& childSection : section->getChildSections()) {
sectionElement->addNode(sectionToXML(childSection));
}
return sectionElement;
}
std::shared_ptr<XMLElement> FormSerializer::fieldToXML(std::shared_ptr<FormField> field, bool withTypeAttribute) const {
std::shared_ptr<XMLElement> fieldElement(new XMLElement("field"));
if (!field->getName().empty()) {
fieldElement->setAttribute("var", field->getName());
}
if (!field->getLabel().empty()) {
fieldElement->setAttribute("label", field->getLabel());
}
if (field->getRequired()) {
fieldElement->addNode(std::make_shared<XMLElement>("required"));
}
if (!field->getDescription().empty()) {
std::shared_ptr<XMLElement> descriptionElement(new XMLElement("desc"));
descriptionElement->addNode(std::make_shared<XMLTextNode>(field->getDescription()));
fieldElement->addNode(descriptionElement);
}
// Set the value and type
std::string fieldType;
switch (field->getType()) {
case FormField::UnknownType: fieldType = ""; break;
case FormField::BooleanType: fieldType = "boolean"; break;
case FormField::FixedType: fieldType = "fixed"; break;
case FormField::HiddenType: fieldType = "hidden"; break;
case FormField::ListSingleType: fieldType = "list-single"; break;
case FormField::TextMultiType: fieldType = "text-multi"; break;
case FormField::TextPrivateType: fieldType = "text-private"; break;
case FormField::TextSingleType: fieldType = "text-single"; break;
case FormField::JIDSingleType: fieldType = "jid-single"; break;
case FormField::JIDMultiType: fieldType = "jid-multi"; break;
case FormField::ListMultiType: fieldType = "list-multi"; break;
}
if (!fieldType.empty() && withTypeAttribute) {
fieldElement->setAttribute("type", fieldType);
}
- foreach (const std::string& value, field->getValues()) {
+ for (const auto& value : field->getValues()) {
std::shared_ptr<XMLElement> valueElement = std::make_shared<XMLElement>("value");
valueElement->addNode(std::make_shared<XMLTextNode>(value));
fieldElement->addNode(valueElement);
}
- foreach (const FormField::Option& option, field->getOptions()) {
+ for (const auto& option : field->getOptions()) {
std::shared_ptr<XMLElement> optionElement(new XMLElement("option"));
if (!option.label.empty()) {
optionElement->setAttribute("label", option.label);
}
std::shared_ptr<XMLElement> valueElement(new XMLElement("value"));
valueElement->addNode(XMLTextNode::create(option.value));
optionElement->addNode(valueElement);
fieldElement->addNode(optionElement);
}
return fieldElement;
}
void FormSerializer::multiLineify(const std::string& text, const std::string& elementName, std::shared_ptr<XMLElement> element) const {
std::string unRdText(text);
erase(unRdText, '\r');
std::vector<std::string> lines = String::split(unRdText, '\n');
- foreach (std::string line, lines) {
+ for (const auto& line : lines) {
std::shared_ptr<XMLElement> lineElement(new XMLElement(elementName));
lineElement->addNode(std::make_shared<XMLTextNode>(line));
element->addNode(lineElement);
}
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
index 175de1e..cf0b54c 100644
--- a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
+++ b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
@@ -1,39 +1,38 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/BlockListPayload.h>
#include <Swiften/Elements/BlockPayload.h>
#include <Swiften/Elements/UnblockPayload.h>
#include <Swiften/Serializer/PayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/BlockSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/BodySerializer.h>
#include <Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CapsInfoSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CarbonsDisableSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CarbonsEnableSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CarbonsPrivateSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CarbonsReceivedSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CarbonsSentSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/ChatStateSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/CommandSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/DelaySerializer.h>
#include <Swiften/Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/DeliveryReceiptSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/ErrorSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/ForwardedSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/IBBSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/IdleSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/IsodeIQDelegationSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.h>
@@ -138,44 +137,44 @@ FullPayloadSerializerCollection::FullPayloadSerializerCollection() {
serializers_.push_back(new JingleFileTransferFileInfoSerializer());
serializers_.push_back(new JingleContentPayloadSerializer());
serializers_.push_back(new JingleFileTransferDescriptionSerializer());
serializers_.push_back(new JingleFileTransferHashSerializer());
serializers_.push_back(new JingleIBBTransportPayloadSerializer());
serializers_.push_back(new JingleS5BTransportPayloadSerializer());
serializers_.push_back(new JinglePayloadSerializer(this));
serializers_.push_back(new S5BProxyRequestSerializer());
serializers_.push_back(new DeliveryReceiptSerializer());
serializers_.push_back(new DeliveryReceiptRequestSerializer());
serializers_.push_back(new PubSubSerializer(this));
serializers_.push_back(new PubSubEventSerializer(this));
serializers_.push_back(new PubSubOwnerPubSubSerializer(this));
serializers_.push_back(new PubSubErrorSerializer());
serializers_.push_back(new ResultSetSerializer());
serializers_.push_back(new ForwardedSerializer(this));
serializers_.push_back(new MAMResultSerializer(this));
serializers_.push_back(new MAMQuerySerializer());
serializers_.push_back(new MAMFinSerializer());
serializers_.push_back(new CarbonsDisableSerializer());
serializers_.push_back(new CarbonsEnableSerializer());
serializers_.push_back(new CarbonsPrivateSerializer());
serializers_.push_back(new CarbonsReceivedSerializer(this));
serializers_.push_back(new CarbonsSentSerializer(this));
serializers_.push_back(new IsodeIQDelegationSerializer(this));
- foreach(PayloadSerializer* serializer, serializers_) {
+ for (auto serializer : serializers_) {
addSerializer(serializer);
}
}
FullPayloadSerializerCollection::~FullPayloadSerializerCollection() {
- foreach(PayloadSerializer* serializer, serializers_) {
+ for (auto serializer : serializers_) {
removeSerializer(serializer);
delete serializer;
}
serializers_.clear();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/IBBSerializer.cpp b/Swiften/Serializer/PayloadSerializers/IBBSerializer.cpp
index 36d82a2..e41ff8c 100644
--- a/Swiften/Serializer/PayloadSerializers/IBBSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/IBBSerializer.cpp
@@ -1,44 +1,43 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/IBBSerializer.h>
#include <cassert>
#include <memory>
#include <boost/lexical_cast.hpp>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Swiften/StringCodecs/Base64.h>
namespace Swift {
IBBSerializer::IBBSerializer() {
}
std::string IBBSerializer::serializePayload(std::shared_ptr<IBB> ibb) const {
switch(ibb->getAction()) {
case IBB::Data: {
XMLElement ibbElement("data", "http://jabber.org/protocol/ibb");
ibbElement.setAttribute("sid", ibb->getStreamID());
if (ibb->getSequenceNumber() >= 0) {
ibbElement.setAttribute("seq", boost::lexical_cast<std::string>(ibb->getSequenceNumber()));
}
ibbElement.addNode(std::make_shared<XMLTextNode>(Base64::encode(ibb->getData())));
return ibbElement.serialize();
}
case IBB::Open: {
XMLElement ibbElement("open", "http://jabber.org/protocol/ibb");
ibbElement.setAttribute("sid", ibb->getStreamID());
switch (ibb->getStanzaType()) {
case IBB::IQStanza: ibbElement.setAttribute("stanza", "iq"); break;
case IBB::MessageStanza: ibbElement.setAttribute("stanza", "message"); break;
}
assert(ibb->getBlockSize() > 0);
ibbElement.setAttribute("block-size", boost::lexical_cast<std::string>(ibb->getBlockSize()));
return ibbElement.serialize();
diff --git a/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp
index 31b023f..04b7c56 100644
--- a/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp
@@ -1,41 +1,40 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
InBandRegistrationPayloadSerializer::InBandRegistrationPayloadSerializer() {
}
std::string InBandRegistrationPayloadSerializer::serializePayload(std::shared_ptr<InBandRegistrationPayload> registration) const {
XMLElement registerElement("query", "jabber:iq:register");
if (registration->isRegistered()) {
registerElement.addNode(XMLElement::ref(new XMLElement("registered")));
}
if (registration->isRemove()) {
registerElement.addNode(XMLElement::ref(new XMLElement("remove")));
}
if (registration->getInstructions()) {
registerElement.addNode(XMLElement::ref(new XMLElement("instructions", "", *registration->getInstructions())));
}
if (registration->getUsername()) {
registerElement.addNode(XMLElement::ref(new XMLElement("username", "", *registration->getUsername())));
}
if (registration->getNick()) {
diff --git a/Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp
index 02e0f2a..39eb149 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp
@@ -1,81 +1,80 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2014-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.h>
#include <memory>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
JingleContentPayloadSerializer::JingleContentPayloadSerializer() {
}
std::string JingleContentPayloadSerializer::serializePayload(std::shared_ptr<JingleContentPayload> payload) const {
XMLElement payloadXML("content");
payloadXML.setAttribute("creator", creatorToString(payload->getCreator()));
payloadXML.setAttribute("name", payload->getName());
if (!payload->getDescriptions().empty()) {
// JingleFileTransferDescription
JingleFileTransferDescriptionSerializer ftSerializer;
JingleFileTransferDescription::ref filetransfer;
- foreach(JingleDescription::ref desc, payload->getDescriptions()) {
+ for (auto&& desc : payload->getDescriptions()) {
if ((filetransfer = std::dynamic_pointer_cast<JingleFileTransferDescription>(desc))) {
payloadXML.addNode(std::make_shared<XMLRawTextNode>(ftSerializer.serializePayload(filetransfer)));
}
}
}
if (!payload->getTransports().empty()) {
// JingleIBBTransportPayload
JingleIBBTransportPayloadSerializer ibbSerializer;
JingleIBBTransportPayload::ref ibb;
// JingleS5BTransportPayload
JingleS5BTransportPayloadSerializer s5bSerializer;
JingleS5BTransportPayload::ref s5b;
- foreach(JingleTransportPayload::ref transport, payload->getTransports()) {
+ for (auto&& transport : payload->getTransports()) {
if ((ibb = std::dynamic_pointer_cast<JingleIBBTransportPayload>(transport))) {
payloadXML.addNode(std::make_shared<XMLRawTextNode>(ibbSerializer.serializePayload(ibb)));
} else if ((s5b = std::dynamic_pointer_cast<JingleS5BTransportPayload>(transport))) {
payloadXML.addNode(std::make_shared<XMLRawTextNode>(s5bSerializer.serializePayload(s5b)));
}
}
}
return payloadXML.serialize();
}
std::string JingleContentPayloadSerializer::creatorToString(JingleContentPayload::Creator creator) const {
switch(creator) {
case JingleContentPayload::InitiatorCreator:
return "initiator";
case JingleContentPayload::ResponderCreator:
return "responder";
case JingleContentPayload::UnknownCreator:
SWIFT_LOG(error) << "Serializing unknown creator value.";
return "ERROR ERROR ERROR";
}
assert(false);
return "";
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp
index b002482..27e3b33 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp
@@ -1,41 +1,40 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
#include <Swiften/Base/DateTime.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/StringCodecs/Base64.h>
namespace Swift {
JingleFileTransferDescriptionSerializer::JingleFileTransferDescriptionSerializer() {
}
std::string JingleFileTransferDescriptionSerializer::serializePayload(std::shared_ptr<JingleFileTransferDescription> payload) const {
XMLElement description("description", "urn:xmpp:jingle:apps:file-transfer:4");
JingleFileTransferFileInfoSerializer fileInfoSerializer;
std::shared_ptr<XMLRawTextNode> fileInfoXML = std::make_shared<XMLRawTextNode>(fileInfoSerializer.serialize(std::make_shared<JingleFileTransferFileInfo>(payload->getFileInfo())));
description.addNode(fileInfoXML);
return description.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp
index d78d7df..35a0a6e 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp
@@ -1,66 +1,65 @@
/*
* Copyright (c) 2014-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
#include <Swiften/Base/DateTime.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Swiften/StringCodecs/Base64.h>
namespace Swift {
JingleFileTransferFileInfoSerializer::JingleFileTransferFileInfoSerializer() {
}
std::string JingleFileTransferFileInfoSerializer::serializePayload(std::shared_ptr<JingleFileTransferFileInfo> fileInfo) const {
XMLElement fileElement("file", "");
if (fileInfo->getDate() != stringToDateTime("")) {
fileElement.addNode(std::make_shared<XMLElement>("date", "", dateTimeToString(fileInfo->getDate())));
}
if (!fileInfo->getDescription().empty()) {
fileElement.addNode(std::make_shared<XMLElement>("desc", "", fileInfo->getDescription()));
}
if (!fileInfo->getMediaType().empty()) {
fileElement.addNode(std::make_shared<XMLElement>("media-type", "", fileInfo->getMediaType()));
}
if (!fileInfo->getName().empty()) {
fileElement.addNode(std::make_shared<XMLElement>("name", "", fileInfo->getName()));
}
if (fileInfo->getSupportsRangeRequests()) {
std::shared_ptr<XMLElement> range = std::make_shared<XMLElement>("range");
if (fileInfo->getRangeOffset() != 0) {
range->setAttribute("offset", boost::lexical_cast<std::string>(fileInfo->getRangeOffset()));
}
fileElement.addNode(range);
}
if (fileInfo->getSize() > 0) {
fileElement.addNode(std::make_shared<XMLElement>("size", "", boost::lexical_cast<std::string>(fileInfo->getSize())));
}
- foreach (JingleFileTransferFileInfo::HashElementMap::value_type hashElement, fileInfo->getHashes()) {
+ for (const auto& hashElement : fileInfo->getHashes()) {
std::shared_ptr<XMLElement> hash = std::make_shared<XMLElement>("hash", "urn:xmpp:hashes:1", Base64::encode(hashElement.second));
hash->setAttribute("algo", hashElement.first);
fileElement.addNode(hash);
}
return fileElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp
index 1f6ead7..7629721 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp
@@ -1,46 +1,45 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.h>
#include <map>
#include <memory>
#include <string>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
JingleFileTransferHashSerializer::JingleFileTransferHashSerializer() {
}
std::string JingleFileTransferHashSerializer::serializePayload(std::shared_ptr<JingleFileTransferHash> payload) const {
// code for version urn:xmpp:jingle:apps:file-transfer:2
//XMLElement hash("hash", "urn:xmpp:jingle:apps:file-transfer:info:2", payload->getHash());
// code for version urn:xmpp:jingle:apps:file-transfer:4
XMLElement checksum("checksum", "urn:xmpp:jingle:apps:file-transfer:4");
JingleFileTransferFileInfoSerializer fileSerializer;
std::shared_ptr<XMLRawTextNode> file = std::make_shared<XMLRawTextNode>(fileSerializer.serialize(std::make_shared<JingleFileTransferFileInfo>(payload->getFileInfo())));
checksum.addNode(file);
return checksum.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp
index 52e6c16..9930e44 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp
@@ -1,39 +1,38 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
JingleIBBTransportPayloadSerializer::JingleIBBTransportPayloadSerializer() {
}
std::string JingleIBBTransportPayloadSerializer::serializePayload(std::shared_ptr<JingleIBBTransportPayload> payload) const {
XMLElement payloadXML("transport", "urn:xmpp:jingle:transports:ibb:1");
if (payload->getBlockSize()) {
payloadXML.setAttribute("block-size", boost::lexical_cast<std::string>(*payload->getBlockSize()));
}
payloadXML.setAttribute("sid", payload->getSessionID());
return payloadXML.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.cpp
index 8b37929..aaac757 100644
--- a/Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.cpp
@@ -1,74 +1,73 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.h>
#include <memory>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/JingleContentPayload.h>
#include <Swiften/Elements/JingleFileTransferDescription.h>
#include <Swiften/Elements/JingleFileTransferHash.h>
#include <Swiften/Elements/JingleIBBTransportPayload.h>
#include <Swiften/Elements/JinglePayload.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
JinglePayloadSerializer::JinglePayloadSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
std::string JinglePayloadSerializer::serializePayload(std::shared_ptr<JinglePayload> payload) const {
XMLElement jinglePayload("jingle", "urn:xmpp:jingle:1");
jinglePayload.setAttribute("action", actionToString(payload->getAction()));
jinglePayload.setAttribute("initiator", payload->getInitiator());
jinglePayload.setAttribute("sid", payload->getSessionID());
std::vector<std::shared_ptr<Payload> > payloads = payload->getPayloads();
if (!payloads.empty()) {
- foreach(std::shared_ptr<Payload> subPayload, payloads) {
+ for (auto&& subPayload : payloads) {
PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload);
if (serializer) {
jinglePayload.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(subPayload)));
}
}
}
if (payload->getReason().is_initialized()) {
std::shared_ptr<XMLElement> reason = std::make_shared<XMLElement>("reason");
reason->addNode(std::make_shared<XMLElement>(reasonTypeToString(payload->getReason()->type)));
if (!payload->getReason()->text.empty()) {
reason->addNode(std::make_shared<XMLElement>("desc", "", payload->getReason()->text));
}
jinglePayload.addNode(reason);
}
return jinglePayload.serialize();
}
std::string JinglePayloadSerializer::actionToString(JinglePayload::Action action) const {
switch(action) {
case JinglePayload::ContentAccept:
return "content-accept";
case JinglePayload::ContentAdd:
return "content-add";
case JinglePayload::ContentModify:
return "content-modify";
case JinglePayload::ContentReject:
return "content-reject";
case JinglePayload::ContentRemove:
diff --git a/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp
index 61447cd..5e74d8e 100644
--- a/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp
@@ -1,68 +1,67 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
JingleS5BTransportPayloadSerializer::JingleS5BTransportPayloadSerializer() {
}
std::string JingleS5BTransportPayloadSerializer::serializePayload(std::shared_ptr<JingleS5BTransportPayload> payload) const {
XMLElement payloadXML("transport", "urn:xmpp:jingle:transports:s5b:1");
payloadXML.setAttribute("sid", payload->getSessionID());
payloadXML.setAttribute("mode", modeToString(payload->getMode()));
if (!payload->getDstAddr().empty()) {
payloadXML.setAttribute("dstaddr", payload->getDstAddr());
}
- foreach(JingleS5BTransportPayload::Candidate candidate, payload->getCandidates()) {
+ for (const auto& candidate : payload->getCandidates()) {
std::shared_ptr<XMLElement> candidateXML = std::make_shared<XMLElement>("candidate");
candidateXML->setAttribute("cid", candidate.cid);
candidateXML->setAttribute("host", candidate.hostPort.getAddress().toString());
candidateXML->setAttribute("jid", candidate.jid.toString());
candidateXML->setAttribute("port", boost::lexical_cast<std::string>(candidate.hostPort.getPort()));
candidateXML->setAttribute("priority", boost::lexical_cast<std::string>(candidate.priority));
candidateXML->setAttribute("type", typeToString(candidate.type));
payloadXML.addNode(candidateXML);
}
if (payload->hasCandidateError()) {
payloadXML.addNode(std::make_shared<XMLElement>("candidate-error"));
}
if (payload->hasProxyError()) {
payloadXML.addNode(std::make_shared<XMLElement>("proxy-error"));
}
if (!payload->getActivated().empty()) {
std::shared_ptr<XMLElement> activatedXML = std::make_shared<XMLElement>("activated");
activatedXML->setAttribute("cid", payload->getActivated());
payloadXML.addNode(activatedXML);
}
if (!payload->getCandidateUsed().empty()) {
std::shared_ptr<XMLElement> candusedXML = std::make_shared<XMLElement>("candidate-used");
candusedXML->setAttribute("cid", payload->getCandidateUsed());
payloadXML.addNode(candusedXML);
}
return payloadXML.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp
index 385c181..157c99e 100644
--- a/Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp
@@ -1,31 +1,30 @@
/*
* Copyright (c) 2011-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/MUCAdminPayloadSerializer.h>
#include <memory>
#include <sstream>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/MUCItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
MUCAdminPayloadSerializer::MUCAdminPayloadSerializer() : GenericPayloadSerializer<MUCAdminPayload>() {
}
std::string MUCAdminPayloadSerializer::serializePayload(std::shared_ptr<MUCAdminPayload> payload) const {
XMLElement mucElement("query", "http://jabber.org/protocol/muc#admin");
- foreach (const MUCItem& item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
mucElement.addNode(MUCItemSerializer::itemToElement(item));
}
return mucElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp
index 3d807be..96116c7 100644
--- a/Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp
@@ -1,36 +1,35 @@
/*
* Copyright (c) 2011-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
MUCDestroyPayloadSerializer::MUCDestroyPayloadSerializer() : GenericPayloadSerializer<MUCDestroyPayload>() {
}
std::string MUCDestroyPayloadSerializer::serializePayload(std::shared_ptr<MUCDestroyPayload> payload) const {
XMLElement mucElement("destroy", "");
if (!payload->getReason().empty()) {
XMLElement::ref reason = std::make_shared<XMLElement>("reason", "");
reason->addNode(std::make_shared<XMLTextNode>(payload->getReason()));
mucElement.addNode(reason);
}
if (payload->getNewVenue().isValid()) {
mucElement.setAttribute("jid", payload->getNewVenue().toString());
}
return mucElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp
index 4b978af..2004f4c 100644
--- a/Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp
@@ -1,41 +1,40 @@
/*
* Copyright (c) 2011-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/MUCItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
MUCInvitationPayloadSerializer::MUCInvitationPayloadSerializer() : GenericPayloadSerializer<MUCInvitationPayload>() {
}
std::string MUCInvitationPayloadSerializer::serializePayload(std::shared_ptr<MUCInvitationPayload> payload) const {
XMLElement mucElement("x", "jabber:x:conference");
if (payload->getIsContinuation()) {
mucElement.setAttribute("continue", "true");
}
if (payload->getJID().isValid()) {
mucElement.setAttribute("jid", payload->getJID().toString());
}
if (!payload->getPassword().empty()) {
mucElement.setAttribute("password", payload->getPassword());
}
if (!payload->getReason().empty()) {
mucElement.setAttribute("reason", payload->getReason());
}
if (!payload->getThread().empty()) {
mucElement.setAttribute("thread", payload->getThread());
}
if (payload->getIsImpromptu()) {
mucElement.addNode(std::make_shared<XMLElement>("impromptu", "http://swift.im/impromptu"));
}
return mucElement.serialize();
diff --git a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
index 52ab489..f0f3cfa 100644
--- a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
@@ -1,63 +1,62 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.h>
#include <memory>
#include <sstream>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/MUCItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
MUCUserPayloadSerializer::MUCUserPayloadSerializer(PayloadSerializerCollection* serializers) : GenericPayloadSerializer<MUCUserPayload>(), serializers(serializers) {
}
std::string MUCUserPayloadSerializer::serializePayload(std::shared_ptr<MUCUserPayload> payload) const {
XMLElement mucElement("x", "http://jabber.org/protocol/muc#user");
- foreach (const MUCUserPayload::StatusCode statusCode, payload->getStatusCodes()) {
+ for (const auto& statusCode : payload->getStatusCodes()) {
std::shared_ptr<XMLElement> statusElement(new XMLElement("status"));
std::ostringstream code;
code << statusCode.code;
statusElement->setAttribute("code", code.str());
mucElement.addNode(statusElement);
}
- foreach (const MUCItem& item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
mucElement.addNode(MUCItemSerializer::itemToElement(item));
}
if (payload->getPassword()) {
std::shared_ptr<XMLElement> passwordElement = std::make_shared<XMLElement>("password");
passwordElement->addNode(std::make_shared<XMLTextNode>(*payload->getPassword()));
}
if (payload->getInvite()) {
MUCUserPayload::Invite invite = *payload->getInvite();
std::shared_ptr<XMLElement> inviteElement = std::make_shared<XMLElement>("invite");
if (invite.to.isValid()) {
inviteElement->setAttribute("to", invite.to.toString());
}
if (invite.from.isValid()) {
inviteElement->setAttribute("from", invite.from.toString());
}
if (!invite.reason.empty()) {
std::shared_ptr<XMLElement> reasonElement = std::make_shared<XMLElement>("reason");
reasonElement->addNode(std::make_shared<XMLTextNode>(invite.reason));
}
mucElement.addNode(inviteElement);
}
std::shared_ptr<Payload> childPayload = payload->getPayload();
if (childPayload) {
PayloadSerializer* serializer = serializers->getPayloadSerializer(childPayload);
if (serializer) {
mucElement.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(childPayload)));
}
diff --git a/Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.cpp
index 87a2eeb..fc410fb 100644
--- a/Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.cpp
@@ -1,34 +1,33 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
PrivateStorageSerializer::PrivateStorageSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
std::string PrivateStorageSerializer::serializePayload(std::shared_ptr<PrivateStorage> storage) const {
XMLElement storageElement("query", "jabber:iq:private");
std::shared_ptr<Payload> payload = storage->getPayload();
if (payload) {
PayloadSerializer* serializer = serializers->getPayloadSerializer(payload);
if (serializer) {
storageElement.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(payload)));
}
}
return storageElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.cpp
index 07b427c..9c810da 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.cpp
@@ -1,41 +1,38 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubAffiliationSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubAffiliationsSerializer::PubSubAffiliationsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubAffiliationsSerializer::~PubSubAffiliationsSerializer() {
}
std::string PubSubAffiliationsSerializer::serializePayload(std::shared_ptr<PubSubAffiliations> payload) const {
if (!payload) {
return "";
}
XMLElement element("affiliations", "http://jabber.org/protocol/pubsub");
if (payload->getNode()) {
element.setAttribute("node", *payload->getNode());
}
- foreach(std::shared_ptr<PubSubAffiliation> item, payload->getAffiliations()) {
+ for (const auto& item : payload->getAffiliations()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubAffiliationSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.cpp
index 61b6cb5..2743ff6 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.cpp
@@ -1,46 +1,43 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubEventItemSerializer::PubSubEventItemSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubEventItemSerializer::~PubSubEventItemSerializer() {
}
std::string PubSubEventItemSerializer::serializePayload(std::shared_ptr<PubSubEventItem> payload) const {
if (!payload) {
return "";
}
XMLElement element("item", "http://jabber.org/protocol/pubsub#event");
if (payload->getNode()) {
element.setAttribute("node", *payload->getNode());
}
if (payload->getPublisher()) {
element.setAttribute("publisher", *payload->getPublisher());
}
- foreach(std::shared_ptr<Payload> item, payload->getData()) {
+ for (const auto& item : payload->getData()) {
element.addNode(std::make_shared<XMLRawTextNode>(serializers->getPayloadSerializer(item)->serialize(item)));
}
if (payload->getID()) {
element.setAttribute("id", *payload->getID());
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.cpp
index c8704ea..67d611b 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.cpp
@@ -1,43 +1,40 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventItemSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventRetractSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubEventItemsSerializer::PubSubEventItemsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubEventItemsSerializer::~PubSubEventItemsSerializer() {
}
std::string PubSubEventItemsSerializer::serializePayload(std::shared_ptr<PubSubEventItems> payload) const {
if (!payload) {
return "";
}
XMLElement element("items", "http://jabber.org/protocol/pubsub#event");
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubEventItem> item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubEventItemSerializer(serializers).serialize(item)));
}
- foreach(std::shared_ptr<PubSubEventRetract> item, payload->getRetracts()) {
+ for (const auto& item : payload->getRetracts()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubEventRetractSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.cpp
index d0b14ae..51b8b46 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.cpp
@@ -1,49 +1,48 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventCollectionSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventConfigurationSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventDeleteSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventItemsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventPurgeSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubEventSubscriptionSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubEventSerializer::PubSubEventSerializer(PayloadSerializerCollection* serializers) {
pubsubSerializers.push_back(std::make_shared<PubSubEventSubscriptionSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubEventPurgeSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubEventCollectionSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubEventDeleteSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubEventItemsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubEventConfigurationSerializer>(serializers));
}
PubSubEventSerializer::~PubSubEventSerializer() {
}
std::string PubSubEventSerializer::serializePayload(std::shared_ptr<PubSubEvent> payload) const {
if (!payload) {
return "";
}
XMLElement element("event", "http://jabber.org/protocol/pubsub#event");
std::shared_ptr<PubSubEventPayload> p = payload->getPayload();
- foreach(std::shared_ptr<PayloadSerializer> serializer, pubsubSerializers) {
+ for (const auto& serializer : pubsubSerializers) {
if (serializer->canSerialize(p)) {
element.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(p)));
}
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp
index d2e5977..a202c88 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp
@@ -1,40 +1,37 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubItemSerializer::PubSubItemSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubItemSerializer::~PubSubItemSerializer() {
}
std::string PubSubItemSerializer::serializePayload(std::shared_ptr<PubSubItem> payload) const {
if (!payload) {
return "";
}
XMLElement element("item", "http://jabber.org/protocol/pubsub");
- foreach(std::shared_ptr<Payload> item, payload->getData()) {
+ for (const auto& item : payload->getData()) {
element.addNode(std::make_shared<XMLRawTextNode>(serializers->getPayloadSerializer(item)->serialize(item)));
}
if (!payload->getID().empty()) {
element.setAttribute("id", payload->getID());
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.cpp
index ae6433a..9786f51 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.cpp
@@ -1,51 +1,48 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubItemsSerializer::PubSubItemsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubItemsSerializer::~PubSubItemsSerializer() {
}
std::string PubSubItemsSerializer::serializePayload(std::shared_ptr<PubSubItems> payload) const {
if (!payload) {
return "";
}
XMLElement element("items", "http://jabber.org/protocol/pubsub");
if (payload->getNode().empty()) {
SWIFT_LOG(warning) << "Serializing PubSubItems with empty node attribute";
}
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubItem> item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubItemSerializer(serializers).serialize(item)));
}
if (payload->getMaximumItems()) {
element.setAttribute("max_items", boost::lexical_cast<std::string>(*payload->getMaximumItems()));
}
if (payload->getSubscriptionID()) {
element.setAttribute("subid", *payload->getSubscriptionID());
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.cpp
index 7810e2f..b9f6bcc 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.cpp
@@ -1,38 +1,36 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.h>
-#include <cassert>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubOwnerAffiliationsSerializer::PubSubOwnerAffiliationsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubOwnerAffiliationsSerializer::~PubSubOwnerAffiliationsSerializer() {
}
std::string PubSubOwnerAffiliationsSerializer::serializePayload(std::shared_ptr<PubSubOwnerAffiliations> payload) const {
if (!payload) {
return "";
}
XMLElement element("affiliations", "http://jabber.org/protocol/pubsub#owner");
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubOwnerAffiliation> item, payload->getAffiliations()) {
+ for (const auto& item : payload->getAffiliations()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubOwnerAffiliationSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.cpp
index cacd8d9..b2dfd21 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.cpp
@@ -1,49 +1,48 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerAffiliationsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerConfigureSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerDefaultSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerDeleteSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerPurgeSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubOwnerPubSubSerializer::PubSubOwnerPubSubSerializer(PayloadSerializerCollection* serializers) {
pubsubSerializers.push_back(std::make_shared<PubSubOwnerConfigureSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOwnerSubscriptionsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOwnerDefaultSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOwnerPurgeSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOwnerAffiliationsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOwnerDeleteSerializer>(serializers));
}
PubSubOwnerPubSubSerializer::~PubSubOwnerPubSubSerializer() {
}
std::string PubSubOwnerPubSubSerializer::serializePayload(std::shared_ptr<PubSubOwnerPubSub> payload) const {
if (!payload) {
return "";
}
XMLElement element("pubsub", "http://jabber.org/protocol/pubsub#owner");
std::shared_ptr<PubSubOwnerPayload> p = payload->getPayload();
- foreach(std::shared_ptr<PayloadSerializer> serializer, pubsubSerializers) {
+ for (const auto& serializer : pubsubSerializers) {
if (serializer->canSerialize(p)) {
element.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(p)));
}
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.cpp
index 9a6ca32..a5940f6 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.cpp
@@ -1,38 +1,36 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionsSerializer.h>
-#include <cassert>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOwnerSubscriptionSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubOwnerSubscriptionsSerializer::PubSubOwnerSubscriptionsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubOwnerSubscriptionsSerializer::~PubSubOwnerSubscriptionsSerializer() {
}
std::string PubSubOwnerSubscriptionsSerializer::serializePayload(std::shared_ptr<PubSubOwnerSubscriptions> payload) const {
if (!payload) {
return "";
}
XMLElement element("subscriptions", "http://jabber.org/protocol/pubsub#owner");
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubOwnerSubscription> item, payload->getSubscriptions()) {
+ for (const auto& item : payload->getSubscriptions()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubOwnerSubscriptionSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.cpp
index 871845f..ce8706d 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.cpp
@@ -1,39 +1,36 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubPublishSerializer::PubSubPublishSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubPublishSerializer::~PubSubPublishSerializer() {
}
std::string PubSubPublishSerializer::serializePayload(std::shared_ptr<PubSubPublish> payload) const {
if (!payload) {
return "";
}
XMLElement element("publish", "http://jabber.org/protocol/pubsub");
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubItem> item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubItemSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.cpp
index 99b425e..c82089a 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.cpp
@@ -1,40 +1,39 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubRetractSerializer::PubSubRetractSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubRetractSerializer::~PubSubRetractSerializer() {
}
std::string PubSubRetractSerializer::serializePayload(std::shared_ptr<PubSubRetract> payload) const {
if (!payload) {
return "";
}
XMLElement element("retract", "http://jabber.org/protocol/pubsub");
element.setAttribute("node", payload->getNode());
- foreach(std::shared_ptr<PubSubItem> item, payload->getItems()) {
+ for (const auto& item : payload->getItems()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubItemSerializer(serializers).serialize(item)));
}
if (payload->isNotify().is_initialized()) {
element.setAttribute("notify", payload->isNotify().get() ? "true" : "false");
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubSerializer.cpp
index dbef36e..648c5a3 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubSerializer.cpp
@@ -1,69 +1,66 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-
-
#include <Swiften/Serializer/PayloadSerializers/PubSubSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubAffiliationsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubConfigureSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubCreateSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubDefaultSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubItemsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubOptionsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubPublishSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubRetractSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubSubscribeSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubSubscriptionSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubUnsubscribeSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubSerializer::PubSubSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
pubsubSerializers.push_back(std::make_shared<PubSubItemsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubCreateSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubPublishSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubOptionsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubAffiliationsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubRetractSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubDefaultSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubSubscriptionsSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubSubscribeSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubUnsubscribeSerializer>(serializers));
pubsubSerializers.push_back(std::make_shared<PubSubSubscriptionSerializer>(serializers));
}
PubSubSerializer::~PubSubSerializer() {
}
std::string PubSubSerializer::serializePayload(std::shared_ptr<PubSub> payload) const {
if (!payload) {
return "";
}
XMLElement element("pubsub", "http://jabber.org/protocol/pubsub");
std::shared_ptr<PubSubPayload> p = payload->getPayload();
- foreach(std::shared_ptr<PayloadSerializer> serializer, pubsubSerializers) {
+ for (const auto& serializer : pubsubSerializers) {
if (serializer->canSerialize(p)) {
element.addNode(std::make_shared<XMLRawTextNode>(serializer->serialize(p)));
if (std::shared_ptr<PubSubCreate> create = std::dynamic_pointer_cast<PubSubCreate>(p)) {
element.addNode(std::make_shared<XMLRawTextNode>(std::make_shared<PubSubConfigureSerializer>(serializers)->serialize(create->getConfigure())));
}
if (std::shared_ptr<PubSubSubscribe> subscribe = std::dynamic_pointer_cast<PubSubSubscribe>(p)) {
element.addNode(std::make_shared<XMLRawTextNode>(std::make_shared<PubSubConfigureSerializer>(serializers)->serialize(subscribe->getOptions())));
}
}
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.cpp b/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.cpp
index e154109..6e01881 100644
--- a/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.cpp
@@ -1,39 +1,38 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/PubSubSubscriptionsSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/PayloadSerializers/PubSubSubscriptionSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
using namespace Swift;
PubSubSubscriptionsSerializer::PubSubSubscriptionsSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
}
PubSubSubscriptionsSerializer::~PubSubSubscriptionsSerializer() {
}
std::string PubSubSubscriptionsSerializer::serializePayload(std::shared_ptr<PubSubSubscriptions> payload) const {
if (!payload) {
return "";
}
XMLElement element("subscriptions", "http://jabber.org/protocol/pubsub");
if (payload->getNode()) {
element.setAttribute("node", *payload->getNode());
}
- foreach(std::shared_ptr<PubSubSubscription> item, payload->getSubscriptions()) {
+ for (const auto& item : payload->getSubscriptions()) {
element.addNode(std::make_shared<XMLRawTextNode>(PubSubSubscriptionSerializer(serializers).serialize(item)));
}
return element.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp b/Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp
index 24cc301..c7fdc5b 100644
--- a/Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp
@@ -1,52 +1,51 @@
/*
* Copyright (c) 2011 Jan Kaluza
* Licensed under the Simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/RosterItemExchangeSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
RosterItemExchangeSerializer::RosterItemExchangeSerializer() : GenericPayloadSerializer<RosterItemExchangePayload>() {
}
std::string RosterItemExchangeSerializer::serializePayload(std::shared_ptr<RosterItemExchangePayload> roster) const {
XMLElement queryElement("x", "http://jabber.org/protocol/rosterx");
- foreach(const RosterItemExchangePayload::Item& item, roster->getItems()) {
+ for (const auto& item : roster->getItems()) {
std::shared_ptr<XMLElement> itemElement(new XMLElement("item"));
itemElement->setAttribute("jid", item.getJID());
itemElement->setAttribute("name", item.getName());
switch (item.getAction()) {
case RosterItemExchangePayload::Item::Add: itemElement->setAttribute("action", "add"); break;
case RosterItemExchangePayload::Item::Modify: itemElement->setAttribute("action", "modify"); break;
case RosterItemExchangePayload::Item::Delete: itemElement->setAttribute("action", "delete"); break;
}
- foreach(const std::string& group, item.getGroups()) {
+ for (const auto& group : item.getGroups()) {
std::shared_ptr<XMLElement> groupElement(new XMLElement("group"));
groupElement->addNode(std::make_shared<XMLTextNode>(group));
itemElement->addNode(groupElement);
}
queryElement.addNode(itemElement);
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp b/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp
index 8c857ab..e706542 100644
--- a/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/RosterSerializer.cpp
@@ -1,60 +1,59 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/RosterSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
RosterSerializer::RosterSerializer() : GenericPayloadSerializer<RosterPayload>() {
}
std::string RosterSerializer::serializePayload(std::shared_ptr<RosterPayload> roster) const {
XMLElement queryElement("query", "jabber:iq:roster");
if (roster->getVersion()) {
queryElement.setAttribute("ver", *roster->getVersion());
}
- foreach(const RosterItemPayload& item, roster->getItems()) {
+ for (const auto& item : roster->getItems()) {
std::shared_ptr<XMLElement> itemElement(new XMLElement("item"));
itemElement->setAttribute("jid", item.getJID());
itemElement->setAttribute("name", item.getName());
switch (item.getSubscription()) {
case RosterItemPayload::To: itemElement->setAttribute("subscription", "to"); break;
case RosterItemPayload::From: itemElement->setAttribute("subscription", "from"); break;
case RosterItemPayload::Both: itemElement->setAttribute("subscription", "both"); break;
case RosterItemPayload::Remove: itemElement->setAttribute("subscription", "remove"); break;
case RosterItemPayload::None: itemElement->setAttribute("subscription", "none"); break;
}
if (item.getSubscriptionRequested()) {
itemElement->setAttribute("ask", "subscribe");
}
- foreach(const std::string& group, item.getGroups()) {
+ for (const auto& group : item.getGroups()) {
std::shared_ptr<XMLElement> groupElement(new XMLElement("group"));
groupElement->addNode(std::make_shared<XMLTextNode>(group));
itemElement->addNode(groupElement);
}
if (!item.getUnknownContent().empty()) {
itemElement->addNode(std::make_shared<XMLRawTextNode>(item.getUnknownContent()));
}
queryElement.addNode(itemElement);
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.cpp
index 6e55f46..befd76d 100644
--- a/Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.cpp
@@ -1,62 +1,61 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
SearchPayloadSerializer::SearchPayloadSerializer() {
}
std::string SearchPayloadSerializer::serializePayload(std::shared_ptr<SearchPayload> searchPayload) const {
XMLElement searchElement("query", "jabber:iq:search");
if (searchPayload->getInstructions()) {
searchElement.addNode(XMLElement::ref(new XMLElement("instructions", "", *searchPayload->getInstructions())));
}
if (searchPayload->getNick()) {
searchElement.addNode(XMLElement::ref(new XMLElement("nick", "", *searchPayload->getNick())));
}
if (searchPayload->getFirst()) {
searchElement.addNode(XMLElement::ref(new XMLElement("first", "", *searchPayload->getFirst())));
}
if (searchPayload->getLast()) {
searchElement.addNode(XMLElement::ref(new XMLElement("last", "", *searchPayload->getLast())));
}
if (searchPayload->getEMail()) {
searchElement.addNode(XMLElement::ref(new XMLElement("email", "", *searchPayload->getEMail())));
}
- foreach(const SearchPayload::Item& item, searchPayload->getItems()) {
+ for (const auto& item : searchPayload->getItems()) {
XMLElement::ref itemElement(new XMLElement("item"));
itemElement->setAttribute("jid", item.jid);
itemElement->addNode(XMLElement::ref(new XMLElement("first", "", item.first)));
itemElement->addNode(XMLElement::ref(new XMLElement("last", "", item.last)));
itemElement->addNode(XMLElement::ref(new XMLElement("nick", "", item.nick)));
itemElement->addNode(XMLElement::ref(new XMLElement("email", "", item.email)));
searchElement.addNode(itemElement);
}
if (Form::ref form = searchPayload->getForm()) {
searchElement.addNode(std::make_shared<XMLRawTextNode>(FormSerializer().serialize(form)));
}
return searchElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp b/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
index 97c5411..b8faf73 100644
--- a/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.cpp
@@ -1,47 +1,46 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
SecurityLabelSerializer::SecurityLabelSerializer() : GenericPayloadSerializer<SecurityLabel>() {
}
std::string SecurityLabelSerializer::serializePayload(std::shared_ptr<SecurityLabel> label) const {
XMLElement element("securitylabel", "urn:xmpp:sec-label:0");
if (!label->getDisplayMarking().empty()) {
std::shared_ptr<XMLElement> displayMarking(new XMLElement("displaymarking"));
if (!label->getForegroundColor().empty()) {
displayMarking->setAttribute("fgcolor", label->getForegroundColor());
}
if (!label->getBackgroundColor().empty()) {
displayMarking->setAttribute("bgcolor", label->getBackgroundColor());
}
displayMarking->addNode(std::make_shared<XMLTextNode>(label->getDisplayMarking()));
element.addNode(displayMarking);
}
std::shared_ptr<XMLElement> labelElement(new XMLElement("label"));
labelElement->addNode(std::make_shared<XMLRawTextNode>(label->getLabel()));
element.addNode(labelElement);
- foreach(const std::string& equivalentLabel, label->getEquivalentLabels()) {
+ for (const auto& equivalentLabel : label->getEquivalentLabels()) {
std::shared_ptr<XMLElement> equivalentLabelElement(new XMLElement("equivalentlabel"));
equivalentLabelElement->addNode(std::make_shared<XMLRawTextNode>(equivalentLabel));
element.addNode(equivalentLabelElement);
}
return element.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp b/Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp
index e8d2a1b..36401a6 100644
--- a/Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp
@@ -1,47 +1,46 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
SecurityLabelsCatalogSerializer::SecurityLabelsCatalogSerializer() : GenericPayloadSerializer<SecurityLabelsCatalog>() {
}
std::string SecurityLabelsCatalogSerializer::serializePayload(std::shared_ptr<SecurityLabelsCatalog> catalog) const {
XMLElement element("catalog", "urn:xmpp:sec-label:catalog:2");
if (!catalog->getName().empty()) {
element.setAttribute("name", catalog->getName());
}
if (catalog->getTo().isValid()) {
element.setAttribute("to", catalog->getTo());
}
if (!catalog->getDescription().empty()) {
element.setAttribute("desc", catalog->getDescription());
}
- foreach (const SecurityLabelsCatalog::Item& item, catalog->getItems()) {
+ for (const auto& item : catalog->getItems()) {
std::shared_ptr<XMLElement> itemElement(new XMLElement("item"));
itemElement->setAttribute("selector", item.getSelector());
if (item.getIsDefault()) {
itemElement->setAttribute("default", "true");
}
if (item.getLabel()) {
std::string serializedLabel = SecurityLabelSerializer().serialize(item.getLabel());
itemElement->addNode(std::make_shared<XMLRawTextNode>(serializedLabel));
}
element.addNode(itemElement);
}
return element.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/StorageSerializer.cpp b/Swiften/Serializer/PayloadSerializers/StorageSerializer.cpp
index 31720f7..ffebcf4 100644
--- a/Swiften/Serializer/PayloadSerializers/StorageSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/StorageSerializer.cpp
@@ -1,51 +1,50 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/StorageSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
StorageSerializer::StorageSerializer() : GenericPayloadSerializer<Storage>() {
}
std::string StorageSerializer::serializePayload(std::shared_ptr<Storage> storage) const {
XMLElement storageElement("storage", "storage:bookmarks");
- foreach(const Storage::Room& room, storage->getRooms()) {
+ for (const auto& room : storage->getRooms()) {
std::shared_ptr<XMLElement> conferenceElement(new XMLElement("conference"));
conferenceElement->setAttribute("name", room.name);
conferenceElement->setAttribute("jid", room.jid);
conferenceElement->setAttribute("autojoin", room.autoJoin ? "1" : "0");
if (!room.nick.empty()) {
std::shared_ptr<XMLElement> nickElement(new XMLElement("nick"));
nickElement->addNode(std::make_shared<XMLTextNode>(room.nick));
conferenceElement->addNode(nickElement);
}
if (room.password) {
std::shared_ptr<XMLElement> passwordElement(new XMLElement("password"));
passwordElement->addNode(std::make_shared<XMLTextNode>(*room.password));
conferenceElement->addNode(passwordElement);
}
storageElement.addNode(conferenceElement);
}
- foreach(const Storage::URL& url, storage->getURLs()) {
+ for (const auto& url : storage->getURLs()) {
std::shared_ptr<XMLElement> urlElement(new XMLElement("url"));
urlElement->setAttribute("name", url.name);
urlElement->setAttribute("url", url.url);
storageElement.addNode(urlElement);
}
return storageElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp b/Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp
index e15ab77..ba296f9 100644
--- a/Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp
@@ -1,50 +1,49 @@
/*
* Copyright (c) 2011 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.h>
#include <memory>
#include <boost/lexical_cast.hpp>
#include <Swiften/Base/DateTime.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
StreamInitiationFileInfoSerializer::StreamInitiationFileInfoSerializer() {
}
std::string StreamInitiationFileInfoSerializer::serializePayload(std::shared_ptr<StreamInitiationFileInfo> fileInfo) const {
XMLElement fileElement("file", "http://jabber.org/protocol/si/profile/file-transfer");
if (fileInfo->getDate() != stringToDateTime("")) {
fileElement.setAttribute("date", dateTimeToString(fileInfo->getDate()));
}
fileElement.setAttribute("hash", fileInfo->getHash());
if (fileInfo->getAlgo() != "md5") {
fileElement.setAttribute("algo", fileInfo->getAlgo());
}
if (!fileInfo->getName().empty()) {
fileElement.setAttribute("name", fileInfo->getName());
}
if (fileInfo->getSize() != 0) {
fileElement.setAttribute("size", boost::lexical_cast<std::string>(fileInfo->getSize()));
}
if (!fileInfo->getDescription().empty()) {
std::shared_ptr<XMLElement> desc = std::make_shared<XMLElement>("desc", "", fileInfo->getDescription());
fileElement.addNode(desc);
}
if (fileInfo->getSupportsRangeRequests()) {
diff --git a/Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.cpp b/Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.cpp
index fcfb063..3faa5b7 100644
--- a/Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.cpp
@@ -1,75 +1,74 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.h>
#include <memory>
#include <memory>
#include <boost/lexical_cast.hpp>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/PayloadSerializers/FormSerializer.h>
#define FILE_TRANSFER_NS "http://jabber.org/protocol/si/profile/file-transfer"
#define FEATURE_NEG_NS "http://jabber.org/protocol/feature-neg"
namespace Swift {
StreamInitiationSerializer::StreamInitiationSerializer() {
}
std::string StreamInitiationSerializer::serializePayload(std::shared_ptr<StreamInitiation> streamInitiation) const {
assert(streamInitiation->getIsFileTransfer());
XMLElement siElement("si", "http://jabber.org/protocol/si");
if (!streamInitiation->getID().empty()) {
siElement.setAttribute("id", streamInitiation->getID());
}
siElement.setAttribute("profile", FILE_TRANSFER_NS);
if (streamInitiation->getFileInfo()) {
StreamInitiationFileInfo file = *streamInitiation->getFileInfo();
std::shared_ptr<XMLElement> fileElement(new XMLElement("file", "http://jabber.org/protocol/si/profile/file-transfer"));
fileElement->setAttribute("name", file.getName());
if (file.getSize() != 0) {
fileElement->setAttribute("size", boost::lexical_cast<std::string>(file.getSize()));
}
if (!file.getDescription().empty()) {
std::shared_ptr<XMLElement> descElement(new XMLElement("desc"));
descElement->addNode(std::make_shared<XMLTextNode>(file.getDescription()));
fileElement->addNode(descElement);
}
siElement.addNode(fileElement);
}
std::shared_ptr<XMLElement> featureElement(new XMLElement("feature", FEATURE_NEG_NS));
if (streamInitiation->getProvidedMethods().size() > 0) {
Form::ref form(new Form(Form::FormType));
FormField::ref field = std::make_shared<FormField>(FormField::ListSingleType);
field->setName("stream-method");
- foreach(const std::string& method, streamInitiation->getProvidedMethods()) {
+ for (const auto& method : streamInitiation->getProvidedMethods()) {
field->addOption(FormField::Option("", method));
}
form->addField(field);
featureElement->addNode(std::make_shared<XMLRawTextNode>(FormSerializer().serialize(form)));
}
else if (!streamInitiation->getRequestedMethod().empty()) {
Form::ref form(new Form(Form::SubmitType));
FormField::ref field = std::make_shared<FormField>(FormField::ListSingleType);
field->addValue(streamInitiation->getRequestedMethod());
field->setName("stream-method");
form->addField(field);
featureElement->addNode(std::make_shared<XMLRawTextNode>(FormSerializer().serialize(form)));
}
siElement.addNode(featureElement);
return siElement.serialize();
}
}
diff --git a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp
index a1393cb..725d125 100644
--- a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp
@@ -1,250 +1,249 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/PayloadSerializers/VCardSerializer.h>
#include <memory>
#include <Swiften/Base/DateTime.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Swiften/StringCodecs/Base64.h>
namespace Swift {
VCardSerializer::VCardSerializer() : GenericPayloadSerializer<VCard>() {
}
std::string VCardSerializer::serializePayload(std::shared_ptr<VCard> vcard) const {
XMLElement queryElement("vCard", "vcard-temp");
if (!vcard->getVersion().empty()) {
queryElement.addNode(std::make_shared<XMLElement>("VERSION", "", vcard->getVersion()));
}
if (!vcard->getFullName().empty()) {
queryElement.addNode(std::make_shared<XMLElement>("FN", "", vcard->getFullName()));
}
if (!vcard->getGivenName().empty() || !vcard->getFamilyName().empty() || !vcard->getMiddleName().empty() || !vcard->getPrefix().empty() || !vcard->getSuffix().empty()) {
std::shared_ptr<XMLElement> nameElement(new XMLElement("N"));
if (!vcard->getFamilyName().empty()) {
nameElement->addNode(std::make_shared<XMLElement>("FAMILY", "", vcard->getFamilyName()));
}
if (!vcard->getGivenName().empty()) {
nameElement->addNode(std::make_shared<XMLElement>("GIVEN", "", vcard->getGivenName()));
}
if (!vcard->getMiddleName().empty()) {
nameElement->addNode(std::make_shared<XMLElement>("MIDDLE", "", vcard->getMiddleName()));
}
if (!vcard->getPrefix().empty()) {
nameElement->addNode(std::make_shared<XMLElement>("PREFIX", "", vcard->getPrefix()));
}
if (!vcard->getSuffix().empty()) {
nameElement->addNode(std::make_shared<XMLElement>("SUFFIX", "", vcard->getSuffix()));
}
queryElement.addNode(nameElement);
}
- foreach(const VCard::EMailAddress& emailAddress, vcard->getEMailAddresses()) {
+ for (const auto& emailAddress : vcard->getEMailAddresses()) {
std::shared_ptr<XMLElement> emailElement(new XMLElement("EMAIL"));
emailElement->addNode(std::make_shared<XMLElement>("USERID", "", emailAddress.address));
if (emailAddress.isHome) {
emailElement->addNode(std::make_shared<XMLElement>("HOME"));
}
if (emailAddress.isWork) {
emailElement->addNode(std::make_shared<XMLElement>("WORK"));
}
if (emailAddress.isInternet) {
emailElement->addNode(std::make_shared<XMLElement>("INTERNET"));
}
if (emailAddress.isPreferred) {
emailElement->addNode(std::make_shared<XMLElement>("PREF"));
}
if (emailAddress.isX400) {
emailElement->addNode(std::make_shared<XMLElement>("X400"));
}
queryElement.addNode(emailElement);
}
if (!vcard->getNickname().empty()) {
queryElement.addNode(std::make_shared<XMLElement>("NICKNAME", "", vcard->getNickname()));
}
if (!vcard->getPhoto().empty() || !vcard->getPhotoType().empty()) {
XMLElement::ref photoElement(new XMLElement("PHOTO"));
if (!vcard->getPhotoType().empty()) {
photoElement->addNode(std::make_shared<XMLElement>("TYPE", "", vcard->getPhotoType()));
}
if (!vcard->getPhoto().empty()) {
photoElement->addNode(std::make_shared<XMLElement>("BINVAL", "", Base64::encode(vcard->getPhoto())));
}
queryElement.addNode(photoElement);
}
if (!vcard->getBirthday().is_not_a_date_time()) {
queryElement.addNode(std::make_shared<XMLElement>("BDAY", "", dateTimeToString(vcard->getBirthday())));
}
- foreach(const VCard::Telephone& telephone, vcard->getTelephones()) {
+ for (const auto& telephone : vcard->getTelephones()) {
std::shared_ptr<XMLElement> telElement(new XMLElement("TEL"));
telElement->addNode(std::make_shared<XMLElement>("NUMBER", "", telephone.number));
if (telephone.isHome) {
telElement->addNode(std::make_shared<XMLElement>("HOME"));
}
if (telephone.isWork) {
telElement->addNode(std::make_shared<XMLElement>("WORK"));
}
if (telephone.isVoice) {
telElement->addNode(std::make_shared<XMLElement>("VOICE"));
}
if (telephone.isFax) {
telElement->addNode(std::make_shared<XMLElement>("FAX"));
}
if (telephone.isPager) {
telElement->addNode(std::make_shared<XMLElement>("PAGER"));
}
if (telephone.isMSG) {
telElement->addNode(std::make_shared<XMLElement>("MSG"));
}
if (telephone.isCell) {
telElement->addNode(std::make_shared<XMLElement>("CELL"));
}
if (telephone.isVideo) {
telElement->addNode(std::make_shared<XMLElement>("VIDEO"));
}
if (telephone.isBBS) {
telElement->addNode(std::make_shared<XMLElement>("BBS"));
}
if (telephone.isModem) {
telElement->addNode(std::make_shared<XMLElement>("MODEM"));
}
if (telephone.isISDN) {
telElement->addNode(std::make_shared<XMLElement>("ISDN"));
}
if (telephone.isPCS) {
telElement->addNode(std::make_shared<XMLElement>("PCS"));
}
if (telephone.isPreferred) {
telElement->addNode(std::make_shared<XMLElement>("PREF"));
}
queryElement.addNode(telElement);
}
- foreach(const VCard::Address& address, vcard->getAddresses()) {
+ for (const auto& address : vcard->getAddresses()) {
std::shared_ptr<XMLElement> adrElement = std::make_shared<XMLElement>("ADR");
if (!address.poBox.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("POBOX", "", address.poBox));
}
if (!address.addressExtension.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("EXTADD", "", address.addressExtension));
}
if (!address.street.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("STREET", "", address.street));
}
if (!address.locality.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("LOCALITY", "", address.locality));
}
if (!address.region.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("REGION", "", address.region));
}
if (!address.postalCode.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("PCODE", "", address.postalCode));
}
if (!address.country.empty()) {
adrElement->addNode(std::make_shared<XMLElement>("CTRY", "", address.country));
}
if (address.isHome) {
adrElement->addNode(std::make_shared<XMLElement>("HOME"));
}
if (address.isWork) {
adrElement->addNode(std::make_shared<XMLElement>("WORK"));
}
if (address.isPostal) {
adrElement->addNode(std::make_shared<XMLElement>("POSTAL"));
}
if (address.isParcel) {
adrElement->addNode(std::make_shared<XMLElement>("PARCEL"));
}
if (address.deliveryType == VCard::DomesticDelivery) {
adrElement->addNode(std::make_shared<XMLElement>("DOM"));
}
if (address.deliveryType == VCard::InternationalDelivery) {
adrElement->addNode(std::make_shared<XMLElement>("INTL"));
}
if (address.isPreferred) {
adrElement->addNode(std::make_shared<XMLElement>("PREF"));
}
queryElement.addNode(adrElement);
}
- foreach(const VCard::AddressLabel& addressLabel, vcard->getAddressLabels()) {
+ for (const auto& addressLabel : vcard->getAddressLabels()) {
std::shared_ptr<XMLElement> labelElement = std::make_shared<XMLElement>("LABEL");
- foreach(const std::string& line, addressLabel.lines) {
+ for (const auto& line : addressLabel.lines) {
labelElement->addNode(std::make_shared<XMLElement>("LINE", "", line));
}
if (addressLabel.isHome) {
labelElement->addNode(std::make_shared<XMLElement>("HOME"));
}
if (addressLabel.isWork) {
labelElement->addNode(std::make_shared<XMLElement>("WORK"));
}
if (addressLabel.isPostal) {
labelElement->addNode(std::make_shared<XMLElement>("POSTAL"));
}
if (addressLabel.isParcel) {
labelElement->addNode(std::make_shared<XMLElement>("PARCEL"));
}
if (addressLabel.deliveryType == VCard::DomesticDelivery) {
labelElement->addNode(std::make_shared<XMLElement>("DOM"));
}
if (addressLabel.deliveryType == VCard::InternationalDelivery) {
labelElement->addNode(std::make_shared<XMLElement>("INTL"));
}
if (addressLabel.isPreferred) {
labelElement->addNode(std::make_shared<XMLElement>("PREF"));
}
queryElement.addNode(labelElement);
}
- foreach(const JID& jid, vcard->getJIDs()) {
+ for (const auto& jid : vcard->getJIDs()) {
queryElement.addNode(std::make_shared<XMLElement>("JID", "", jid.toString()));
}
if (!vcard->getDescription().empty()) {
queryElement.addNode(std::make_shared<XMLElement>("DESC", "", vcard->getDescription()));
}
- foreach(const VCard::Organization& org, vcard->getOrganizations()) {
+ for (const auto& org : vcard->getOrganizations()) {
std::shared_ptr<XMLElement> orgElement = std::make_shared<XMLElement>("ORG");
if (!org.name.empty()) {
orgElement->addNode(std::make_shared<XMLElement>("ORGNAME", "", org.name));
}
if (!org.units.empty()) {
- foreach(const std::string& unit, org.units) {
+ for (const auto& unit : org.units) {
orgElement->addNode(std::make_shared<XMLElement>("ORGUNIT", "", unit));
}
}
queryElement.addNode(orgElement);
}
- foreach(const std::string& title, vcard->getTitles()) {
+ for (const auto& title : vcard->getTitles()) {
queryElement.addNode(std::make_shared<XMLElement>("TITLE", "", title));
}
- foreach(const std::string& role, vcard->getRoles()) {
+ for (const auto& role : vcard->getRoles()) {
queryElement.addNode(std::make_shared<XMLElement>("ROLE", "", role));
}
- foreach(const std::string& url, vcard->getURLs()) {
+ for (const auto& url : vcard->getURLs()) {
queryElement.addNode(std::make_shared<XMLElement>("URL", "", url));
}
if (!vcard->getUnknownContent().empty()) {
queryElement.addNode(std::make_shared<XMLRawTextNode>(vcard->getUnknownContent()));
}
return queryElement.serialize();
}
}
diff --git a/Swiften/Serializer/StanzaSerializer.cpp b/Swiften/Serializer/StanzaSerializer.cpp
index 6440fbb..f2f5529 100644
--- a/Swiften/Serializer/StanzaSerializer.cpp
+++ b/Swiften/Serializer/StanzaSerializer.cpp
@@ -1,66 +1,65 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/StanzaSerializer.h>
#include <sstream>
#include <typeinfo>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/Stanza.h>
#include <Swiften/Serializer/PayloadSerializer.h>
#include <Swiften/Serializer/PayloadSerializerCollection.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
namespace Swift {
StanzaSerializer::StanzaSerializer(const std::string& tag, PayloadSerializerCollection* payloadSerializers, const boost::optional<std::string>& explicitNS) : tag_(tag), payloadSerializers_(payloadSerializers), explicitDefaultNS_(explicitNS) {
}
SafeByteArray StanzaSerializer::serialize(std::shared_ptr<ToplevelElement> element) const {
if (explicitDefaultNS_) {
return serialize(element, explicitDefaultNS_.get());
}
else {
return serialize(element, "");
}
}
SafeByteArray StanzaSerializer::serialize(std::shared_ptr<ToplevelElement> element, const std::string& xmlns) const {
std::shared_ptr<Stanza> stanza(std::dynamic_pointer_cast<Stanza>(element));
XMLElement stanzaElement(tag_, explicitDefaultNS_ ? explicitDefaultNS_.get() : xmlns);
if (stanza->getFrom().isValid()) {
stanzaElement.setAttribute("from", stanza->getFrom());
}
if (stanza->getTo().isValid()) {
stanzaElement.setAttribute("to", stanza->getTo());
}
if (!stanza->getID().empty()) {
stanzaElement.setAttribute("id", stanza->getID());
}
setStanzaSpecificAttributes(stanza, stanzaElement);
std::string serializedPayloads;
- foreach (const std::shared_ptr<Payload>& payload, stanza->getPayloads()) {
+ for (const auto& payload : stanza->getPayloads()) {
PayloadSerializer* serializer = payloadSerializers_->getPayloadSerializer(payload);
if (serializer) {
serializedPayloads += serializer->serialize(payload);
}
else {
SWIFT_LOG(warning) << "Could not find serializer for " << typeid(*(payload.get())).name() << std::endl;
}
}
if (!serializedPayloads.empty()) {
stanzaElement.addNode(std::make_shared<XMLRawTextNode>(serializedPayloads));
}
return createSafeByteArray(stanzaElement.serialize());
}
}
diff --git a/Swiften/Serializer/StreamFeaturesSerializer.cpp b/Swiften/Serializer/StreamFeaturesSerializer.cpp
index 820b96c..2534db0 100644
--- a/Swiften/Serializer/StreamFeaturesSerializer.cpp
+++ b/Swiften/Serializer/StreamFeaturesSerializer.cpp
@@ -1,60 +1,59 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/StreamFeaturesSerializer.h>
#include <memory>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
StreamFeaturesSerializer::StreamFeaturesSerializer() {
}
SafeByteArray StreamFeaturesSerializer::serialize(std::shared_ptr<ToplevelElement> element) const {
std::shared_ptr<StreamFeatures> streamFeatures(std::dynamic_pointer_cast<StreamFeatures>(element));
XMLElement streamFeaturesElement("stream:features");
if (streamFeatures->hasStartTLS()) {
streamFeaturesElement.addNode(std::make_shared<XMLElement>("starttls", "urn:ietf:params:xml:ns:xmpp-tls"));
}
if (!streamFeatures->getCompressionMethods().empty()) {
std::shared_ptr<XMLElement> compressionElement(new XMLElement("compression", "http://jabber.org/features/compress"));
- foreach(const std::string& method, streamFeatures->getCompressionMethods()) {
+ for (const auto& method : streamFeatures->getCompressionMethods()) {
std::shared_ptr<XMLElement> methodElement(new XMLElement("method"));
methodElement->addNode(std::make_shared<XMLTextNode>(method));
compressionElement->addNode(methodElement);
}
streamFeaturesElement.addNode(compressionElement);
}
if (!streamFeatures->getAuthenticationMechanisms().empty()) {
std::shared_ptr<XMLElement> mechanismsElement(new XMLElement("mechanisms", "urn:ietf:params:xml:ns:xmpp-sasl"));
- foreach(const std::string& mechanism, streamFeatures->getAuthenticationMechanisms()) {
+ for (const auto& mechanism : streamFeatures->getAuthenticationMechanisms()) {
std::shared_ptr<XMLElement> mechanismElement(new XMLElement("mechanism"));
mechanismElement->addNode(std::make_shared<XMLTextNode>(mechanism));
mechanismsElement->addNode(mechanismElement);
}
streamFeaturesElement.addNode(mechanismsElement);
}
if (streamFeatures->hasResourceBind()) {
streamFeaturesElement.addNode(std::make_shared<XMLElement>("bind", "urn:ietf:params:xml:ns:xmpp-bind"));
}
if (streamFeatures->hasSession()) {
streamFeaturesElement.addNode(std::make_shared<XMLElement>("session", "urn:ietf:params:xml:ns:xmpp-session"));
}
if (streamFeatures->hasStreamManagement()) {
streamFeaturesElement.addNode(std::make_shared<XMLElement>("sm", "urn:xmpp:sm:2"));
}
if (streamFeatures->hasRosterVersioning()) {
streamFeaturesElement.addNode(std::make_shared<XMLElement>("ver", "urn:xmpp:features:rosterver"));
}
return createSafeByteArray(streamFeaturesElement.serialize());
}
}
diff --git a/Swiften/Serializer/XML/XMLElement.cpp b/Swiften/Serializer/XML/XMLElement.cpp
index 4a874ab..f2397ca 100644
--- a/Swiften/Serializer/XML/XMLElement.cpp
+++ b/Swiften/Serializer/XML/XMLElement.cpp
@@ -1,60 +1,58 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/XML/XMLElement.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
namespace Swift {
XMLElement::XMLElement(const std::string& tag, const std::string& xmlns, const std::string& text) : tag_(tag) {
if (!xmlns.empty()) {
setAttribute("xmlns", xmlns);
}
if (!text.empty()) {
addNode(XMLTextNode::ref(new XMLTextNode(text)));
}
}
std::string XMLElement::serialize() {
std::string result;
result += "<" + tag_;
- typedef std::pair<std::string,std::string> Pair;
- foreach(const Pair& p, attributes_) {
+ for (const auto& p : attributes_) {
result += " " + p.first + "=\"" + p.second + "\"";
}
if (!childNodes_.empty()) {
result += ">";
- foreach (std::shared_ptr<XMLNode> node, childNodes_) {
+ for (auto& node : childNodes_) {
result += node->serialize();
}
result += "</" + tag_ + ">";
}
else {
result += "/>";
}
return result;
}
void XMLElement::setAttribute(const std::string& attribute, const std::string& value) {
std::string escapedValue(value);
String::replaceAll(escapedValue, '&', "&amp;");
String::replaceAll(escapedValue, '<', "&lt;");
String::replaceAll(escapedValue, '>', "&gt;");
String::replaceAll(escapedValue, '\'', "&apos;");
String::replaceAll(escapedValue, '"', "&quot;");
attributes_[attribute] = escapedValue;
}
void XMLElement::addNode(std::shared_ptr<XMLNode> node) {
if (node) {
childNodes_.push_back(node);
}
}
}
diff --git a/Swiften/Serializer/XMPPSerializer.cpp b/Swiften/Serializer/XMPPSerializer.cpp
index 08b5485..9cde777 100644
--- a/Swiften/Serializer/XMPPSerializer.cpp
+++ b/Swiften/Serializer/XMPPSerializer.cpp
@@ -1,45 +1,44 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Serializer/XMPPSerializer.h>
#include <cassert>
#include <memory>
#include <boost/bind.hpp>
#include <Swiften/Base/Log.h>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/ProtocolHeader.h>
#include <Swiften/Serializer/AuthChallengeSerializer.h>
#include <Swiften/Serializer/AuthFailureSerializer.h>
#include <Swiften/Serializer/AuthRequestSerializer.h>
#include <Swiften/Serializer/AuthResponseSerializer.h>
#include <Swiften/Serializer/AuthSuccessSerializer.h>
#include <Swiften/Serializer/ComponentHandshakeSerializer.h>
#include <Swiften/Serializer/CompressFailureSerializer.h>
#include <Swiften/Serializer/CompressRequestSerializer.h>
#include <Swiften/Serializer/EnableStreamManagementSerializer.h>
#include <Swiften/Serializer/IQSerializer.h>
#include <Swiften/Serializer/MessageSerializer.h>
#include <Swiften/Serializer/PresenceSerializer.h>
#include <Swiften/Serializer/StanzaAckRequestSerializer.h>
#include <Swiften/Serializer/StanzaAckSerializer.h>
#include <Swiften/Serializer/StartTLSFailureSerializer.h>
#include <Swiften/Serializer/StartTLSRequestSerializer.h>
#include <Swiften/Serializer/StreamErrorSerializer.h>
#include <Swiften/Serializer/StreamFeaturesSerializer.h>
#include <Swiften/Serializer/StreamManagementEnabledSerializer.h>
#include <Swiften/Serializer/StreamManagementFailedSerializer.h>
#include <Swiften/Serializer/StreamResumeSerializer.h>
#include <Swiften/Serializer/StreamResumedSerializer.h>
#include <Swiften/Serializer/TLSProceedSerializer.h>
namespace Swift {
XMPPSerializer::XMPPSerializer(PayloadSerializerCollection* payloadSerializers, StreamType type, bool setExplictNSonTopLevelElements) : type_(type) {
serializers_.push_back(std::make_shared<PresenceSerializer>(payloadSerializers, setExplictNSonTopLevelElements ? getDefaultNamespace() : boost::optional<std::string>()));
serializers_.push_back(std::make_shared<IQSerializer>(payloadSerializers, setExplictNSonTopLevelElements ? getDefaultNamespace() : boost::optional<std::string>()));