1// Copyright (c) 2012 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/private/flash_message_loop.h" 6 7#include "ppapi/c/pp_errors.h" 8#include "ppapi/c/private/ppb_flash_message_loop.h" 9#include "ppapi/cpp/instance_handle.h" 10#include "ppapi/cpp/module_impl.h" 11 12namespace pp { 13 14namespace { 15 16template <> const char* interface_name<PPB_Flash_MessageLoop>() { 17 return PPB_FLASH_MESSAGELOOP_INTERFACE; 18} 19 20} // namespace 21 22namespace flash { 23 24MessageLoop::MessageLoop(const InstanceHandle& instance) { 25 if (has_interface<PPB_Flash_MessageLoop>()) { 26 PassRefFromConstructor(get_interface<PPB_Flash_MessageLoop>()->Create( 27 instance.pp_instance())); 28 } 29} 30 31MessageLoop::~MessageLoop() { 32} 33 34// static 35bool MessageLoop::IsAvailable() { 36 return has_interface<PPB_Flash_MessageLoop>(); 37} 38 39int32_t MessageLoop::Run() { 40 if (!has_interface<PPB_Flash_MessageLoop>()) 41 return PP_ERROR_NOINTERFACE; 42 return get_interface<PPB_Flash_MessageLoop>()->Run(pp_resource()); 43} 44 45void MessageLoop::Quit() { 46 if (has_interface<PPB_Flash_MessageLoop>()) 47 get_interface<PPB_Flash_MessageLoop>()->Quit(pp_resource()); 48} 49 50} // namespace flash 51} // namespace pp 52