Files @ daeb6dfc9a9f
Branch filter:

Location: libtransport.git/include/Swiften/Serializer/PayloadSerializers/StatsSerializer.cpp

Conrad Kostecki
Enable support for Qt5

Since Qt4 is EOL, we should also support libcommuni build with Qt5.
In order not to break Fedora docker builds, -DENABLE_QT4 is introduced.

When set to 'ON', support for Qt4 is being enabled,
otherwise support for Qt5 is enabled.

Signed-off-by: Conrad Kostecki <conrad@kostecki.com>
/*
 * Copyright (c) 2011 Jan Kaluza
 * Licensed under the Simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

#include <boost/foreach.hpp>

#include <Swiften/Serializer/PayloadSerializers/StatsSerializer.h>

#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLElement.h>

#include "Swiften/SwiftenCompat.h"

namespace Swift {

StatsSerializer::StatsSerializer() : GenericPayloadSerializer<StatsPayload>() {
}

std::string StatsSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<StatsPayload> stats)  const {
	XMLElement queryElement("query", "http://jabber.org/protocol/stats");
	BOOST_FOREACH(const StatsPayload::Item& item, stats->getItems()) {
		SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> statElement(new XMLElement("stat"));
		statElement->setAttribute("name", item.getName());
		if (!item.getUnits().empty()) {
			statElement->setAttribute("units", item.getUnits());
		}
		if (!item.getValue().empty()) {
			statElement->setAttribute("value", item.getValue());
		}

		queryElement.addNode(statElement);
	}

	return queryElement.serialize();
}

}