.. _pepper_beta_cpp_index:
.. _cpp-api-beta:

.. DO NOT EDIT! This document is auto-generated by doxygen/rst_index.py.

.. include:: /migration/deprecation.inc

############################################
Pepper C++ API Reference (Beta)
############################################

This page lists the C++ API for Pepper 60. Apps that use this API can
run in Chrome 60 or higher.

`Classes <pepper_beta/cpp/inherits.html>`__
==================================================
  * `Audio <pepper_beta/cpp/classpp_1_1_audio.html>`__

  * `AudioBuffer <pepper_beta/cpp/classpp_1_1_audio_buffer.html>`__

  * `AudioConfig <pepper_beta/cpp/classpp_1_1_audio_config.html>`__

  * `AudioEncoder <pepper_beta/cpp/classpp_1_1_audio_encoder.html>`__

  * `CompletionCallback <pepper_beta/cpp/classpp_1_1_completion_callback.html>`__

  * `CompletionCallbackFactory <pepper_beta/cpp/classpp_1_1_completion_callback_factory.html>`__

  * `CompletionCallbackWithOutput <pepper_beta/cpp/classpp_1_1_completion_callback_with_output.html>`__

  * `Compositor <pepper_beta/cpp/classpp_1_1_compositor.html>`__

  * `CompositorLayer <pepper_beta/cpp/classpp_1_1_compositor_layer.html>`__

  * `Core <pepper_beta/cpp/classpp_1_1_core.html>`__

  * `DirectoryEntry <pepper_beta/cpp/classpp_1_1_directory_entry.html>`__

  * `FileIO <pepper_beta/cpp/classpp_1_1_file_i_o.html>`__

  * `FileRef <pepper_beta/cpp/classpp_1_1_file_ref.html>`__

  * `FileSystem <pepper_beta/cpp/classpp_1_1_file_system.html>`__

  * `FloatPoint <pepper_beta/cpp/classpp_1_1_float_point.html>`__

  * `FloatRect <pepper_beta/cpp/classpp_1_1_float_rect.html>`__

  * `FloatSize <pepper_beta/cpp/classpp_1_1_float_size.html>`__

  * `Fullscreen <pepper_beta/cpp/classpp_1_1_fullscreen.html>`__

  * `Graphics2D <pepper_beta/cpp/classpp_1_1_graphics2_d.html>`__

  * `Graphics3D <pepper_beta/cpp/classpp_1_1_graphics3_d.html>`__

  * `Graphics3DClient <pepper_beta/cpp/classpp_1_1_graphics3_d_client.html>`__

  * `HostResolver <pepper_beta/cpp/classpp_1_1_host_resolver.html>`__

  * `IMEInputEvent <pepper_beta/cpp/classpp_1_1_i_m_e_input_event.html>`__

  * `ImageData <pepper_beta/cpp/classpp_1_1_image_data.html>`__

  * `InputEvent <pepper_beta/cpp/classpp_1_1_input_event.html>`__

  * `Instance <pepper_beta/cpp/classpp_1_1_instance.html>`__

  * `InstanceHandle <pepper_beta/cpp/classpp_1_1_instance_handle.html>`__

  * `KeyboardInputEvent <pepper_beta/cpp/classpp_1_1_keyboard_input_event.html>`__

  * `MediaStreamAudioTrack <pepper_beta/cpp/classpp_1_1_media_stream_audio_track.html>`__

  * `MediaStreamVideoTrack <pepper_beta/cpp/classpp_1_1_media_stream_video_track.html>`__

  * `MessageHandler <pepper_beta/cpp/classpp_1_1_message_handler.html>`__

  * `MessageLoop <pepper_beta/cpp/classpp_1_1_message_loop.html>`__

  * `Module <pepper_beta/cpp/classpp_1_1_module.html>`__

  * `MouseCursor <pepper_beta/cpp/classpp_1_1_mouse_cursor.html>`__

  * `MouseInputEvent <pepper_beta/cpp/classpp_1_1_mouse_input_event.html>`__

  * `MouseLock <pepper_beta/cpp/classpp_1_1_mouse_lock.html>`__

  * `NetAddress <pepper_beta/cpp/classpp_1_1_net_address.html>`__

  * `NetworkList <pepper_beta/cpp/classpp_1_1_network_list.html>`__

  * `NetworkMonitor <pepper_beta/cpp/classpp_1_1_network_monitor.html>`__

  * `NetworkProxy <pepper_beta/cpp/classpp_1_1_network_proxy.html>`__

  * `Point <pepper_beta/cpp/classpp_1_1_point.html>`__

  * `Rect <pepper_beta/cpp/classpp_1_1_rect.html>`__

  * `Resource <pepper_beta/cpp/classpp_1_1_resource.html>`__

  * `Size <pepper_beta/cpp/classpp_1_1_size.html>`__

  * `TCPSocket <pepper_beta/cpp/classpp_1_1_t_c_p_socket.html>`__

  * `TextInputController <pepper_beta/cpp/classpp_1_1_text_input_controller.html>`__

  * `TouchInputEvent <pepper_beta/cpp/classpp_1_1_touch_input_event.html>`__

  * `TouchPoint <pepper_beta/cpp/classpp_1_1_touch_point.html>`__

  * `UDPSocket <pepper_beta/cpp/classpp_1_1_u_d_p_socket.html>`__

  * `URLLoader <pepper_beta/cpp/classpp_1_1_u_r_l_loader.html>`__

  * `URLRequestInfo <pepper_beta/cpp/classpp_1_1_u_r_l_request_info.html>`__

  * `URLResponseInfo <pepper_beta/cpp/classpp_1_1_u_r_l_response_info.html>`__

  * `Var <pepper_beta/cpp/classpp_1_1_var.html>`__

  * `Var11OutException <pepper_beta/cpp/classpp_1_1_var_1_1_out_exception.html>`__

  * `VarArray <pepper_beta/cpp/classpp_1_1_var_array.html>`__

  * `VarArrayBuffer <pepper_beta/cpp/classpp_1_1_var_array_buffer.html>`__

  * `VarDictionary <pepper_beta/cpp/classpp_1_1_var_dictionary.html>`__

  * `VideoDecoder <pepper_beta/cpp/classpp_1_1_video_decoder.html>`__

  * `VideoEncoder <pepper_beta/cpp/classpp_1_1_video_encoder.html>`__

  * `VideoFrame <pepper_beta/cpp/classpp_1_1_video_frame.html>`__

  * `View <pepper_beta/cpp/classpp_1_1_view.html>`__

  * `VpnProvider <pepper_beta/cpp/classpp_1_1_vpn_provider.html>`__

  * `WebSocket <pepper_beta/cpp/classpp_1_1_web_socket.html>`__

  * `WheelInputEvent <pepper_beta/cpp/classpp_1_1_wheel_input_event.html>`__

  * `Internal::DirectoryEntryArrayOutputAdapterWithStorage <pepper_beta/cpp/classpp_1_1internal_1_1_directory_entry_array_output_adapter_with_storage.html>`__


