PerformanceEntryTuple.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright (c) 2023, Luke Wilde <lukew@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/PerformanceTimeline/PerformanceEntry.h>
  8. namespace Web::PerformanceTimeline {
  9. // https://www.w3.org/TR/performance-timeline/#dfn-performance-entry-buffer-map
  10. struct PerformanceEntryTuple {
  11. // https://www.w3.org/TR/performance-timeline/#dfn-performance-entry-buffer
  12. // A performance entry buffer to store PerformanceEntry objects, that is initially empty.
  13. Vector<JS::Handle<PerformanceEntry>> performance_entry_buffer;
  14. // https://www.w3.org/TR/performance-timeline/#dfn-maxbuffersize
  15. // An integer maxBufferSize, initialized to the registry value for this entry type.
  16. // NOTE: The empty state represents Infinite size.
  17. Optional<u64> max_buffer_size;
  18. // https://www.w3.org/TR/performance-timeline/#dfn-availablefromtimeline
  19. // A boolean availableFromTimeline, initialized to the registry value for this entry type.
  20. AvailableFromTimeline available_from_timeline { AvailableFromTimeline::No };
  21. // https://www.w3.org/TR/performance-timeline/#dfn-dropped-entries-count
  22. // An integer dropped entries count that is initially 0.
  23. u64 dropped_entries_count { 0 };
  24. // https://www.w3.org/TR/performance-timeline/#dfn-determine-if-a-performance-entry-buffer-is-full
  25. bool is_full()
  26. {
  27. // 1. Let num current entries be the size of tuple's performance entry buffer.
  28. auto num_current_entries = performance_entry_buffer.size();
  29. // 2. If num current entries is less than tuples's maxBufferSize, return false.
  30. if (!max_buffer_size.has_value() || num_current_entries < max_buffer_size.value())
  31. return false;
  32. // 3. Increase tuple's dropped entries count by 1.
  33. ++dropped_entries_count;
  34. // 4. Return true.
  35. return true;
  36. }
  37. };
  38. }