diff options
Diffstat (limited to 'ipc/ipc_channel_proxy.h')
-rw-r--r-- | ipc/ipc_channel_proxy.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ipc/ipc_channel_proxy.h b/ipc/ipc_channel_proxy.h index 1f5ecf4..dca8c97 100644 --- a/ipc/ipc_channel_proxy.h +++ b/ipc/ipc_channel_proxy.h @@ -88,6 +88,13 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe { // the message be handled in the default way. virtual bool OnMessageReceived(const Message& message); + // Called to query the Message classes supported by the filter. Return + // false to indicate that all message types should reach the filter, or true + // if the resulting contents of |supported_message_classes| may be used to + // selectively offer messages of a particular class to the filter. + virtual bool GetSupportedMessageClasses( + std::vector<uint32>* supported_message_classes) const; + protected: virtual ~MessageFilter(); @@ -230,6 +237,11 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe { std::string channel_id_; bool channel_connected_called_; + // Routes a given message to a proper subset of |filters_|, depending + // on which message classes a filter might support. + class MessageFilterRouter; + scoped_ptr<MessageFilterRouter> message_filter_router_; + // Holds filters between the AddFilter call on the listerner thread and the // IPC thread when they're added to filters_. std::vector<scoped_refptr<MessageFilter> > pending_filters_; |