// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_PROTOCOL_HTTP_ICE_CONFIG_REQUEST_H_ #define REMOTING_PROTOCOL_HTTP_ICE_CONFIG_REQUEST_H_ #include "base/callback.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "remoting/base/url_request.h" #include "remoting/protocol/ice_config_request.h" namespace remoting { namespace protocol { // IceConfigRequest that fetches IceConfig from using HTTP. If the config has // been fetched succesfully but some parts couldn't be parsed then the returned // config contains all entries that were parsed successfully and // |expiration_time| is set to Now, i.e. the config is considered expired. class HttpIceConfigRequest : public IceConfigRequest { public: HttpIceConfigRequest(UrlRequestFactory* url_request_factory, const std::string& url); ~HttpIceConfigRequest() override; // IceConfigRequest interface. void Send(const OnIceConfigCallback& callback) override; private: void OnResponse(const UrlRequest::Result& result); std::string url_; scoped_ptr url_request_; OnIceConfigCallback on_ice_config_callback_; DISALLOW_COPY_AND_ASSIGN(HttpIceConfigRequest); }; } // namespace protocol } // namespace remoting #endif // REMOTING_PROTOCOL_HTTP_ICE_CONFIG_REQUEST_H_