// Copyright (c) 2017 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.
//

#ifndef CEF_LIBCEF_DLL_CTOCPP_TEST_TRANSLATOR_TEST_CTOCPP_H_
#define CEF_LIBCEF_DLL_CTOCPP_TEST_TRANSLATOR_TEST_CTOCPP_H_
#pragma once

#if !defined(WRAPPING_CEF_SHARED)
#error This file can be included wrapper-side only
#endif

#include <map>
#include <vector>
#include "include/test/cef_translator_test.h"
#include "include/capi/test/cef_translator_test_capi.h"
#include "libcef_dll/ctocpp/ctocpp.h"

// Wrap a C structure with a C++ class.
// This class may be instantiated and accessed wrapper-side only.
class CefTranslatorTestCToCpp
    : public CefCToCpp<CefTranslatorTestCToCpp, CefTranslatorTest,
        cef_translator_test_t> {
 public:
  CefTranslatorTestCToCpp();

  // CefTranslatorTest methods.
  void GetVoid() OVERRIDE;
  bool GetBool() OVERRIDE;
  int GetInt() OVERRIDE;
  double GetDouble() OVERRIDE;
  long GetLong() OVERRIDE;
  size_t GetSizet() OVERRIDE;
  bool SetVoid() OVERRIDE;
  bool SetBool(bool val) OVERRIDE;
  bool SetInt(int val) OVERRIDE;
  bool SetDouble(double val) OVERRIDE;
  bool SetLong(long val) OVERRIDE;
  bool SetSizet(size_t val) OVERRIDE;
  bool SetIntList(const std::vector<int>& val) OVERRIDE;
  bool GetIntListByRef(IntList& val) OVERRIDE;
  size_t GetIntListSize() OVERRIDE;
  CefString GetString() OVERRIDE;
  bool SetString(const CefString& val) OVERRIDE;
  void GetStringByRef(CefString& val) OVERRIDE;
  bool SetStringList(const std::vector<CefString>& val) OVERRIDE;
  bool GetStringListByRef(StringList& val) OVERRIDE;
  bool SetStringMap(const StringMap& val) OVERRIDE;
  bool GetStringMapByRef(std::map<CefString, CefString>& val) OVERRIDE;
  bool SetStringMultimap(const std::multimap<CefString,
      CefString>& val) OVERRIDE;
  bool GetStringMultimapByRef(StringMultimap& val) OVERRIDE;
  CefPoint GetPoint() OVERRIDE;
  bool SetPoint(const CefPoint& val) OVERRIDE;
  void GetPointByRef(CefPoint& val) OVERRIDE;
  bool SetPointList(const std::vector<CefPoint>& val) OVERRIDE;
  bool GetPointListByRef(PointList& val) OVERRIDE;
  size_t GetPointListSize() OVERRIDE;
  CefRefPtr<CefTranslatorTestObject> GetObject(int val) OVERRIDE;
  int SetObject(CefRefPtr<CefTranslatorTestObject> val) OVERRIDE;
  CefRefPtr<CefTranslatorTestObject> SetObjectAndReturn(
      CefRefPtr<CefTranslatorTestObject> val) OVERRIDE;
  int SetChildObject(CefRefPtr<CefTranslatorTestObjectChild> val) OVERRIDE;
  CefRefPtr<CefTranslatorTestObject> SetChildObjectAndReturnParent(
      CefRefPtr<CefTranslatorTestObjectChild> val) OVERRIDE;
  bool SetObjectList(const std::vector<CefRefPtr<CefTranslatorTestObject>>& val,
      int val1, int val2) OVERRIDE;
  bool GetObjectListByRef(ObjectList& val, int val1, int val2) OVERRIDE;
  size_t GetObjectListSize() OVERRIDE;
  int SetHandler(CefRefPtr<CefTranslatorTestHandler> val) OVERRIDE;
  CefRefPtr<CefTranslatorTestHandler> SetHandlerAndReturn(
      CefRefPtr<CefTranslatorTestHandler> val) OVERRIDE;
  int SetChildHandler(CefRefPtr<CefTranslatorTestHandlerChild> val) OVERRIDE;
  CefRefPtr<CefTranslatorTestHandler> SetChildHandlerAndReturnParent(
      CefRefPtr<CefTranslatorTestHandlerChild> val) OVERRIDE;
  bool SetHandlerList(
      const std::vector<CefRefPtr<CefTranslatorTestHandler>>& val, int val1,
      int val2) OVERRIDE;
  bool GetHandlerListByRef(HandlerList& val,
      CefRefPtr<CefTranslatorTestHandler> val1,
      CefRefPtr<CefTranslatorTestHandler> val2) OVERRIDE;
  size_t GetHandlerListSize() OVERRIDE;
};

#endif  // CEF_LIBCEF_DLL_CTOCPP_TEST_TRANSLATOR_TEST_CTOCPP_H_
