Index: runtime/observatory/lib/src/models/objects/event.dart |
diff --git a/runtime/observatory/lib/src/models/objects/event.dart b/runtime/observatory/lib/src/models/objects/event.dart |
index aff194695c4d8e836c5676b82d680126f47006e8..33dfc63e165330102bc3471a1aa58ab153748af1 100644 |
--- a/runtime/observatory/lib/src/models/objects/event.dart |
+++ b/runtime/observatory/lib/src/models/objects/event.dart |
@@ -1,10 +1,14 @@ |
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file |
+// BSD-style license that can be found in the LICENSE file. |
part of models; |
abstract class Event { |
+ /// The timestamp (in milliseconds since the epoch) associated with this |
+ /// event. For some isolate pause events, the timestamp is from when the |
+ /// isolate was paused. For other events, the timestamp is from when the |
+ /// event was created. |
DateTime get timestamp; |
static bool isPauseEvent(Event event) { |
return event is PauseStartEvent || event is PauseExitEvent || |
@@ -12,64 +16,130 @@ abstract class Event { |
event is PauseExceptionEvent || event is NoneEvent; |
} |
} |
+ |
abstract class VMEvent extends Event { |
+ /// The vm with which this event is associated. |
VMRef get vm; |
} |
+ |
abstract class VMUpdateEvent extends VMEvent {} |
+ |
abstract class IsolateEvent extends Event { |
+ /// The isolate with which this event is associated. |
IsolateRef get isolate; |
} |
+ |
abstract class IsolateStartEvent extends IsolateEvent {} |
+ |
abstract class IsolateRunnableEvent extends IsolateEvent {} |
+ |
abstract class IsolateExitEvent extends IsolateEvent {} |
+ |
abstract class IsolateUpdateEvent extends IsolateEvent {} |
+ |
abstract class IsolateReloadEvent extends IsolateEvent { |
ErrorRef get error; |
} |
+ |
abstract class ServiceExtensionAddedEvent extends IsolateEvent { |
+ /// The RPC name of the extension that was added. |
String get extensionRPC; |
} |
-abstract class DebugEvent extends IsolateEvent {} |
+ |
+abstract class DebugEvent extends Event { |
+ /// The isolate with which this event is associated. |
+ IsolateRef get isolate; |
+} |
+ |
+abstract class DebuggerSettingsUpdateEvent extends DebugEvent {} |
+ |
abstract class PauseStartEvent extends DebugEvent {} |
+ |
abstract class PauseExitEvent extends DebugEvent {} |
+ |
abstract class PauseBreakpointEvent extends DebugEvent { |
- /// [optional] |
+ /// [optional] The breakpoint at which we are currently paused. |
Breakpoint get breakpoint; |
+ /// The list of breakpoints at which we are currently paused |
+ /// for a PauseBreakpoint event. |
+ /// |
+ /// This list may be empty. For example, while single-stepping, the |
+ /// VM sends a PauseBreakpoint event with no breakpoints. |
+ /// |
+ /// If there is more than one breakpoint set at the program position, |
+ /// then all of them will be provided. |
Iterable<Breakpoint> get pauseBreakpoints; |
+ /// The top stack frame associated with this event. |
Frame get topFrame; |
bool get atAsyncSuspension; |
} |
+ |
abstract class PauseInterruptedEvent extends DebugEvent { |
+ /// [optional] The top stack frame associated with this event. There will be |
+ /// no top frame if the isolate is idle (waiting in the message loop). |
Frame get topFrame; |
+ /// Is the isolate paused at an await, yield, or yield* statement? |
bool get atAsyncSuspension; |
} |
+ |
abstract class PauseExceptionEvent extends DebugEvent { |
+ /// The top stack frame associated with this event. |
Frame get topFrame; |
+ /// The exception associated with this event |
InstanceRef get exception; |
} |
-abstract class ResumeEvent extends DebugEvent {} |
+ |
+abstract class ResumeEvent extends DebugEvent { |
+ /// [optional] The top stack frame associated with this event. It is provided |
+ /// at all times except for the initial resume event that is delivered when an |
+ /// isolate begins execution. |
+ Frame get topFrame; |
+} |
+ |
abstract class BreakpointAddedEvent extends DebugEvent { |
+ /// The breakpoint which was added. |
Breakpoint get breakpoint; |
} |
+ |
abstract class BreakpointResolvedEvent extends DebugEvent { |
+ /// The breakpoint which was resolved. |
Breakpoint get breakpoint; |
} |
+ |
abstract class BreakpointRemovedEvent extends DebugEvent { |
+ /// The breakpoint which was removed. |
Breakpoint get breakpoint; |
} |
+ |
abstract class InspectEvent extends DebugEvent { |
+ /// The argument passed to dart:developer.inspect. |
InstanceRef get inspectee; |
} |
+ |
abstract class NoneEvent extends DebugEvent {} |
-abstract class GCEvent extends IsolateEvent {} |
+ |
+abstract class GCEvent extends Event { |
+ /// The isolate with which this event is associated. |
+ IsolateRef get isolate; |
+} |
+ |
abstract class ExtensionEvent extends Event { |
+ /// The isolate with which this event is associated. |
IsolateRef get isolate; |
+ /// The extension event kind. |
String get extensionKind; |
+ /// The extension event data. |
ExtensionData get extensionData; |
} |
-abstract class TimelineEventsEvent extends IsolateEvent { |
+ |
+abstract class TimelineEventsEvent extends Event { |
+ /// The isolate with which this event is associated. |
+ IsolateRef get isolate; |
+ /// An array of TimelineEvents |
Iterable<TimelineEvent> get timelineEvents; |
} |
+ |
abstract class ConnectionClosedEvent extends Event { |
+ /// The reason of the closed connection |
String get reason; |
} |