diff options
Diffstat (limited to 'Swiften/Queries/Requests/GetPrivateStorageRequest.h')
-rw-r--r-- | Swiften/Queries/Requests/GetPrivateStorageRequest.h | 69 |
1 files changed, 35 insertions, 34 deletions
diff --git a/Swiften/Queries/Requests/GetPrivateStorageRequest.h b/Swiften/Queries/Requests/GetPrivateStorageRequest.h index b5fd97f..5fb0de5 100644 --- a/Swiften/Queries/Requests/GetPrivateStorageRequest.h +++ b/Swiften/Queries/Requests/GetPrivateStorageRequest.h @@ -1,44 +1,45 @@ /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include <Swiften/Base/boost_bsignals.h> -#include <boost/shared_ptr.hpp> -#include <boost/smart_ptr/make_shared.hpp> +#include <memory> -#include <Swiften/Queries/Request.h> -#include <Swiften/Elements/PrivateStorage.h> +#include <boost/signals2.hpp> + +#include <Swiften/Base/API.h> #include <Swiften/Elements/ErrorPayload.h> +#include <Swiften/Elements/PrivateStorage.h> +#include <Swiften/Queries/Request.h> namespace Swift { - template<typename PAYLOAD_TYPE> - class GetPrivateStorageRequest : public Request { - public: - typedef boost::shared_ptr<GetPrivateStorageRequest<PAYLOAD_TYPE> > ref; - - static ref create(IQRouter* router) { - return ref(new GetPrivateStorageRequest(router)); - } - - private: - GetPrivateStorageRequest(IQRouter* router) : Request(IQ::Get, JID(), boost::make_shared<PrivateStorage>(boost::shared_ptr<Payload>(new PAYLOAD_TYPE())), router) { - } - - virtual void handleResponse(boost::shared_ptr<Payload> payload, ErrorPayload::ref error) { - boost::shared_ptr<PrivateStorage> storage = boost::dynamic_pointer_cast<PrivateStorage>(payload); - if (storage) { - onResponse(boost::dynamic_pointer_cast<PAYLOAD_TYPE>(storage->getPayload()), error); - } - else { - onResponse(boost::shared_ptr<PAYLOAD_TYPE>(), error); - } - } - - public: - boost::signal<void (boost::shared_ptr<PAYLOAD_TYPE>, ErrorPayload::ref)> onResponse; - }; + template<typename PAYLOAD_TYPE> + class SWIFTEN_API GetPrivateStorageRequest : public Request { + public: + typedef std::shared_ptr<GetPrivateStorageRequest<PAYLOAD_TYPE> > ref; + + static ref create(IQRouter* router) { + return ref(new GetPrivateStorageRequest(router)); + } + + private: + GetPrivateStorageRequest(IQRouter* router) : Request(IQ::Get, JID(), std::make_shared<PrivateStorage>(std::make_shared<PAYLOAD_TYPE>()), router) { + } + + virtual void handleResponse(std::shared_ptr<Payload> payload, ErrorPayload::ref error) { + std::shared_ptr<PrivateStorage> storage = std::dynamic_pointer_cast<PrivateStorage>(payload); + if (storage) { + onResponse(std::dynamic_pointer_cast<PAYLOAD_TYPE>(storage->getPayload()), error); + } + else { + onResponse(std::shared_ptr<PAYLOAD_TYPE>(), error); + } + } + + public: + boost::signals2::signal<void (std::shared_ptr<PAYLOAD_TYPE>, ErrorPayload::ref)> onResponse; + }; } |