//
// Copyright (C) 2009 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// This file contains general definitions used in implementing, testing and
// emulating communication over HTTP.
#ifndef UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
#define UPDATE_ENGINE_COMMON_HTTP_COMMON_H_
namespace chromeos_update_engine {
// Enumeration type for HTTP response codes.
enum HttpResponseCode {
kHttpResponseUndefined = 0,
kHttpResponseOk = 200,
kHttpResponseCreated = 201,
kHttpResponseAccepted = 202,
kHttpResponseNonAuthInfo = 203,
kHttpResponseNoContent = 204,
kHttpResponseResetContent = 205,
kHttpResponsePartialContent = 206,
kHttpResponseMultipleChoices = 300,
kHttpResponseMovedPermanently = 301,
kHttpResponseFound = 302,
kHttpResponseSeeOther = 303,
kHttpResponseNotModified = 304,
kHttpResponseUseProxy = 305,
kHttpResponseTempRedirect = 307,
kHttpResponseBadRequest = 400,
kHttpResponseUnauth = 401,
kHttpResponseForbidden = 403,
kHttpResponseNotFound = 404,
kHttpResponseRequestTimeout = 408,
kHttpResponseReqRangeNotSat = 416,
kHttpResponseInternalServerError = 500,
kHttpResponseNotImplemented = 501,
kHttpResponseServiceUnavailable = 503,
kHttpResponseVersionNotSupported = 505,
};
// Returns a standard HTTP status line string for a given response code.
const char *GetHttpResponseDescription(HttpResponseCode code);
// Converts a string beginning with an HTTP error code into numerical value.
HttpResponseCode StringToHttpResponseCode(const char *s);
// Enumeration type for HTTP Content-Type.
enum HttpContentType {
kHttpContentTypeUnspecified = 0,
kHttpContentTypeTextXml,
};
// Returns a standard HTTP Content-Type string.
const char *GetHttpContentTypeString(HttpContentType type);
} // namespace chromeos_update_engine
#endif // UPDATE_ENGINE_COMMON_HTTP_COMMON_H_