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