Files
=====
  * `audio.h <pepper_beta/cpp/audio_8h.html>`__

  * `audio_buffer.h <pepper_beta/cpp/audio__buffer_8h.html>`__

  * `audio_config.h <pepper_beta/cpp/audio__config_8h.html>`__

  * `audio_encoder.h <pepper_beta/cpp/audio__encoder_8h.html>`__

  * `completion_callback.h <pepper_beta/cpp/completion__callback_8h.html>`__

  * `completion_callback_factory.h <pepper_beta/cpp/completion__callback__factory_8h.html>`__

  * `compositor.h <pepper_beta/cpp/compositor_8h.html>`__

  * `compositor_layer.h <pepper_beta/cpp/compositor__layer_8h.html>`__

  * `core.h <pepper_beta/cpp/core_8h.html>`__

  * `directory_entry.h <pepper_beta/cpp/directory__entry_8h.html>`__

  * `file_io.h <pepper_beta/cpp/file__io_8h.html>`__

  * `file_ref.h <pepper_beta/cpp/file__ref_8h.html>`__

  * `file_system.h <pepper_beta/cpp/file__system_8h.html>`__

  * `fullscreen.h <pepper_beta/cpp/fullscreen_8h.html>`__

  * `graphics_2d.h <pepper_beta/cpp/graphics__2d_8h.html>`__

  * `graphics_3d.h <pepper_beta/cpp/graphics__3d_8h.html>`__

  * `graphics_3d_client.h <pepper_beta/cpp/graphics__3d__client_8h.html>`__

  * `host_resolver.h <pepper_beta/cpp/host__resolver_8h.html>`__

  * `image_data.h <pepper_beta/cpp/image__data_8h.html>`__

  * `input_event.h <pepper_beta/cpp/input__event_8h.html>`__

  * `instance.h <pepper_beta/cpp/instance_8h.html>`__

  * `instance_handle.h <pepper_beta/cpp/instance__handle_8h.html>`__

  * `logging.h <pepper_beta/cpp/logging_8h.html>`__

  * `media_stream_audio_track.h <pepper_beta/cpp/media__stream__audio__track_8h.html>`__

  * `media_stream_video_track.h <pepper_beta/cpp/media__stream__video__track_8h.html>`__

  * `message_handler.h <pepper_beta/cpp/message__handler_8h.html>`__

  * `message_loop.h <pepper_beta/cpp/message__loop_8h.html>`__

  * `module.h <pepper_beta/cpp/module_8h.html>`__

  * `module_embedder.h <pepper_beta/cpp/module__embedder_8h.html>`__

  * `module_impl.h <pepper_beta/cpp/module__impl_8h.html>`__

  * `mouse_cursor.h <pepper_beta/cpp/mouse__cursor_8h.html>`__

  * `mouse_lock.h <pepper_beta/cpp/mouse__lock_8h.html>`__

  * `net_address.h <pepper_beta/cpp/net__address_8h.html>`__

  * `network_list.h <pepper_beta/cpp/network__list_8h.html>`__

  * `network_monitor.h <pepper_beta/cpp/network__monitor_8h.html>`__

  * `network_proxy.h <pepper_beta/cpp/network__proxy_8h.html>`__

  * `pass_ref.h <pepper_beta/cpp/pass__ref_8h.html>`__

  * `point.h <pepper_beta/cpp/point_8h.html>`__

  * `rect.h <pepper_beta/cpp/rect_8h.html>`__

  * `resource.h <pepper_beta/cpp/resource_8h.html>`__

  * `size.h <pepper_beta/cpp/size_8h.html>`__

  * `tcp_socket.h <pepper_beta/cpp/tcp__socket_8h.html>`__

  * `text_input_controller.h <pepper_beta/cpp/text__input__controller_8h.html>`__

  * `touch_point.h <pepper_beta/cpp/touch__point_8h.html>`__

  * `udp_socket.h <pepper_beta/cpp/udp__socket_8h.html>`__

  * `url_loader.h <pepper_beta/cpp/url__loader_8h.html>`__

  * `url_request_info.h <pepper_beta/cpp/url__request__info_8h.html>`__

  * `url_response_info.h <pepper_beta/cpp/url__response__info_8h.html>`__

  * `var.h <pepper_beta/cpp/var_8h.html>`__

  * `var_array.h <pepper_beta/cpp/var__array_8h.html>`__

  * `var_array_buffer.h <pepper_beta/cpp/var__array__buffer_8h.html>`__

  * `var_dictionary.h <pepper_beta/cpp/var__dictionary_8h.html>`__

  * `video_decoder.h <pepper_beta/cpp/video__decoder_8h.html>`__

  * `video_encoder.h <pepper_beta/cpp/video__encoder_8h.html>`__

  * `video_frame.h <pepper_beta/cpp/video__frame_8h.html>`__

  * `view.h <pepper_beta/cpp/view_8h.html>`__

  * `vpn_provider.h <pepper_beta/cpp/vpn__provider_8h.html>`__

  * `websocket.h <pepper_beta/cpp/websocket_8h.html>`__

