// Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool. If making changes by
// hand only do so within the body of existing method and function
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//

#include "libcef_dll/cpptoc/request_cpptoc.h"
#include "libcef_dll/cpptoc/web_urlrequest_cpptoc.h"
#include "libcef_dll/ctocpp/web_urlrequest_client_ctocpp.h"


// GLOBAL FUNCTIONS - Body may be edited by hand.

CEF_EXPORT cef_web_urlrequest_t* cef_web_urlrequest_create(
    cef_request_t* request, struct _cef_web_urlrequest_client_t* client) {
  // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING

  // Verify param: request; type: refptr_same
  DCHECK(request);
  if (!request)
    return NULL;
  // Verify param: client; type: refptr_diff
  DCHECK(client);
  if (!client)
    return NULL;

  // Execute
  CefRefPtr<CefWebURLRequest> _retval = CefWebURLRequest::CreateWebURLRequest(
      CefRequestCppToC::Unwrap(request),
      CefWebURLRequestClientCToCpp::Wrap(client));

  // Return type: refptr_same
  return CefWebURLRequestCppToC::Wrap(_retval);
}


// MEMBER FUNCTIONS - Body may be edited by hand.

void CEF_CALLBACK web_urlrequest_cancel(struct _cef_web_urlrequest_t* self) {
  // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING

  DCHECK(self);
  if (!self)
    return;

  // Execute
  CefWebURLRequestCppToC::Get(self)->Cancel();
}

enum cef_weburlrequest_state_t CEF_CALLBACK web_urlrequest_get_state(
    struct _cef_web_urlrequest_t* self) {
  // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING

  DCHECK(self);
  if (!self)
    return WUR_STATE_UNSENT;

  // Execute
  cef_weburlrequest_state_t _retval = CefWebURLRequestCppToC::Get(
      self)->GetState();

  // Return type: simple
  return _retval;
}


// CONSTRUCTOR - Do not edit by hand.

CefWebURLRequestCppToC::CefWebURLRequestCppToC(CefWebURLRequest* cls)
    : CefCppToC<CefWebURLRequestCppToC, CefWebURLRequest, cef_web_urlrequest_t>(
        cls) {
  struct_.struct_.cancel = web_urlrequest_cancel;
  struct_.struct_.get_state = web_urlrequest_get_state;
}

#ifndef NDEBUG
template<> long CefCppToC<CefWebURLRequestCppToC, CefWebURLRequest,
    cef_web_urlrequest_t>::DebugObjCt = 0;
#endif

