Page Speed Optimization Libraries
1.3.25.1
|
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_