nacl_trusted_listener.h revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
1// Copyright 2014 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 COMPONENTS_NACL_LOADER_NACL_TRUSTED_LISTENER_H_ 6#define COMPONENTS_NACL_LOADER_NACL_TRUSTED_LISTENER_H_ 7 8#include "base/memory/ref_counted.h" 9#include "ipc/ipc_channel_handle.h" 10#include "ipc/ipc_channel_proxy.h" 11#include "ipc/ipc_listener.h" 12 13namespace base { 14class SingleThreadTaskRunner; 15} 16 17class NaClTrustedListener : public base::RefCounted<NaClTrustedListener>, 18 public IPC::Listener { 19 public: 20 NaClTrustedListener(const IPC::ChannelHandle& handle, 21 base::SingleThreadTaskRunner* ipc_task_runner); 22 23 IPC::ChannelHandle TakeClientChannelHandle(); 24 25 // Listener implementation. 26 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 27 virtual void OnChannelError() OVERRIDE; 28 29 bool Send(IPC::Message* msg); 30 31 private: 32 friend class base::RefCounted<NaClTrustedListener>; 33 virtual ~NaClTrustedListener(); 34 IPC::ChannelHandle channel_handle_; 35 scoped_ptr<IPC::ChannelProxy> channel_proxy_; 36 37 DISALLOW_COPY_AND_ASSIGN(NaClTrustedListener); 38}; 39 40#endif // COMPONENTS_NACL_LOADER_NACL_TRUSTED_LISTENER_H_ 41