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 // Enumeration type for HTTP Content-Type.
61 enum HttpContentType {
62   kHttpContentTypeUnspecified = 0,
63   kHttpContentTypeTextXml,
64 };
65 
66 // Returns a standard HTTP Content-Type string.
67 const char* GetHttpContentTypeString(HttpContentType type);
68 
69 }  // namespace chromeos_update_engine
70 
71 #endif  // UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
72