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