1*90c8c64dSAndroid Build Coastguard Worker/* 2*90c8c64dSAndroid Build Coastguard Worker * Copyright (C) 2023 The Android Open Source Project 3*90c8c64dSAndroid Build Coastguard Worker * 4*90c8c64dSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*90c8c64dSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*90c8c64dSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*90c8c64dSAndroid Build Coastguard Worker * 8*90c8c64dSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*90c8c64dSAndroid Build Coastguard Worker * 10*90c8c64dSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*90c8c64dSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*90c8c64dSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*90c8c64dSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*90c8c64dSAndroid Build Coastguard Worker * limitations under the License. 15*90c8c64dSAndroid Build Coastguard Worker */ 16*90c8c64dSAndroid Build Coastguard Worker 17*90c8c64dSAndroid Build Coastguard Workerimport {assertTrue} from 'common/assert_utils'; 18*90c8c64dSAndroid Build Coastguard Workerimport {Timestamp} from 'common/time'; 19*90c8c64dSAndroid Build Coastguard Workerimport {Trace, TraceEntry} from 'trace/trace'; 20*90c8c64dSAndroid Build Coastguard Workerimport {TracePosition} from 'trace/trace_position'; 21*90c8c64dSAndroid Build Coastguard Workerimport {TraceType} from 'trace/trace_type'; 22*90c8c64dSAndroid Build Coastguard Workerimport {AdbFiles} from 'trace_collection/adb_files'; 23*90c8c64dSAndroid Build Coastguard Workerimport {View, Viewer, ViewType} from 'viewers/viewer'; 24*90c8c64dSAndroid Build Coastguard Worker 25*90c8c64dSAndroid Build Coastguard Workerexport enum WinscopeEventType { 26*90c8c64dSAndroid Build Coastguard Worker APP_INITIALIZED, 27*90c8c64dSAndroid Build Coastguard Worker APP_FILES_COLLECTED, 28*90c8c64dSAndroid Build Coastguard Worker APP_FILES_UPLOADED, 29*90c8c64dSAndroid Build Coastguard Worker APP_RESET_REQUEST, 30*90c8c64dSAndroid Build Coastguard Worker APP_TRACE_VIEW_REQUEST, 31*90c8c64dSAndroid Build Coastguard Worker APP_REFRESH_DUMPS_REQUEST, 32*90c8c64dSAndroid Build Coastguard Worker REMOTE_TOOL_DOWNLOAD_START, 33*90c8c64dSAndroid Build Coastguard Worker REMOTE_TOOL_FILES_RECEIVED, 34*90c8c64dSAndroid Build Coastguard Worker REMOTE_TOOL_TIMESTAMP_RECEIVED, 35*90c8c64dSAndroid Build Coastguard Worker TABBED_VIEW_SWITCHED, 36*90c8c64dSAndroid Build Coastguard Worker TABBED_VIEW_SWITCH_REQUEST, 37*90c8c64dSAndroid Build Coastguard Worker TRACE_POSITION_UPDATE, 38*90c8c64dSAndroid Build Coastguard Worker VIEWERS_LOADED, 39*90c8c64dSAndroid Build Coastguard Worker VIEWERS_UNLOADED, 40*90c8c64dSAndroid Build Coastguard Worker EXPANDED_TIMELINE_TOGGLED, 41*90c8c64dSAndroid Build Coastguard Worker ACTIVE_TRACE_CHANGED, 42*90c8c64dSAndroid Build Coastguard Worker DARK_MODE_TOGGLED, 43*90c8c64dSAndroid Build Coastguard Worker NO_TRACE_TARGETS_SELECTED, 44*90c8c64dSAndroid Build Coastguard Worker FILTER_PRESET_SAVE_REQUEST, 45*90c8c64dSAndroid Build Coastguard Worker FILTER_PRESET_APPLY_REQUEST, 46*90c8c64dSAndroid Build Coastguard Worker TRACE_SEARCH_REQUEST, 47*90c8c64dSAndroid Build Coastguard Worker TRACE_SEARCH_FAILED, 48*90c8c64dSAndroid Build Coastguard Worker TRACE_SEARCH_COMPLETED, 49*90c8c64dSAndroid Build Coastguard Worker TRACE_ADD_REQUEST, 50*90c8c64dSAndroid Build Coastguard Worker TRACE_REMOVE_REQUEST, 51*90c8c64dSAndroid Build Coastguard Worker INITIALIZE_TRACE_SEARCH_REQUEST, 52*90c8c64dSAndroid Build Coastguard Worker TRACE_SEARCH_INITIALIZED, 53*90c8c64dSAndroid Build Coastguard Worker} 54*90c8c64dSAndroid Build Coastguard Worker 55*90c8c64dSAndroid Build Coastguard Workerinterface TypeMap { 56*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_INITIALIZED]: AppInitialized; 57*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_FILES_COLLECTED]: AppFilesCollected; 58*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_FILES_UPLOADED]: AppFilesUploaded; 59*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_RESET_REQUEST]: AppResetRequest; 60*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_TRACE_VIEW_REQUEST]: AppTraceViewRequest; 61*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.APP_REFRESH_DUMPS_REQUEST]: AppRefreshDumpsRequest; 62*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.REMOTE_TOOL_DOWNLOAD_START]: RemoteToolDownloadStart; 63*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.REMOTE_TOOL_FILES_RECEIVED]: RemoteToolFilesReceived; 64*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.REMOTE_TOOL_TIMESTAMP_RECEIVED]: RemoteToolTimestampReceived; 65*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TABBED_VIEW_SWITCHED]: TabbedViewSwitched; 66*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TABBED_VIEW_SWITCH_REQUEST]: TabbedViewSwitchRequest; 67*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_POSITION_UPDATE]: TracePositionUpdate; 68*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.VIEWERS_LOADED]: ViewersLoaded; 69*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.VIEWERS_UNLOADED]: ViewersUnloaded; 70*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.EXPANDED_TIMELINE_TOGGLED]: ExpandedTimelineToggled; 71*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.ACTIVE_TRACE_CHANGED]: ActiveTraceChanged; 72*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.DARK_MODE_TOGGLED]: DarkModeToggled; 73*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.NO_TRACE_TARGETS_SELECTED]: NoTraceTargetsSelected; 74*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.FILTER_PRESET_SAVE_REQUEST]: FilterPresetSaveRequest; 75*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.FILTER_PRESET_APPLY_REQUEST]: FilterPresetApplyRequest; 76*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_SEARCH_REQUEST]: TraceSearchRequest; 77*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_SEARCH_FAILED]: TraceSearchFailed; 78*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_ADD_REQUEST]: TraceAddRequest; 79*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_REMOVE_REQUEST]: TraceRemoveRequest; 80*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.INITIALIZE_TRACE_SEARCH_REQUEST]: InitializeTraceSearchRequest; 81*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_SEARCH_INITIALIZED]: TraceSearchInitialized; 82*90c8c64dSAndroid Build Coastguard Worker [WinscopeEventType.TRACE_SEARCH_COMPLETED]: TraceSearchCompleted; 83*90c8c64dSAndroid Build Coastguard Worker} 84*90c8c64dSAndroid Build Coastguard Worker 85*90c8c64dSAndroid Build Coastguard Workerexport abstract class WinscopeEvent { 86*90c8c64dSAndroid Build Coastguard Worker abstract readonly type: WinscopeEventType; 87*90c8c64dSAndroid Build Coastguard Worker 88*90c8c64dSAndroid Build Coastguard Worker async visit<T extends WinscopeEventType>( 89*90c8c64dSAndroid Build Coastguard Worker type: T, 90*90c8c64dSAndroid Build Coastguard Worker callback: (event: TypeMap[T]) => Promise<void>, 91*90c8c64dSAndroid Build Coastguard Worker ) { 92*90c8c64dSAndroid Build Coastguard Worker if (this.type === type) { 93*90c8c64dSAndroid Build Coastguard Worker const event = this as unknown as TypeMap[T]; 94*90c8c64dSAndroid Build Coastguard Worker await callback(event); 95*90c8c64dSAndroid Build Coastguard Worker } 96*90c8c64dSAndroid Build Coastguard Worker } 97*90c8c64dSAndroid Build Coastguard Worker} 98*90c8c64dSAndroid Build Coastguard Worker 99*90c8c64dSAndroid Build Coastguard Workerexport class AppInitialized extends WinscopeEvent { 100*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_INITIALIZED; 101*90c8c64dSAndroid Build Coastguard Worker} 102*90c8c64dSAndroid Build Coastguard Worker 103*90c8c64dSAndroid Build Coastguard Workerexport class AppFilesCollected extends WinscopeEvent { 104*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_FILES_COLLECTED; 105*90c8c64dSAndroid Build Coastguard Worker 106*90c8c64dSAndroid Build Coastguard Worker constructor(readonly files: AdbFiles) { 107*90c8c64dSAndroid Build Coastguard Worker super(); 108*90c8c64dSAndroid Build Coastguard Worker } 109*90c8c64dSAndroid Build Coastguard Worker} 110*90c8c64dSAndroid Build Coastguard Worker 111*90c8c64dSAndroid Build Coastguard Workerexport class AppFilesUploaded extends WinscopeEvent { 112*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_FILES_UPLOADED; 113*90c8c64dSAndroid Build Coastguard Worker 114*90c8c64dSAndroid Build Coastguard Worker constructor(readonly files: File[]) { 115*90c8c64dSAndroid Build Coastguard Worker super(); 116*90c8c64dSAndroid Build Coastguard Worker } 117*90c8c64dSAndroid Build Coastguard Worker} 118*90c8c64dSAndroid Build Coastguard Worker 119*90c8c64dSAndroid Build Coastguard Workerexport class AppResetRequest extends WinscopeEvent { 120*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_RESET_REQUEST; 121*90c8c64dSAndroid Build Coastguard Worker} 122*90c8c64dSAndroid Build Coastguard Worker 123*90c8c64dSAndroid Build Coastguard Workerexport class AppTraceViewRequest extends WinscopeEvent { 124*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_TRACE_VIEW_REQUEST; 125*90c8c64dSAndroid Build Coastguard Worker} 126*90c8c64dSAndroid Build Coastguard Worker 127*90c8c64dSAndroid Build Coastguard Workerexport class AppRefreshDumpsRequest extends WinscopeEvent { 128*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.APP_REFRESH_DUMPS_REQUEST; 129*90c8c64dSAndroid Build Coastguard Worker} 130*90c8c64dSAndroid Build Coastguard Worker 131*90c8c64dSAndroid Build Coastguard Workerexport class RemoteToolDownloadStart extends WinscopeEvent { 132*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.REMOTE_TOOL_DOWNLOAD_START; 133*90c8c64dSAndroid Build Coastguard Worker} 134*90c8c64dSAndroid Build Coastguard Worker 135*90c8c64dSAndroid Build Coastguard Workerexport class RemoteToolFilesReceived extends WinscopeEvent { 136*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.REMOTE_TOOL_FILES_RECEIVED; 137*90c8c64dSAndroid Build Coastguard Worker 138*90c8c64dSAndroid Build Coastguard Worker constructor( 139*90c8c64dSAndroid Build Coastguard Worker readonly files: File[], 140*90c8c64dSAndroid Build Coastguard Worker readonly deferredTimestamp?: () => Timestamp | undefined, 141*90c8c64dSAndroid Build Coastguard Worker ) { 142*90c8c64dSAndroid Build Coastguard Worker super(); 143*90c8c64dSAndroid Build Coastguard Worker } 144*90c8c64dSAndroid Build Coastguard Worker} 145*90c8c64dSAndroid Build Coastguard Worker 146*90c8c64dSAndroid Build Coastguard Workerexport class RemoteToolTimestampReceived extends WinscopeEvent { 147*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.REMOTE_TOOL_TIMESTAMP_RECEIVED; 148*90c8c64dSAndroid Build Coastguard Worker 149*90c8c64dSAndroid Build Coastguard Worker constructor(readonly deferredTimestamp: () => Timestamp | undefined) { 150*90c8c64dSAndroid Build Coastguard Worker super(); 151*90c8c64dSAndroid Build Coastguard Worker } 152*90c8c64dSAndroid Build Coastguard Worker} 153*90c8c64dSAndroid Build Coastguard Worker 154*90c8c64dSAndroid Build Coastguard Workerexport class TabbedViewSwitched extends WinscopeEvent { 155*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TABBED_VIEW_SWITCHED; 156*90c8c64dSAndroid Build Coastguard Worker readonly newFocusedView: View; 157*90c8c64dSAndroid Build Coastguard Worker 158*90c8c64dSAndroid Build Coastguard Worker constructor(view: View) { 159*90c8c64dSAndroid Build Coastguard Worker super(); 160*90c8c64dSAndroid Build Coastguard Worker assertTrue( 161*90c8c64dSAndroid Build Coastguard Worker view.type === ViewType.TRACE_TAB || view.type === ViewType.GLOBAL_SEARCH, 162*90c8c64dSAndroid Build Coastguard Worker ); 163*90c8c64dSAndroid Build Coastguard Worker this.newFocusedView = view; 164*90c8c64dSAndroid Build Coastguard Worker } 165*90c8c64dSAndroid Build Coastguard Worker} 166*90c8c64dSAndroid Build Coastguard Worker 167*90c8c64dSAndroid Build Coastguard Workerexport class TabbedViewSwitchRequest extends WinscopeEvent { 168*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TABBED_VIEW_SWITCH_REQUEST; 169*90c8c64dSAndroid Build Coastguard Worker 170*90c8c64dSAndroid Build Coastguard Worker readonly newActiveTrace: Trace<object>; 171*90c8c64dSAndroid Build Coastguard Worker 172*90c8c64dSAndroid Build Coastguard Worker constructor(newActiveTrace: Trace<object>) { 173*90c8c64dSAndroid Build Coastguard Worker super(); 174*90c8c64dSAndroid Build Coastguard Worker this.newActiveTrace = newActiveTrace; 175*90c8c64dSAndroid Build Coastguard Worker } 176*90c8c64dSAndroid Build Coastguard Worker} 177*90c8c64dSAndroid Build Coastguard Worker 178*90c8c64dSAndroid Build Coastguard Workerexport class TracePositionUpdate extends WinscopeEvent { 179*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_POSITION_UPDATE; 180*90c8c64dSAndroid Build Coastguard Worker readonly position: TracePosition; 181*90c8c64dSAndroid Build Coastguard Worker readonly updateTimeline: boolean; 182*90c8c64dSAndroid Build Coastguard Worker 183*90c8c64dSAndroid Build Coastguard Worker constructor(position: TracePosition, updateTimeline = false) { 184*90c8c64dSAndroid Build Coastguard Worker super(); 185*90c8c64dSAndroid Build Coastguard Worker this.position = position; 186*90c8c64dSAndroid Build Coastguard Worker this.updateTimeline = updateTimeline; 187*90c8c64dSAndroid Build Coastguard Worker } 188*90c8c64dSAndroid Build Coastguard Worker 189*90c8c64dSAndroid Build Coastguard Worker static fromTimestamp( 190*90c8c64dSAndroid Build Coastguard Worker timestamp: Timestamp, 191*90c8c64dSAndroid Build Coastguard Worker updateTimeline = false, 192*90c8c64dSAndroid Build Coastguard Worker ): TracePositionUpdate { 193*90c8c64dSAndroid Build Coastguard Worker const position = TracePosition.fromTimestamp(timestamp); 194*90c8c64dSAndroid Build Coastguard Worker return new TracePositionUpdate(position, updateTimeline); 195*90c8c64dSAndroid Build Coastguard Worker } 196*90c8c64dSAndroid Build Coastguard Worker 197*90c8c64dSAndroid Build Coastguard Worker static fromTraceEntry( 198*90c8c64dSAndroid Build Coastguard Worker entry: TraceEntry<any>, 199*90c8c64dSAndroid Build Coastguard Worker updateTimeline = false, 200*90c8c64dSAndroid Build Coastguard Worker ): TracePositionUpdate { 201*90c8c64dSAndroid Build Coastguard Worker const position = TracePosition.fromTraceEntry(entry); 202*90c8c64dSAndroid Build Coastguard Worker return new TracePositionUpdate(position, updateTimeline); 203*90c8c64dSAndroid Build Coastguard Worker } 204*90c8c64dSAndroid Build Coastguard Worker} 205*90c8c64dSAndroid Build Coastguard Worker 206*90c8c64dSAndroid Build Coastguard Workerexport class ViewersLoaded extends WinscopeEvent { 207*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.VIEWERS_LOADED; 208*90c8c64dSAndroid Build Coastguard Worker 209*90c8c64dSAndroid Build Coastguard Worker constructor(readonly viewers: Viewer[]) { 210*90c8c64dSAndroid Build Coastguard Worker super(); 211*90c8c64dSAndroid Build Coastguard Worker } 212*90c8c64dSAndroid Build Coastguard Worker} 213*90c8c64dSAndroid Build Coastguard Worker 214*90c8c64dSAndroid Build Coastguard Workerexport class ViewersUnloaded extends WinscopeEvent { 215*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.VIEWERS_UNLOADED; 216*90c8c64dSAndroid Build Coastguard Worker} 217*90c8c64dSAndroid Build Coastguard Worker 218*90c8c64dSAndroid Build Coastguard Workerexport class ExpandedTimelineToggled extends WinscopeEvent { 219*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.EXPANDED_TIMELINE_TOGGLED; 220*90c8c64dSAndroid Build Coastguard Worker constructor(readonly isTimelineExpanded: boolean) { 221*90c8c64dSAndroid Build Coastguard Worker super(); 222*90c8c64dSAndroid Build Coastguard Worker } 223*90c8c64dSAndroid Build Coastguard Worker} 224*90c8c64dSAndroid Build Coastguard Worker 225*90c8c64dSAndroid Build Coastguard Workerexport class ActiveTraceChanged extends WinscopeEvent { 226*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.ACTIVE_TRACE_CHANGED; 227*90c8c64dSAndroid Build Coastguard Worker constructor(readonly trace: Trace<object>) { 228*90c8c64dSAndroid Build Coastguard Worker super(); 229*90c8c64dSAndroid Build Coastguard Worker } 230*90c8c64dSAndroid Build Coastguard Worker} 231*90c8c64dSAndroid Build Coastguard Worker 232*90c8c64dSAndroid Build Coastguard Workerexport class DarkModeToggled extends WinscopeEvent { 233*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.DARK_MODE_TOGGLED; 234*90c8c64dSAndroid Build Coastguard Worker constructor(readonly isDarkMode: boolean) { 235*90c8c64dSAndroid Build Coastguard Worker super(); 236*90c8c64dSAndroid Build Coastguard Worker } 237*90c8c64dSAndroid Build Coastguard Worker} 238*90c8c64dSAndroid Build Coastguard Worker 239*90c8c64dSAndroid Build Coastguard Workerexport class NoTraceTargetsSelected extends WinscopeEvent { 240*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.NO_TRACE_TARGETS_SELECTED; 241*90c8c64dSAndroid Build Coastguard Worker} 242*90c8c64dSAndroid Build Coastguard Worker 243*90c8c64dSAndroid Build Coastguard Workerexport class FilterPresetSaveRequest extends WinscopeEvent { 244*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.FILTER_PRESET_SAVE_REQUEST; 245*90c8c64dSAndroid Build Coastguard Worker constructor(readonly name: string, readonly traceType: TraceType) { 246*90c8c64dSAndroid Build Coastguard Worker super(); 247*90c8c64dSAndroid Build Coastguard Worker } 248*90c8c64dSAndroid Build Coastguard Worker} 249*90c8c64dSAndroid Build Coastguard Worker 250*90c8c64dSAndroid Build Coastguard Workerexport class FilterPresetApplyRequest extends WinscopeEvent { 251*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.FILTER_PRESET_APPLY_REQUEST; 252*90c8c64dSAndroid Build Coastguard Worker constructor(readonly name: string, readonly traceType: TraceType) { 253*90c8c64dSAndroid Build Coastguard Worker super(); 254*90c8c64dSAndroid Build Coastguard Worker } 255*90c8c64dSAndroid Build Coastguard Worker} 256*90c8c64dSAndroid Build Coastguard Worker 257*90c8c64dSAndroid Build Coastguard Workerexport class TraceSearchRequest extends WinscopeEvent { 258*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_SEARCH_REQUEST; 259*90c8c64dSAndroid Build Coastguard Worker constructor(readonly query: string) { 260*90c8c64dSAndroid Build Coastguard Worker super(); 261*90c8c64dSAndroid Build Coastguard Worker } 262*90c8c64dSAndroid Build Coastguard Worker} 263*90c8c64dSAndroid Build Coastguard Worker 264*90c8c64dSAndroid Build Coastguard Workerexport class TraceSearchFailed extends WinscopeEvent { 265*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_SEARCH_FAILED; 266*90c8c64dSAndroid Build Coastguard Worker} 267*90c8c64dSAndroid Build Coastguard Worker 268*90c8c64dSAndroid Build Coastguard Workerexport class TraceAddRequest extends WinscopeEvent { 269*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_ADD_REQUEST; 270*90c8c64dSAndroid Build Coastguard Worker constructor(readonly trace: Trace<object>) { 271*90c8c64dSAndroid Build Coastguard Worker super(); 272*90c8c64dSAndroid Build Coastguard Worker } 273*90c8c64dSAndroid Build Coastguard Worker} 274*90c8c64dSAndroid Build Coastguard Worker 275*90c8c64dSAndroid Build Coastguard Workerexport class TraceRemoveRequest extends WinscopeEvent { 276*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_REMOVE_REQUEST; 277*90c8c64dSAndroid Build Coastguard Worker constructor(readonly trace: Trace<object>) { 278*90c8c64dSAndroid Build Coastguard Worker super(); 279*90c8c64dSAndroid Build Coastguard Worker } 280*90c8c64dSAndroid Build Coastguard Worker} 281*90c8c64dSAndroid Build Coastguard Worker 282*90c8c64dSAndroid Build Coastguard Workerexport class InitializeTraceSearchRequest extends WinscopeEvent { 283*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.INITIALIZE_TRACE_SEARCH_REQUEST; 284*90c8c64dSAndroid Build Coastguard Worker} 285*90c8c64dSAndroid Build Coastguard Worker 286*90c8c64dSAndroid Build Coastguard Workerexport class TraceSearchInitialized extends WinscopeEvent { 287*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_SEARCH_INITIALIZED; 288*90c8c64dSAndroid Build Coastguard Worker 289*90c8c64dSAndroid Build Coastguard Worker constructor(readonly views: string[]) { 290*90c8c64dSAndroid Build Coastguard Worker super(); 291*90c8c64dSAndroid Build Coastguard Worker } 292*90c8c64dSAndroid Build Coastguard Worker} 293*90c8c64dSAndroid Build Coastguard Worker 294*90c8c64dSAndroid Build Coastguard Workerexport class TraceSearchCompleted extends WinscopeEvent { 295*90c8c64dSAndroid Build Coastguard Worker override readonly type = WinscopeEventType.TRACE_SEARCH_COMPLETED; 296*90c8c64dSAndroid Build Coastguard Worker} 297