| Index: remoting/base/url_request.h
|
| diff --git a/remoting/base/url_request.h b/remoting/base/url_request.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ab1d674f09d2925cf178dbe552919fc775c48b9e
|
| --- /dev/null
|
| +++ b/remoting/base/url_request.h
|
| @@ -0,0 +1,58 @@
|
| +// 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_BASE_URL_REQUEST_H_
|
| +#define REMOTING_BASE_URL_REQUEST_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/callback_forward.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +
|
| +namespace remoting {
|
| +
|
| +// Abstract interface for URL requests.
|
| +class UrlRequest {
|
| + public:
|
| + struct Result {
|
| + Result() = default;
|
| + Result(int status, std::string response_body)
|
| + : success(true), status(status), response_body(response_body) {}
|
| +
|
| + static Result Failed() { return Result(); }
|
| +
|
| + // Set to true when the URL has been fetched successfully.
|
| + bool success = false;
|
| +
|
| + // HTTP status code received from the server. Valid only when |success| is
|
| + // set to true.
|
| + int status = 0;
|
| +
|
| + // Body of the response received from the server. Valid only when |success|
|
| + // is set to true.
|
| + std::string response_body;
|
| + };
|
| +
|
| + typedef base::Callback<void(const Result& result)> OnResultCallback;
|
| +
|
| + virtual ~UrlRequest() {}
|
| +
|
| + // Adds an HTTP header to the request. Has no effect if called after Start().
|
| + virtual void AddHeader(const std::string& value) = 0;
|
| +
|
| + // Sends a request to the server. |on_response_callback| will be called to
|
| + // return result of the request.
|
| + virtual void Start(const OnResultCallback& on_result_callback) = 0;
|
| +};
|
| +
|
| +// Factory for UrlRequest instances.
|
| +class UrlRequestFactory {
|
| + public:
|
| + virtual ~UrlRequestFactory() {}
|
| + virtual scoped_ptr<UrlRequest> CreateUrlRequest(const std::string& url) = 0;
|
| +};
|
| +
|
| +} // namespace remoting
|
| +
|
| +#endif // REMOTING_BASE_URL_REQUEST_H_
|
|
|