• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2016, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.os;
18 
19 import android.os.IIncidentReportStatusListener;
20 import android.os.IIncidentDumpCallback;
21 import android.os.IncidentManager;
22 import android.os.IncidentReportArgs;
23 
24 /**
25   * Binder interface to report system health incidents.
26   * {@hide}
27   */
28 interface IIncidentManager {
29 
30     /**
31      * Takes a report with the given args, reporting status to the optional listener.
32      *
33      * When the report is completed, the system report listener will be notified.
34      */
reportIncident(in IncidentReportArgs args)35     oneway void reportIncident(in IncidentReportArgs args);
36 
37     /**
38      * Takes a report with the given args, reporting status to the optional listener.
39      *
40      * When the report is completed, the system report listener will be notified.
41      */
reportIncidentToStream(in IncidentReportArgs args, @nullable IIncidentReportStatusListener listener, FileDescriptor stream)42     oneway void reportIncidentToStream(in IncidentReportArgs args,
43             @nullable IIncidentReportStatusListener listener,
44             FileDescriptor stream);
45 
46     /**
47      * Takes a report with the given args, reporting status to the optional listener.
48      * This should only be callable by dumpstate (enforced by callee).
49      *
50      * When the report is completed, the system report listener will be notified.
51      */
reportIncidentToDumpstate(FileDescriptor stream, @nullable IIncidentReportStatusListener listener)52     oneway void reportIncidentToDumpstate(FileDescriptor stream,
53             @nullable IIncidentReportStatusListener listener);
54 
55     /**
56      * Register a section callback with the given id and name. The callback function
57      * will be invoked when an incident report with all sections or sections matching
58      * the given id is being taken.
59      */
registerSection(int id, String name, IIncidentDumpCallback callback)60     oneway void registerSection(int id, String name, IIncidentDumpCallback callback);
61 
62     /**
63      * Unregister a section callback associated with the given id. The section must be
64      * previously registered with registerSection(int, String, IIncidentDumpCallback).
65      */
unregisterSection(int id)66     oneway void unregisterSection(int id);
67 
68     /**
69      * Tell the incident daemon that the android system server is up and running.
70      */
systemRunning()71     oneway void systemRunning();
72 
73     /**
74      * List the incident reports for the given ComponentName.  This is called
75      * via IncidentCompanion, which validates that the package name matches
76      * the caller.
77      */
getIncidentReportList(String pkg, String cls)78     List<String> getIncidentReportList(String pkg, String cls);
79 
80     /**
81      * Get the IncidentReport object.
82      */
getIncidentReport(String pkg, String cls, String id)83     IncidentManager.IncidentReport getIncidentReport(String pkg, String cls, String id);
84 
85     /**
86      * Reduce the refcount on this receiver. This is called
87      * via IncidentCompanion, which validates that the package name matches
88      * the caller.
89      */
deleteIncidentReports(String pkg, String cls, String id)90     void deleteIncidentReports(String pkg, String cls, String id);
91 
92     /**
93      * Delete all incident reports for this package.
94      */
deleteAllIncidentReports(String pkg)95     void deleteAllIncidentReports(String pkg);
96 }
97