Page Speed Optimization Libraries  1.2.24.1
net/instaweb/http/public/request_headers.h
Go to the documentation of this file.
00001 // Copyright 2011 Google Inc.
00014 
00016 
00017 #ifndef NET_INSTAWEB_HTTP_PUBLIC_REQUEST_HEADERS_H_
00018 #define NET_INSTAWEB_HTTP_PUBLIC_REQUEST_HEADERS_H_
00019 
00020 #include "net/instaweb/util/public/basictypes.h"
00021 #include "net/instaweb/http/public/headers.h"
00022 #include "net/instaweb/util/public/string.h"
00023 #include "net/instaweb/util/public/string_util.h"
00024 
00025 namespace net_instaweb {
00026 
00027 class HttpRequestHeaders;
00028 class MessageHandler;
00029 class Writer;
00030 
00032 class RequestHeaders : public Headers<HttpRequestHeaders> {
00033  public:
00034   enum Method { kOptions, kGet, kHead, kPost, kPut, kDelete, kTrace, kConnect,
00035                 kPatch, kError };
00036 
00037   RequestHeaders();
00038 
00039   void Clear();
00040   void CopyFrom(const RequestHeaders& other);
00041 
00042   GoogleString ToString() const;
00043   Method method() const;
00044   const char* method_string() const;
00045   void set_method(Method method);
00046 
00050   const GoogleString& message_body() const;
00051   void set_message_body(const GoogleString& data);
00052 
00053   using Headers<HttpRequestHeaders>::WriteAsHttp;
00054   bool WriteAsHttp(const StringPiece& url, Writer* writer,
00055                    MessageHandler* handler) const;
00056 
00058   bool AcceptsGzip() const;
00059 
00063   bool IsXmlHttpRequest() const;
00064 
00065  private:
00066   DISALLOW_COPY_AND_ASSIGN(RequestHeaders);
00067 };
00068 
00069 }  
00070 
00071 #endif  ///< NET_INSTAWEB_HTTP_PUBLIC_REQUEST_HEADERS_H_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines