148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org// Copyright (c) 2013 The Chromium Authors. All rights reserved. 248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org// Use of this source code is governed by a BSD-style license that can be 348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org// found in the LICENSE file. 448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "content/child/thread_safe_sender.h" 648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "base/message_loop/message_loop_proxy.h" 848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "content/child/child_thread.h" 948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "ipc/ipc_sync_message_filter.h" 1048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgnamespace content { 1248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgThreadSafeSender::ThreadSafeSender( 1448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const scoped_refptr<base::MessageLoopProxy>& main_loop, 1548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const scoped_refptr<IPC::SyncMessageFilter>& sync_filter) 1648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org : main_loop_(main_loop), sync_filter_(sync_filter) { 1748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 1848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgThreadSafeSender::~ThreadSafeSender() { 2048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 2148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 2248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgbool ThreadSafeSender::Send(IPC::Message* msg) { 2348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org if (main_loop_->BelongsToCurrentThread()) 2448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org return ChildThread::current()->Send(msg); 2548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org return sync_filter_->Send(msg); 2648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 2748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 2848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} // namespace content 2948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org