| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/service_event.h" | 5 #include "vm/service_event.h" |
| 6 | 6 |
| 7 #include "vm/debugger.h" | 7 #include "vm/debugger.h" |
| 8 #include "vm/message_handler.h" | 8 #include "vm/message_handler.h" |
| 9 #include "vm/service_isolate.h" | 9 #include "vm/service_isolate.h" |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 // paused timestamp because we haven't paused yet. Use the current time. | 42 // paused timestamp because we haven't paused yet. Use the current time. |
| 43 timestamp_ = OS::GetCurrentTimeMillis(); | 43 timestamp_ = OS::GetCurrentTimeMillis(); |
| 44 } else if ((event_kind == ServiceEvent::kPauseStart) || | 44 } else if ((event_kind == ServiceEvent::kPauseStart) || |
| 45 (event_kind == ServiceEvent::kPauseExit)) { | 45 (event_kind == ServiceEvent::kPauseExit)) { |
| 46 timestamp_ = isolate->message_handler()->paused_timestamp(); | 46 timestamp_ = isolate->message_handler()->paused_timestamp(); |
| 47 } else if (event_kind == ServiceEvent::kResume) { | 47 } else if (event_kind == ServiceEvent::kResume) { |
| 48 timestamp_ = isolate->last_resume_timestamp(); | 48 timestamp_ = isolate->last_resume_timestamp(); |
| 49 } | 49 } |
| 50 } | 50 } |
| 51 | 51 |
| 52 | |
| 53 void ServiceEvent::UpdateTimestamp() { | 52 void ServiceEvent::UpdateTimestamp() { |
| 54 timestamp_ = OS::GetCurrentTimeMillis(); | 53 timestamp_ = OS::GetCurrentTimeMillis(); |
| 55 } | 54 } |
| 56 | 55 |
| 57 | |
| 58 const char* ServiceEvent::KindAsCString() const { | 56 const char* ServiceEvent::KindAsCString() const { |
| 59 switch (kind()) { | 57 switch (kind()) { |
| 60 case kVMUpdate: | 58 case kVMUpdate: |
| 61 return "VMUpdate"; | 59 return "VMUpdate"; |
| 62 case kIsolateStart: | 60 case kIsolateStart: |
| 63 return "IsolateStart"; | 61 return "IsolateStart"; |
| 64 case kIsolateRunnable: | 62 case kIsolateRunnable: |
| 65 return "IsolateRunnable"; | 63 return "IsolateRunnable"; |
| 66 case kIsolateExit: | 64 case kIsolateExit: |
| 67 return "IsolateExit"; | 65 return "IsolateExit"; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 case kTimelineEvents: | 110 case kTimelineEvents: |
| 113 return "TimelineEvents"; | 111 return "TimelineEvents"; |
| 114 case kEditorObjectSelected: | 112 case kEditorObjectSelected: |
| 115 return "_EditorObjectSelected"; | 113 return "_EditorObjectSelected"; |
| 116 default: | 114 default: |
| 117 UNREACHABLE(); | 115 UNREACHABLE(); |
| 118 return "Unknown"; | 116 return "Unknown"; |
| 119 } | 117 } |
| 120 } | 118 } |
| 121 | 119 |
| 122 | |
| 123 const StreamInfo* ServiceEvent::stream_info() const { | 120 const StreamInfo* ServiceEvent::stream_info() const { |
| 124 switch (kind()) { | 121 switch (kind()) { |
| 125 case kVMUpdate: | 122 case kVMUpdate: |
| 126 return &Service::vm_stream; | 123 return &Service::vm_stream; |
| 127 | 124 |
| 128 case kIsolateStart: | 125 case kIsolateStart: |
| 129 case kIsolateRunnable: | 126 case kIsolateRunnable: |
| 130 case kIsolateExit: | 127 case kIsolateExit: |
| 131 case kIsolateUpdate: | 128 case kIsolateUpdate: |
| 132 case kIsolateReload: | 129 case kIsolateReload: |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 163 |
| 167 case kEditorObjectSelected: | 164 case kEditorObjectSelected: |
| 168 return &Service::editor_stream; | 165 return &Service::editor_stream; |
| 169 | 166 |
| 170 default: | 167 default: |
| 171 UNREACHABLE(); | 168 UNREACHABLE(); |
| 172 return NULL; | 169 return NULL; |
| 173 } | 170 } |
| 174 } | 171 } |
| 175 | 172 |
| 176 | |
| 177 const char* ServiceEvent::stream_id() const { | 173 const char* ServiceEvent::stream_id() const { |
| 178 const StreamInfo* stream = stream_info(); | 174 const StreamInfo* stream = stream_info(); |
| 179 if (stream == NULL) { | 175 if (stream == NULL) { |
| 180 ASSERT(kind() == kEmbedder); | 176 ASSERT(kind() == kEmbedder); |
| 181 return embedder_stream_id_; | 177 return embedder_stream_id_; |
| 182 } else { | 178 } else { |
| 183 return stream->id(); | 179 return stream->id(); |
| 184 } | 180 } |
| 185 } | 181 } |
| 186 | 182 |
| 187 | |
| 188 void ServiceEvent::PrintJSON(JSONStream* js) const { | 183 void ServiceEvent::PrintJSON(JSONStream* js) const { |
| 189 JSONObject jsobj(js); | 184 JSONObject jsobj(js); |
| 190 PrintJSONHeader(&jsobj); | 185 PrintJSONHeader(&jsobj); |
| 191 if (kind() == kIsolateReload) { | 186 if (kind() == kIsolateReload) { |
| 192 if (reload_error_ == NULL) { | 187 if (reload_error_ == NULL) { |
| 193 jsobj.AddProperty("status", "success"); | 188 jsobj.AddProperty("status", "success"); |
| 194 } else { | 189 } else { |
| 195 jsobj.AddProperty("status", "failure"); | 190 jsobj.AddProperty("status", "failure"); |
| 196 jsobj.AddProperty("reloadError", *(reload_error())); | 191 jsobj.AddProperty("reloadError", *(reload_error())); |
| 197 } | 192 } |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 extension_event_.event_data->ToCString()); | 263 extension_event_.event_data->ToCString()); |
| 269 } | 264 } |
| 270 if (kind() == kEditorObjectSelected) { | 265 if (kind() == kEditorObjectSelected) { |
| 271 if (editor_event_.object != NULL) { | 266 if (editor_event_.object != NULL) { |
| 272 jsobj.AddProperty("editor", editor_event_.editor); | 267 jsobj.AddProperty("editor", editor_event_.editor); |
| 273 jsobj.AddProperty("object", *(editor_event_.object)); | 268 jsobj.AddProperty("object", *(editor_event_.object)); |
| 274 } | 269 } |
| 275 } | 270 } |
| 276 } | 271 } |
| 277 | 272 |
| 278 | |
| 279 void ServiceEvent::PrintJSONHeader(JSONObject* jsobj) const { | 273 void ServiceEvent::PrintJSONHeader(JSONObject* jsobj) const { |
| 280 ASSERT(jsobj != NULL); | 274 ASSERT(jsobj != NULL); |
| 281 jsobj->AddProperty("type", "Event"); | 275 jsobj->AddProperty("type", "Event"); |
| 282 jsobj->AddProperty("kind", KindAsCString()); | 276 jsobj->AddProperty("kind", KindAsCString()); |
| 283 if (kind() == kExtension) { | 277 if (kind() == kExtension) { |
| 284 ASSERT(extension_event_.event_kind != NULL); | 278 ASSERT(extension_event_.event_kind != NULL); |
| 285 jsobj->AddProperty("extensionKind", | 279 jsobj->AddProperty("extensionKind", |
| 286 extension_event_.event_kind->ToCString()); | 280 extension_event_.event_kind->ToCString()); |
| 287 } | 281 } |
| 288 if (isolate() == NULL) { | 282 if (isolate() == NULL) { |
| 289 jsobj->AddPropertyVM("vm"); | 283 jsobj->AddPropertyVM("vm"); |
| 290 } else { | 284 } else { |
| 291 jsobj->AddProperty("isolate", isolate()); | 285 jsobj->AddProperty("isolate", isolate()); |
| 292 } | 286 } |
| 293 ASSERT(timestamp_ != -1); | 287 ASSERT(timestamp_ != -1); |
| 294 jsobj->AddPropertyTimeMillis("timestamp", timestamp_); | 288 jsobj->AddPropertyTimeMillis("timestamp", timestamp_); |
| 295 } | 289 } |
| 296 | 290 |
| 297 #endif // !PRODUCT | 291 #endif // !PRODUCT |
| 298 | 292 |
| 299 } // namespace dart | 293 } // namespace dart |
| OLD | NEW |