1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONDITIONS_H_
6#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONDITIONS_H_
7
8#include <string>
9#include <vector>
10
11#include "base/macros.h"
12
13class GURL;
14
15// DevToolsNetworkConditions holds information about desired network conditions.
16class DevToolsNetworkConditions {
17 public:
18  DevToolsNetworkConditions();
19  ~DevToolsNetworkConditions();
20
21  explicit DevToolsNetworkConditions(bool offline);
22  DevToolsNetworkConditions(bool offline,
23                            double latency,
24                            double download_throughput,
25                            double upload_throughput);
26
27  bool IsThrottling() const;
28
29  bool offline() const { return offline_; }
30  double latency() const { return latency_; }
31  double download_throughput() const { return download_throughput_; }
32  double upload_throughput() const { return upload_throughput_; }
33
34 private:
35  const bool offline_;
36  const double latency_;
37  const double download_throughput_;
38  const double upload_throughput_;
39
40  DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkConditions);
41};
42
43#endif  // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONDITIONS_H_
44