V8 Project
v8::internal::RingBuffer< T, MAX_SIZE > Class Template Reference

#include <gc-tracer.h>

+ Inheritance diagram for v8::internal::RingBuffer< T, MAX_SIZE >:
+ Collaboration diagram for v8::internal::RingBuffer< T, MAX_SIZE >:

Classes

class  const_iterator
 

Public Member Functions

 RingBuffer ()
 
bool empty () const
 
size_t size () const
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator back () const
 
void push_back (const T &element)
 
void push_front (const T &element)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (RingBuffer)
 

Private Attributes

T elements_ [MAX_SIZE+1]
 
size_t begin_
 
size_t end_
 

Detailed Description

template<typename T, size_t MAX_SIZE>
class v8::internal::RingBuffer< T, MAX_SIZE >

Definition at line 16 of file gc-tracer.h.

Constructor & Destructor Documentation

◆ RingBuffer()

template<typename T , size_t MAX_SIZE>
v8::internal::RingBuffer< T, MAX_SIZE >::RingBuffer ( )
inline

Definition at line 54 of file gc-tracer.h.

54 : begin_(0), end_(0) {}

Member Function Documentation

◆ back()

template<typename T , size_t MAX_SIZE>
const_iterator v8::internal::RingBuffer< T, MAX_SIZE >::back ( ) const
inline

Definition at line 62 of file gc-tracer.h.

62 { return --end(); }
const_iterator end() const
Definition: gc-tracer.h:61

References v8::internal::RingBuffer< T, MAX_SIZE >::end().

+ Here is the call graph for this function:

◆ begin()

◆ DISALLOW_COPY_AND_ASSIGN()

template<typename T , size_t MAX_SIZE>
v8::internal::RingBuffer< T, MAX_SIZE >::DISALLOW_COPY_AND_ASSIGN ( RingBuffer< T, MAX_SIZE >  )
private

◆ empty()

template<typename T , size_t MAX_SIZE>
bool v8::internal::RingBuffer< T, MAX_SIZE >::empty ( ) const
inline

◆ end()

◆ push_back()

template<typename T , size_t MAX_SIZE>
void v8::internal::RingBuffer< T, MAX_SIZE >::push_back ( const T element)
inline

Definition at line 63 of file gc-tracer.h.

63  {
64  elements_[end_] = element;
65  end_ = (end_ + 1) % (MAX_SIZE + 1);
66  if (end_ == begin_) begin_ = (begin_ + 1) % (MAX_SIZE + 1);
67  }

References v8::internal::RingBuffer< T, MAX_SIZE >::begin_, v8::internal::RingBuffer< T, MAX_SIZE >::elements_, and v8::internal::RingBuffer< T, MAX_SIZE >::end_.

◆ push_front()

template<typename T , size_t MAX_SIZE>
void v8::internal::RingBuffer< T, MAX_SIZE >::push_front ( const T element)
inline

Definition at line 68 of file gc-tracer.h.

68  {
69  begin_ = (begin_ + MAX_SIZE) % (MAX_SIZE + 1);
70  if (begin_ == end_) end_ = (end_ + MAX_SIZE) % (MAX_SIZE + 1);
71  elements_[begin_] = element;
72  }

References v8::internal::RingBuffer< T, MAX_SIZE >::begin_, v8::internal::RingBuffer< T, MAX_SIZE >::elements_, and v8::internal::RingBuffer< T, MAX_SIZE >::end_.

Referenced by v8::internal::GCTracer::AddNewSpaceAllocationTime(), and v8::internal::GCTracer::Stop().

+ Here is the caller graph for this function:

◆ size()

template<typename T , size_t MAX_SIZE>
size_t v8::internal::RingBuffer< T, MAX_SIZE >::size ( ) const
inline

Definition at line 57 of file gc-tracer.h.

57  {
58  return (end_ - begin_ + MAX_SIZE + 1) % (MAX_SIZE + 1);
59  }

References v8::internal::RingBuffer< T, MAX_SIZE >::begin_, and v8::internal::RingBuffer< T, MAX_SIZE >::end_.

Referenced by v8::internal::GCTracer::MeanDuration().

+ Here is the caller graph for this function:

Member Data Documentation

◆ begin_

◆ elements_

◆ end_


The documentation for this class was generated from the following file: