chromeos: bluetooth: add BluetoothInputClient
[chromium-blink-merge.git] / net / url_request / url_request_status.h
blob1e497ab4df6babc5a910ae202d3e5f4f3d67e4bd
1 // Copyright (c) 2011 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 // This file's dependencies should be kept to a minimum so that it can be
6 // included in WebKit code that doesn't rely on much of common.
8 #ifndef NET_URL_REQUEST_URL_REQUEST_STATUS_H_
9 #define NET_URL_REQUEST_URL_REQUEST_STATUS_H_
10 #pragma once
12 namespace net {
14 // Represents the result of a URL request. It encodes errors and various
15 // types of success.
16 class URLRequestStatus {
17 public:
18 enum Status {
19 // Request succeeded, |error_| will be 0.
20 SUCCESS = 0,
22 // An IO request is pending, and the caller will be informed when it is
23 // completed.
24 IO_PENDING,
26 // Request was successful but was handled by an external program, so there
27 // is no response data. This usually means the current page should not be
28 // navigated, but no error should be displayed. |error_| will be 0.
29 HANDLED_EXTERNALLY,
31 // Request was cancelled programatically.
32 CANCELED,
34 // The request failed for some reason. |error_| may have more information.
35 FAILED,
38 URLRequestStatus() : status_(SUCCESS), error_(0) {}
39 URLRequestStatus(Status s, int e) : status_(s), error_(e) {}
41 Status status() const { return status_; }
42 void set_status(Status s) { status_ = s; }
44 int error() const { return error_; }
45 void set_error(int e) { error_ = e; }
47 // Returns true if the status is success, which makes some calling code more
48 // convenient because this is the most common test. Note that we do NOT treat
49 // HANDLED_EXTERNALLY as success. For everything except user notifications,
50 // this value should be handled like an error (processing should stop).
51 bool is_success() const {
52 return status_ == SUCCESS || status_ == IO_PENDING;
55 // Returns true if the request is waiting for IO.
56 bool is_io_pending() const {
57 return status_ == IO_PENDING;
60 private:
61 // Application level status.
62 Status status_;
64 // Error code from the network layer if an error was encountered.
65 int error_;
68 } // namespace net
70 #endif // NET_URL_REQUEST_URL_REQUEST_STATUS_H_