1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ppapi/cpp/extensions/event_base.h" 6 7#include "ppapi/cpp/extensions/dev/events_dev.h" 8 9namespace pp { 10namespace ext { 11namespace internal { 12 13GenericEventBase::GenericEventBase( 14 const InstanceHandle& instance, 15 const PP_Ext_EventListener& pp_listener) 16 : instance_(instance), 17 listener_id_(0), 18 pp_listener_(pp_listener) { 19} 20 21GenericEventBase::~GenericEventBase() { 22 StopListening(); 23} 24 25bool GenericEventBase::StartListening() { 26 if (IsListening()) 27 return true; 28 29 listener_id_ = events::Events_Dev::AddListener(instance_.pp_instance(), 30 pp_listener_); 31 return IsListening(); 32} 33 34void GenericEventBase::StopListening() { 35 if (!IsListening()) 36 return; 37 38 events::Events_Dev::RemoveListener(instance_.pp_instance(), listener_id_); 39 listener_id_ = 0; 40} 41 42} // namespace internal 43} // namespace ext 44} // namespace pp 45