// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PPAPI_PROXY_DISPATCHER_H_ #define PPAPI_PROXY_DISPATCHER_H_ #include <memory> #include "base/compiler_specific.h" #include "base/memory/scoped_refptr.h" #include "ipc/message_filter.h" #include "ppapi/c/pp_instance.h" #include "ppapi/c/pp_module.h" #include "ppapi/c/ppp.h" #include "ppapi/proxy/interface_list.h" #include "ppapi/proxy/interface_proxy.h" #include "ppapi/proxy/plugin_var_tracker.h" #include "ppapi/proxy/proxy_channel.h" #include "ppapi/shared_impl/api_id.h" namespace IPC { class MessageFilter; } namespace ppapi { namespace proxy { class VarSerializationRules; // An interface proxy can represent either end of a cross-process interface // call. The "source" side is where the call is invoked, and the "target" side // is where the call ends up being executed. // // Plugin side | Browser side // -------------------------------------|-------------------------------------- // | // "Source" | "Target" // InterfaceProxy ----------------------> InterfaceProxy // | // | // "Target" | "Source" // InterfaceProxy <---------------------- InterfaceProxy // | class PPAPI_PROXY_EXPORT Dispatcher : public ProxyChannel { … }; } // namespace proxy } // namespace ppapi #endif // PPAPI_PROXY_DISPATCHER_H_