/* * Copyright (c) 2011 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include namespace Swift { template class ResponseSink { public: ResponseSink() : responseReceived(false) { } bool hasResponse() const { return responseReceived; } boost::shared_ptr getResponsePayload() const { return payload; } ErrorPayload::ref getResponseError() const { return error; } void operator()(boost::shared_ptr payload, ErrorPayload::ref error) { this->payload = payload; this->error = error; this->responseReceived = true; } void operator()(ErrorPayload::ref error) { this->error = error; this->responseReceived = true; } private: bool responseReceived; boost::shared_ptr payload; ErrorPayload::ref error; }; }