Index: remoting/protocol/http_ice_config_request.h |
diff --git a/remoting/protocol/http_ice_config_request.h b/remoting/protocol/http_ice_config_request.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3610e92881f0803a65ae6d9c1909fb903debce0e |
--- /dev/null |
+++ b/remoting/protocol/http_ice_config_request.h |
@@ -0,0 +1,43 @@ |
+// 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<UrlRequest> url_request_; |
+ OnIceConfigCallback on_ice_config_callback_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(HttpIceConfigRequest); |
+}; |
+ |
+} // namespace protocol |
+} // namespace remoting |
+ |
+#endif // REMOTING_PROTOCOL_HTTP_ICE_CONFIG_REQUEST_H_ |