pepper_talk_host.h revision 868fa2fe829687343ffae624259930155e16dbd8
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#ifndef CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 6#define CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 7 8#include "base/memory/weak_ptr.h" 9#include "ppapi/c/private/ppb_talk_private.h" 10#include "ppapi/host/resource_host.h" 11#include "ppapi/proxy/resource_message_params.h" 12 13namespace content { 14class BrowserPpapiHost; 15} 16 17namespace ppapi { 18namespace host { 19struct ReplyMessageContext; 20} 21} 22 23namespace chrome { 24 25class PepperTalkHost : public ppapi::host::ResourceHost { 26 public: 27 PepperTalkHost(content::BrowserPpapiHost* host, 28 PP_Instance instance, 29 PP_Resource resource); 30 virtual ~PepperTalkHost(); 31 32 // ResourceHost override. 33 virtual int32_t OnResourceMessageReceived( 34 const IPC::Message& msg, 35 ppapi::host::HostMessageContext* context) OVERRIDE; 36 37 // Sends the reply. 38 void GotTalkPermission(ppapi::host::ReplyMessageContext reply); 39 40 private: 41 int32_t OnRequestPermission( 42 ppapi::host::HostMessageContext* context, 43 PP_TalkPermission permission); 44 int32_t OnStartRemoting( 45 ppapi::host::HostMessageContext* context); 46 int32_t OnStopRemoting( 47 ppapi::host::HostMessageContext* context); 48 49 base::WeakPtrFactory<PepperTalkHost> weak_factory_; 50 content::BrowserPpapiHost* browser_ppapi_host_; 51 52 DISALLOW_COPY_AND_ASSIGN(PepperTalkHost); 53}; 54 55} // namespace chrome 56 57#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 58