xref: /aosp_15_r20/external/cronet/ipc/urgent_message_observer.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2023 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef IPC_URGENT_MESSAGE_OBSERVER_H_
6*6777b538SAndroid Build Coastguard Worker #define IPC_URGENT_MESSAGE_OBSERVER_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker namespace IPC {
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker // Interface for observing events related to urgent messages.
11*6777b538SAndroid Build Coastguard Worker class UrgentMessageObserver {
12*6777b538SAndroid Build Coastguard Worker  public:
13*6777b538SAndroid Build Coastguard Worker   virtual ~UrgentMessageObserver() = default;
14*6777b538SAndroid Build Coastguard Worker 
15*6777b538SAndroid Build Coastguard Worker   // Called on the IPC thread when an urgent message is received.
16*6777b538SAndroid Build Coastguard Worker   virtual void OnUrgentMessageReceived() = 0;
17*6777b538SAndroid Build Coastguard Worker 
18*6777b538SAndroid Build Coastguard Worker   // Called when an urgent message task has either run or failed to run. When
19*6777b538SAndroid Build Coastguard Worker   // the IPC method is successfully invoked, this callback runs on the same
20*6777b538SAndroid Build Coastguard Worker   // thread as the IPC method, after the IPC method runs. If the IPC method
21*6777b538SAndroid Build Coastguard Worker   // doesn't run, e.g. if the target task runner's queue has been shut down or
22*6777b538SAndroid Build Coastguard Worker   // the interface is closed, the callback can run on either the target thread
23*6777b538SAndroid Build Coastguard Worker   // or IPC thread.
24*6777b538SAndroid Build Coastguard Worker   virtual void OnUrgentMessageProcessed() = 0;
25*6777b538SAndroid Build Coastguard Worker };
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker }  // namespace IPC
28*6777b538SAndroid Build Coastguard Worker 
29*6777b538SAndroid Build Coastguard Worker #endif  // IPC_URGENT_MESSAGE_OBSERVER_H_
30