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. 7 8 #ifndef NET_URL_REQUEST_URL_REQUEST_STATUS_H_ 9 #define NET_URL_REQUEST_URL_REQUEST_STATUS_H_ 10 11 namespace net { 12 13 // Represents the result of a URL request. It encodes errors and various 14 // types of success. 15 class URLRequestStatus { 16 public: 17 enum Status { 18 // Request succeeded, |error_| will be 0. 19 SUCCESS = 0, 20 21 // An IO request is pending, and the caller will be informed when it is 22 // completed. 23 IO_PENDING, 24 25 // Request was cancelled programatically. 26 CANCELED, 27 28 // The request failed for some reason. |error_| may have more information. 29 FAILED, 30 }; 31 URLRequestStatus()32 URLRequestStatus() : status_(SUCCESS), error_(0) {} URLRequestStatus(Status s,int e)33 URLRequestStatus(Status s, int e) : status_(s), error_(e) {} 34 status()35 Status status() const { return status_; } set_status(Status s)36 void set_status(Status s) { status_ = s; } 37 error()38 int error() const { return error_; } set_error(int e)39 void set_error(int e) { error_ = e; } 40 41 // Returns true if the status is success, which makes some calling code more 42 // convenient because this is the most common test. is_success()43 bool is_success() const { 44 return status_ == SUCCESS || status_ == IO_PENDING; 45 } 46 47 // Returns true if the request is waiting for IO. is_io_pending()48 bool is_io_pending() const { 49 return status_ == IO_PENDING; 50 } 51 52 private: 53 // Application level status. 54 Status status_; 55 56 // Error code from the network layer if an error was encountered. 57 int error_; 58 }; 59 60 } // namespace net 61 62 #endif // NET_URL_REQUEST_URL_REQUEST_STATUS_H_ 63