// Copyright © 2010 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. #pragma once #include "Stdafx.h" #include "include/cef_scheme.h" using namespace System::IO; using namespace System::Collections::Specialized; namespace CefSharp { namespace Internals { private class CefResourceHandlerAdapter : public CefResourceHandler { private: gcroot _handler; gcroot _request; public: CefResourceHandlerAdapter(IResourceHandler^ handler) : _handler(handler) { } ~CefResourceHandlerAdapter() { delete _handler; _handler = nullptr; delete _request; _request = nullptr; } virtual bool Open(CefRefPtr request, bool& handle_request, CefRefPtr callback) override; virtual void GetResponseHeaders(CefRefPtr response, int64_t& response_length, CefString& redirectUrl) override; virtual bool Skip(int64_t bytesToSkip, int64_t& bytesSkipped, CefRefPtr callback) override; virtual bool Read(void* dataOut, int bytesToRead, int& bytesRead, CefRefPtr callback) override; virtual void Cancel() override; //Depricated virtual bool ProcessRequest(CefRefPtr request, CefRefPtr callback) override; virtual bool ReadResponse(void* data_out, int bytes_to_read, int& bytes_read, CefRefPtr callback) override; IMPLEMENT_REFCOUNTINGM(CefResourceHandlerAdapter); }; } }