| 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 #ifndef VM_TIMELINE_H_ | 5 #ifndef VM_TIMELINE_H_ |
| 6 #define VM_TIMELINE_H_ | 6 #define VM_TIMELINE_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/bitfield.h" | 9 #include "vm/bitfield.h" |
| 10 #include "vm/os.h" | 10 #include "vm/os.h" |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 if (other->TimeEnd() > TimeEnd()) { | 229 if (other->TimeEnd() > TimeEnd()) { |
| 230 return false; | 230 return false; |
| 231 } | 231 } |
| 232 return true; | 232 return true; |
| 233 } | 233 } |
| 234 } | 234 } |
| 235 | 235 |
| 236 const char* GetSerializedJSON() const; | 236 const char* GetSerializedJSON() const; |
| 237 | 237 |
| 238 private: | 238 private: |
| 239 int64_t timestamp0_; | |
| 240 int64_t timestamp1_; | |
| 241 TimelineEventArgument* arguments_; | |
| 242 intptr_t arguments_length_; | |
| 243 uword state_; | |
| 244 const char* label_; | |
| 245 const char* category_; | |
| 246 ThreadId thread_; | |
| 247 Dart_Port isolate_id_; | |
| 248 | |
| 249 void FreeArguments(); | 239 void FreeArguments(); |
| 250 | 240 |
| 251 void StreamInit(TimelineStream* stream); | 241 void StreamInit(TimelineStream* stream); |
| 252 void Init(EventType event_type, const char* label); | 242 void Init(EventType event_type, const char* label); |
| 253 | 243 |
| 254 void set_event_type(EventType event_type) { | 244 void set_event_type(EventType event_type) { |
| 255 // We only reserve 4 bits to hold the event type. | 245 // We only reserve 4 bits to hold the event type. |
| 256 COMPILE_ASSERT(kNumEventTypes < 16); | 246 COMPILE_ASSERT(kNumEventTypes < 16); |
| 257 state_ = EventTypeField::update(event_type, state_); | 247 state_ = EventTypeField::update(event_type, state_); |
| 258 } | 248 } |
| 259 | 249 |
| 250 void set_timestamp0(int64_t value) { |
| 251 ASSERT(timestamp0_ == 0); |
| 252 timestamp0_ = value; |
| 253 } |
| 254 void set_timestamp1(int64_t value) { |
| 255 ASSERT(timestamp1_ == 0); |
| 256 timestamp1_ = value; |
| 257 } |
| 258 |
| 260 enum StateBits { | 259 enum StateBits { |
| 261 kEventTypeBit = 0, // reserve 4 bits for type. | 260 kEventTypeBit = 0, // reserve 4 bits for type. |
| 262 kNextBit = 4, | 261 kNextBit = 4, |
| 263 }; | 262 }; |
| 264 | 263 |
| 265 class EventTypeField : public BitField<EventType, kEventTypeBit, 4> {}; | 264 class EventTypeField : public BitField<EventType, kEventTypeBit, 4> {}; |
| 266 | 265 |
| 266 int64_t timestamp0_; |
| 267 int64_t timestamp1_; |
| 268 TimelineEventArgument* arguments_; |
| 269 intptr_t arguments_length_; |
| 270 uword state_; |
| 271 const char* label_; |
| 272 const char* category_; |
| 273 ThreadId thread_; |
| 274 Dart_Port isolate_id_; |
| 275 |
| 267 friend class TimelineEventRecorder; | 276 friend class TimelineEventRecorder; |
| 268 friend class TimelineEventEndlessRecorder; | 277 friend class TimelineEventEndlessRecorder; |
| 269 friend class TimelineEventRingRecorder; | 278 friend class TimelineEventRingRecorder; |
| 270 friend class TimelineStream; | 279 friend class TimelineStream; |
| 271 friend class TimelineTestHelper; | 280 friend class TimelineTestHelper; |
| 272 DISALLOW_COPY_AND_ASSIGN(TimelineEvent); | 281 DISALLOW_COPY_AND_ASSIGN(TimelineEvent); |
| 273 }; | 282 }; |
| 274 | 283 |
| 275 | 284 |
| 276 // A stream of timeline events. A stream has a name and can be enabled or | 285 // A stream of timeline events. A stream has a name and can be enabled or |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 | 653 |
| 645 private: | 654 private: |
| 646 TimelineEventBlock* current_; | 655 TimelineEventBlock* current_; |
| 647 TimelineEventRecorder* recorder_; | 656 TimelineEventRecorder* recorder_; |
| 648 }; | 657 }; |
| 649 | 658 |
| 650 | 659 |
| 651 } // namespace dart | 660 } // namespace dart |
| 652 | 661 |
| 653 #endif // VM_TIMELINE_H_ | 662 #endif // VM_TIMELINE_H_ |
| OLD | NEW |