diff options
Diffstat (limited to 'Swiften/Queries/RawRequest.h')
-rw-r--r-- | Swiften/Queries/RawRequest.h | 69 |
1 files changed, 35 insertions, 34 deletions
diff --git a/Swiften/Queries/RawRequest.h b/Swiften/Queries/RawRequest.h index 0d0336e..76c84f9 100644 --- a/Swiften/Queries/RawRequest.h +++ b/Swiften/Queries/RawRequest.h @@ -1,51 +1,52 @@ /* - * Copyright (c) 2011-2015 Isode Limited. + * Copyright (c) 2011-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once -#include <boost/smart_ptr/make_shared.hpp> +#include <memory> #include <typeinfo> +#include <boost/signals2.hpp> + #include <Swiften/Base/API.h> -#include <Swiften/Base/boost_bsignals.h> -#include <Swiften/Queries/Request.h> -#include <Swiften/Elements/RawXMLPayload.h> #include <Swiften/Elements/ErrorPayload.h> +#include <Swiften/Elements/RawXMLPayload.h> +#include <Swiften/Queries/Request.h> #include <Swiften/Serializer/PayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/ErrorSerializer.h> #include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h> namespace Swift { - class SWIFTEN_API RawRequest : public Request { - public: - typedef boost::shared_ptr<RawRequest> ref; - - static ref create(IQ::Type type, const JID& recipient, const std::string& data, IQRouter* router) { - return ref(new RawRequest(type, recipient, data, router)); - } - - boost::signal<void (const std::string&)> onResponse; - - private: - RawRequest(IQ::Type type, const JID& receiver, const std::string& data, IQRouter* router) : Request(type, receiver, boost::make_shared<RawXMLPayload>(data), router) { - } - - virtual void handleResponse(boost::shared_ptr<Payload> payload, ErrorPayload::ref error) { - if (error) { - onResponse(ErrorSerializer(&serializers).serializePayload(error)); - } - else { - assert(payload); - PayloadSerializer* serializer = serializers.getPayloadSerializer(payload); - assert(serializer); - onResponse(serializer->serialize(payload)); - } - } - - private: - FullPayloadSerializerCollection serializers; - }; + class SWIFTEN_API RawRequest : public Request { + public: + typedef std::shared_ptr<RawRequest> ref; + + static ref create(IQ::Type type, const JID& recipient, const std::string& data, IQRouter* router) { + return ref(new RawRequest(type, recipient, data, router)); + } + + boost::signals2::signal<void (const std::string&)> onResponse; + + private: + RawRequest(IQ::Type type, const JID& receiver, const std::string& data, IQRouter* router) : Request(type, receiver, std::make_shared<RawXMLPayload>(data), router) { + } + + virtual void handleResponse(std::shared_ptr<Payload> payload, ErrorPayload::ref error) { + if (error) { + onResponse(ErrorSerializer(&serializers).serializePayload(error)); + } + else { + assert(payload); + PayloadSerializer* serializer = serializers.getPayloadSerializer(payload); + assert(serializer); + onResponse(serializer->serialize(payload)); + } + } + + private: + FullPayloadSerializerCollection serializers; + }; } |