Home | History | Annotate | Download | only in common
      1 //
      2 // Copyright (C) 2009 The Android Open Source Project
      3 //
      4 // Licensed under the Apache License, Version 2.0 (the "License");
      5 // you may not use this file except in compliance with the License.
      6 // You may obtain a copy of the License at
      7 //
      8 //      http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unless required by applicable law or agreed to in writing, software
     11 // distributed under the License is distributed on an "AS IS" BASIS,
     12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 // See the License for the specific language governing permissions and
     14 // limitations under the License.
     15 //
     16 
     17 // This file contains general definitions used in implementing, testing and
     18 // emulating communication over HTTP.
     19 
     20 #ifndef UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
     21 #define UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
     22 
     23 namespace chromeos_update_engine {
     24 
     25 // Enumeration type for HTTP response codes.
     26 enum HttpResponseCode {
     27   kHttpResponseUndefined           = 0,
     28   kHttpResponseOk                  = 200,
     29   kHttpResponseCreated             = 201,
     30   kHttpResponseAccepted            = 202,
     31   kHttpResponseNonAuthInfo         = 203,
     32   kHttpResponseNoContent           = 204,
     33   kHttpResponseResetContent        = 205,
     34   kHttpResponsePartialContent      = 206,
     35   kHttpResponseMultipleChoices     = 300,
     36   kHttpResponseMovedPermanently    = 301,
     37   kHttpResponseFound               = 302,
     38   kHttpResponseSeeOther            = 303,
     39   kHttpResponseNotModified         = 304,
     40   kHttpResponseUseProxy            = 305,
     41   kHttpResponseTempRedirect        = 307,
     42   kHttpResponseBadRequest          = 400,
     43   kHttpResponseUnauth              = 401,
     44   kHttpResponseForbidden           = 403,
     45   kHttpResponseNotFound            = 404,
     46   kHttpResponseRequestTimeout      = 408,
     47   kHttpResponseReqRangeNotSat      = 416,
     48   kHttpResponseInternalServerError = 500,
     49   kHttpResponseNotImplemented      = 501,
     50   kHttpResponseServiceUnavailable  = 503,
     51   kHttpResponseVersionNotSupported = 505,
     52 };
     53 
     54 // Returns a standard HTTP status line string for a given response code.
     55 const char *GetHttpResponseDescription(HttpResponseCode code);
     56 
     57 // Converts a string beginning with an HTTP error code into numerical value.
     58 HttpResponseCode StringToHttpResponseCode(const char *s);
     59 
     60 
     61 // Enumeration type for HTTP Content-Type.
     62 enum HttpContentType {
     63   kHttpContentTypeUnspecified = 0,
     64   kHttpContentTypeTextXml,
     65 };
     66 
     67 // Returns a standard HTTP Content-Type string.
     68 const char *GetHttpContentTypeString(HttpContentType type);
     69 
     70 }  // namespace chromeos_update_engine
     71 
     72 #endif  // UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
     73