Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(741)

Side by Side Diff: ipc/ipc_sync_channel.h

Issue 645623006: Standardize usage of virtual/override/final in ipc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef IPC_IPC_SYNC_CHANNEL_H_ 5 #ifndef IPC_IPC_SYNC_CHANNEL_H_
6 #define IPC_IPC_SYNC_CHANNEL_H_ 6 #define IPC_IPC_SYNC_CHANNEL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <deque> 9 #include <deque>
10 10
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 base::WaitableEvent* shutdown_event); 84 base::WaitableEvent* shutdown_event);
85 85
86 // Creates an uninitialized sync channel. Call ChannelProxy::Init to 86 // Creates an uninitialized sync channel. Call ChannelProxy::Init to
87 // initialize the channel. This two-step setup allows message filters to be 87 // initialize the channel. This two-step setup allows message filters to be
88 // added before any messages are sent or received. 88 // added before any messages are sent or received.
89 static scoped_ptr<SyncChannel> Create( 89 static scoped_ptr<SyncChannel> Create(
90 Listener* listener, 90 Listener* listener,
91 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner, 91 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner,
92 base::WaitableEvent* shutdown_event); 92 base::WaitableEvent* shutdown_event);
93 93
94 virtual ~SyncChannel(); 94 ~SyncChannel() override;
95 95
96 virtual bool Send(Message* message) override; 96 bool Send(Message* message) override;
97 97
98 // Sets the dispatch group for this channel, to only allow re-entrant dispatch 98 // Sets the dispatch group for this channel, to only allow re-entrant dispatch
99 // of messages to other channels in the same group. 99 // of messages to other channels in the same group.
100 // 100 //
101 // Normally, any unblocking message coming from any channel can be dispatched 101 // Normally, any unblocking message coming from any channel can be dispatched
102 // when any (possibly other) channel is blocked on sending a message. This is 102 // when any (possibly other) channel is blocked on sending a message. This is
103 // needed in some cases to unblock certain loops (e.g. necessary when some 103 // needed in some cases to unblock certain loops (e.g. necessary when some
104 // processes share a window hierarchy), but may cause re-entrancy issues in 104 // processes share a window hierarchy), but may cause re-entrancy issues in
105 // some cases where such loops are not possible. This flags allows the tagging 105 // some cases where such loops are not possible. This flags allows the tagging
106 // of some particular channels to only re-enter in known correct cases. 106 // of some particular channels to only re-enter in known correct cases.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 restrict_dispatch_group_ = group; 163 restrict_dispatch_group_ = group;
164 } 164 }
165 165
166 int restrict_dispatch_group() const { 166 int restrict_dispatch_group() const {
167 return restrict_dispatch_group_; 167 return restrict_dispatch_group_;
168 } 168 }
169 169
170 base::WaitableEventWatcher::EventCallback MakeWaitableEventCallback(); 170 base::WaitableEventWatcher::EventCallback MakeWaitableEventCallback();
171 171
172 private: 172 private:
173 virtual ~SyncContext(); 173 ~SyncContext() override;
174 // ChannelProxy methods that we override. 174 // ChannelProxy methods that we override.
175 175
176 // Called on the listener thread. 176 // Called on the listener thread.
177 virtual void Clear() override; 177 void Clear() override;
178 178
179 // Called on the IPC thread. 179 // Called on the IPC thread.
180 virtual bool OnMessageReceived(const Message& msg) override; 180 bool OnMessageReceived(const Message& msg) override;
181 virtual void OnChannelError() override; 181 void OnChannelError() override;
182 virtual void OnChannelOpened() override; 182 void OnChannelOpened() override;
183 virtual void OnChannelClosed() override; 183 void OnChannelClosed() override;
184 184
185 // Cancels all pending Send calls. 185 // Cancels all pending Send calls.
186 void CancelPendingSends(); 186 void CancelPendingSends();
187 187
188 void OnWaitableEventSignaled(base::WaitableEvent* event); 188 void OnWaitableEventSignaled(base::WaitableEvent* event);
189 189
190 typedef std::deque<PendingSyncMsg> PendingSyncMessageQueue; 190 typedef std::deque<PendingSyncMsg> PendingSyncMessageQueue;
191 PendingSyncMessageQueue deserializers_; 191 PendingSyncMessageQueue deserializers_;
192 base::Lock deserializers_lock_; 192 base::Lock deserializers_lock_;
193 193
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // Used to signal events between the IPC and listener threads. 226 // Used to signal events between the IPC and listener threads.
227 base::WaitableEventWatcher dispatch_watcher_; 227 base::WaitableEventWatcher dispatch_watcher_;
228 base::WaitableEventWatcher::EventCallback dispatch_watcher_callback_; 228 base::WaitableEventWatcher::EventCallback dispatch_watcher_callback_;
229 229
230 DISALLOW_COPY_AND_ASSIGN(SyncChannel); 230 DISALLOW_COPY_AND_ASSIGN(SyncChannel);
231 }; 231 };
232 232
233 } // namespace IPC 233 } // namespace IPC
234 234
235 #endif // IPC_IPC_SYNC_CHANNEL_H_ 235 #endif // IPC_IPC_SYNC_CHANNEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698