Index: net/simple_request.h |
diff --git a/net/simple_request.h b/net/simple_request.h |
deleted file mode 100644 |
index bed0ceda905e9c9afe4ea277d5ad8580c3919597..0000000000000000000000000000000000000000 |
--- a/net/simple_request.h |
+++ /dev/null |
@@ -1,196 +0,0 @@ |
-// Copyright 2007-2010 Google Inc. |
-// |
-// 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. |
-// ======================================================================== |
-// |
-// SimpleRequest provides for http transactions using WinHttp/WinInet. |
-// |
-// TODO(omaha): the class interface is not stable yet, as a few more |
-// getters and setters are still needed. |
-// |
-// TODO(omaha): receiving a response into a file is not implemented yet. |
- |
-#ifndef OMAHA_NET_SIMPLE_REQUEST_H_ |
-#define OMAHA_NET_SIMPLE_REQUEST_H_ |
- |
-#include <atlstr.h> |
-#include <vector> |
-#include "base/basictypes.h" |
-#include "base/scoped_ptr.h" |
-#include "omaha/base/debug.h" |
-#include "omaha/base/scoped_any.h" |
-#include "omaha/base/synchronized.h" |
-#include "omaha/net/http_request.h" |
-#include "omaha/net/network_config.h" |
- |
-namespace omaha { |
- |
-class WinHttpAdapter; |
- |
-class SimpleRequest : public HttpRequestInterface { |
- public: |
- SimpleRequest(); |
- virtual ~SimpleRequest(); |
- |
- virtual HRESULT Close(); |
- |
- virtual HRESULT Send(); |
- |
- virtual HRESULT Cancel(); |
- |
- virtual HRESULT Pause(); |
- |
- virtual HRESULT Resume(); |
- |
- virtual std::vector<uint8> GetResponse() const; |
- |
- virtual int GetHttpStatusCode() const { |
- return request_state_.get() ? request_state_->http_status_code : 0; |
- } |
- |
- virtual HRESULT QueryHeadersString(uint32 info_level, |
- const TCHAR* name, |
- CString* value) const; |
- |
- virtual CString GetResponseHeaders() const; |
- |
- virtual CString ToString() const { return _T("winhttp"); } |
- |
- virtual void set_session_handle(HINTERNET session_handle) { |
- session_handle_ = session_handle; |
- } |
- |
- virtual void set_url(const CString& url); |
- |
- virtual void set_request_buffer(const void* buffer, size_t buffer_length) { |
- request_buffer_ = buffer; |
- request_buffer_length_ = buffer_length; |
- } |
- |
- virtual void set_proxy_configuration(const ProxyConfig& proxy_config) { |
- proxy_config_ = proxy_config; |
- } |
- |
- // Sets the filename to receive the response instead of the memory buffer. |
- virtual void set_filename(const CString& filename); |
- |
- virtual void set_low_priority(bool low_priority) { |
- low_priority_ = low_priority; |
- } |
- |
- virtual void set_callback(NetworkRequestCallback* callback) { |
- callback_ = callback; |
- } |
- |
- virtual void set_additional_headers(const CString& additional_headers) { |
- additional_headers_ = additional_headers; |
- } |
- |
- // This request always uses the specified protocol so it is fine to ignore |
- // this attribute. |
- virtual void set_preserve_protocol(bool preserve_protocol) { |
- UNREFERENCED_PARAMETER(preserve_protocol); |
- } |
- |
- virtual CString user_agent() const { return user_agent_; } |
- |
- virtual void set_user_agent(const CString& user_agent) { |
- user_agent_ = user_agent; |
- } |
- |
- virtual void set_proxy_auth_config(const ProxyAuthConfig& proxy_auth_config) { |
- proxy_auth_config_ = proxy_auth_config; |
- } |
- |
- private: |
- HRESULT OpenDestinationFile(HANDLE* file_handle); |
- HRESULT PrepareRequest(HANDLE* file_handle); |
- HRESULT Connect(); |
- HRESULT SendRequest(); |
- HRESULT ReceiveData(HANDLE file_handle); |
- HRESULT RequestData(HANDLE file_handle); |
- bool IsResumeNeeded() const; |
- bool IsPauseSupported() const; |
- |
- void LogResponseHeaders(); |
- |
- // Sets proxy information for the request. |
- void SetProxyInformation(); |
- |
- struct TransientRequestState; |
- void CloseHandles(); |
- |
- static uint32 ChooseProxyAuthScheme(uint32 supported_schemes); |
- |
- // Returns true if the request is a POST request, in other words, if there |
- // is a request buffer to be sent to the server. |
- bool IsPostRequest() const { return request_buffer_ != NULL; } |
- |
- // When in pause state, caller will be blocked until Resume() is called. |
- // Returns immediately otherwise. |
- void WaitForResumeEvent(); |
- |
- // Holds the transient state corresponding to a single http request. We |
- // prefer to isolate the state of a request to avoid dirty state. |
- struct TransientRequestState { |
- TransientRequestState() |
- : port(0), |
- http_status_code(0), |
- proxy_authentication_scheme(0), |
- is_https(false), |
- content_length(0), |
- current_bytes(0) {} |
- |
- CString scheme; |
- CString server; |
- int port; |
- CString url_path; |
- bool is_https; |
- |
- std::vector<uint8> response; |
- int http_status_code; |
- uint32 proxy_authentication_scheme; |
- CString proxy; |
- CString proxy_bypass; |
- int content_length; |
- int current_bytes; |
- }; |
- |
- LLock lock_; |
- volatile bool is_canceled_; |
- volatile bool is_closed_; |
- volatile bool pause_happened_; |
- LLock ready_to_pause_lock_; |
- HINTERNET session_handle_; // Not owned by this class. |
- CString url_; |
- CString filename_; |
- const void* request_buffer_; // Contains the request body for POST. |
- size_t request_buffer_length_; // Length of the request body. |
- CString additional_headers_; |
- CString user_agent_; |
- ProxyAuthConfig proxy_auth_config_; |
- ProxyConfig proxy_config_; |
- bool low_priority_; |
- NetworkRequestCallback* callback_; |
- scoped_ptr<WinHttpAdapter> winhttp_adapter_; |
- scoped_ptr<TransientRequestState> request_state_; |
- scoped_event event_resume_; |
- bool download_completed_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SimpleRequest); |
-}; |
- |
-} // namespace omaha |
- |
-#endif // OMAHA_NET_SIMPLE_REQUEST_H_ |
- |