| Index: runtime/vm/service_event.h
|
| diff --git a/runtime/vm/service_event.h b/runtime/vm/service_event.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b55d0a892eebabdb549b1f09d994edf3ea95604b
|
| --- /dev/null
|
| +++ b/runtime/vm/service_event.h
|
| @@ -0,0 +1,91 @@
|
| +// Copyright (c) 2015, 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.
|
| +
|
| +#ifndef VM_SERVICE_EVENT_H_
|
| +#define VM_SERVICE_EVENT_H_
|
| +
|
| +#include "vm/debugger.h"
|
| +
|
| +class DebuggerEvent;
|
| +
|
| +namespace dart {
|
| +
|
| +class ServiceEvent {
|
| + public:
|
| + enum EventType {
|
| + kIsolateStart, // New isolate has started
|
| + kIsolateExit, // Isolate has exited
|
| +
|
| + kPauseStart, // --pause-isolates-on-start
|
| + kPauseExit, // --pause-isolates-on-exit
|
| + kPauseBreakpoint,
|
| + kPauseInterrupted,
|
| + kPauseException,
|
| + kResume,
|
| +
|
| + kBreakpointAdded,
|
| + kBreakpointResolved,
|
| + kBreakpointRemoved,
|
| +
|
| + kIllegal,
|
| + };
|
| +
|
| + ServiceEvent(Isolate* isolate, EventType event_type)
|
| + : isolate_(isolate),
|
| + type_(event_type),
|
| + breakpoint_(NULL),
|
| + top_frame_(NULL),
|
| + exception_(NULL) {}
|
| +
|
| + explicit ServiceEvent(const DebuggerEvent* debugger_event);
|
| +
|
| + Isolate* isolate() const { return isolate_; }
|
| +
|
| + EventType type() const { return type_; }
|
| +
|
| + SourceBreakpoint* breakpoint() const {
|
| + return breakpoint_;
|
| + }
|
| + void set_breakpoint(SourceBreakpoint* bpt) {
|
| + ASSERT(type() == kPauseBreakpoint ||
|
| + type() == kBreakpointAdded ||
|
| + type() == kBreakpointResolved ||
|
| + type() == kBreakpointRemoved);
|
| + breakpoint_ = bpt;
|
| + }
|
| +
|
| + ActivationFrame* top_frame() const {
|
| + return top_frame_;
|
| + }
|
| + void set_top_frame(ActivationFrame* frame) {
|
| + ASSERT(type() == kPauseBreakpoint ||
|
| + type() == kPauseInterrupted ||
|
| + type() == kPauseException ||
|
| + type() == kResume);
|
| + top_frame_ = frame;
|
| + }
|
| +
|
| + const Object* exception() const {
|
| + return exception_;
|
| + }
|
| + void set_exception(const Object* exception) {
|
| + ASSERT(type_ == kPauseException);
|
| + exception_ = exception;
|
| + }
|
| +
|
| + void PrintJSON(JSONStream* js) const;
|
| +
|
| + static const char* EventTypeToCString(EventType type);
|
| +
|
| + private:
|
| + Isolate* isolate_;
|
| + EventType type_;
|
| + SourceBreakpoint* breakpoint_;
|
| + ActivationFrame* top_frame_;
|
| + const Object* exception_;
|
| +};
|
| +
|
| +} // namespace dart
|
| +
|
| +#endif // VM_SERVICE_EVENT_H_
|
|
|