| Index: net/winhttp_adapter.h
|
| diff --git a/net/winhttp_adapter.h b/net/winhttp_adapter.h
|
| deleted file mode 100644
|
| index 4f74f006dbe481a26f03a147afbe2988bcf2cfbc..0000000000000000000000000000000000000000
|
| --- a/net/winhttp_adapter.h
|
| +++ /dev/null
|
| @@ -1,152 +0,0 @@
|
| -// Copyright 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.
|
| -// ========================================================================
|
| -
|
| -#ifndef OMAHA_NET_WINHTTP_ADAPTER_H_
|
| -#define OMAHA_NET_WINHTTP_ADAPTER_H_
|
| -
|
| -#include <windows.h>
|
| -#include "base/basictypes.h"
|
| -#include "base/scoped_ptr.h"
|
| -#include "omaha/base/scoped_any.h"
|
| -#include "omaha/base/synchronized.h"
|
| -#include "omaha/net/winhttp.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -// Provides a sync-async adapter between the caller and the asynchronous
|
| -// WinHttp client. Solves the issue of reliably canceling of WinHttp calls by
|
| -// closing the handles and avoding the race condition between handle closing
|
| -// and the incoming WinHttp call.
|
| -// The class manages the connection and the request handles. It registers a
|
| -// callback for all WinHttp status notifications. Once an asynchrous WinHttp
|
| -// call is made, the code blocks waiting for the corresponding notification
|
| -// to arrive, handle the completion result, and then return to the caller.
|
| -// WinHttp is guaranteed to send a notification callback for all asynchronous
|
| -// request calls that have succeeded.
|
| -// TODO(omaha): consider eliminating this class and implementing the same
|
| -// functionality in the WinHttp class. Most likely, another class is needed
|
| -// to manage the WinHttp session handle.
|
| -class WinHttpAdapter {
|
| - public:
|
| - WinHttpAdapter();
|
| -
|
| - HRESULT Initialize();
|
| -
|
| - HRESULT Connect(HINTERNET session_handle, const TCHAR* server, int port);
|
| -
|
| - HRESULT OpenRequest(const TCHAR* verb,
|
| - const TCHAR* uri,
|
| - const TCHAR* version,
|
| - const TCHAR* referrer,
|
| - const TCHAR** accept_types,
|
| - uint32 flags);
|
| -
|
| - HRESULT AddRequestHeaders(const TCHAR* headers,
|
| - int length,
|
| - uint32 modifiers);
|
| -
|
| - HRESULT SendRequest(const TCHAR* headers,
|
| - DWORD headers_length,
|
| - const void* optional_data,
|
| - DWORD optional_data_length,
|
| - DWORD content_length);
|
| -
|
| - HRESULT SetCredentials(uint32 auth_targets,
|
| - uint32 auth_scheme,
|
| - const TCHAR* user_name,
|
| - const TCHAR* password);
|
| -
|
| - HRESULT ReceiveResponse();
|
| -
|
| - HRESULT QueryAuthSchemes(uint32* supported_schemes,
|
| - uint32* first_scheme,
|
| - uint32* auth_target);
|
| -
|
| - HRESULT QueryRequestHeadersInt(uint32 info_level,
|
| - const TCHAR* name,
|
| - int* value,
|
| - DWORD* index);
|
| -
|
| - HRESULT QueryRequestHeadersString(uint32 info_level,
|
| - const TCHAR* name,
|
| - CString* value,
|
| - DWORD* index);
|
| -
|
| - HRESULT QueryDataAvailable(DWORD* num_bytes);
|
| -
|
| - HRESULT ReadData(void* buffer, DWORD buffer_length, DWORD* bytes_read);
|
| -
|
| - HRESULT SetRequestOptionInt(uint32 option, int value);
|
| -
|
| - HRESULT SetRequestOption(uint32 option,
|
| - const void* buffer,
|
| - DWORD buffer_length);
|
| -
|
| - void CloseHandles();
|
| -
|
| - HRESULT CrackUrl(const TCHAR* url,
|
| - uint32 flags,
|
| - CString* scheme,
|
| - CString* server,
|
| - int* port,
|
| - CString* url_path,
|
| - CString* extra_info) {
|
| - return http_client_->CrackUrl(
|
| - url, flags, scheme, server, port, url_path, extra_info);
|
| - }
|
| -
|
| - CString server_name() const { return server_name_; }
|
| - CString server_ip() const { return server_ip_; }
|
| -
|
| - private:
|
| -
|
| - HRESULT AsyncCallBegin(DWORD async_call_type);
|
| - HRESULT AsyncCallEnd(DWORD async_call_type);
|
| -
|
| - void StatusCallback(HINTERNET handle,
|
| - uint32 status,
|
| - void* info,
|
| - uint32 info_len);
|
| -
|
| - static void __stdcall WinHttpStatusCallback(HINTERNET handle,
|
| - uint32 context,
|
| - uint32 status,
|
| - void* info,
|
| - uint32 info_len);
|
| -
|
| - scoped_ptr<HttpClient> http_client_;
|
| -
|
| - HINTERNET connection_handle_;
|
| - HINTERNET request_handle_;
|
| -
|
| - CString server_name_;
|
| - CString server_ip_;
|
| -
|
| - DWORD async_call_type_;
|
| - bool async_call_is_error_;
|
| - WINHTTP_ASYNC_RESULT async_call_result_;
|
| - DWORD async_bytes_available_;
|
| - DWORD async_bytes_read_;
|
| - scoped_event async_completion_event_;
|
| -
|
| - LLock lock_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(WinHttpAdapter);
|
| -};
|
| -
|
| -} // namespace omaha
|
| -
|
| -#endif // OMAHA_NET_WINHTTP_ADAPTER_H_
|
| -
|
|
|