Shaka Player Embedded
Public Member Functions | Friends | List of all members
shaka::memory::ObjectTracker Class Referencefinal

#include <object_tracker.h>

Inheritance diagram for shaka::memory::ObjectTracker:
shaka::PseudoSingleton< ObjectTracker >

Public Member Functions

 ObjectTracker (HeapTracer *tracer)
 
 ~ObjectTracker ()
 
 SHAKA_NON_COPYABLE_OR_MOVABLE_TYPE (ObjectTracker)
 
void RegisterObject (Traceable *object)
 
void ForceAlive (const Traceable *ptr)
 
void AddRef (const Traceable *object)
 
void RemoveRef (const Traceable *object)
 
std::unordered_set< const Traceable * > GetAliveObjects () const
 
void FreeDeadObjects (const std::unordered_set< const Traceable *> &alive)
 
void Dispose ()
 
- Public Member Functions inherited from shaka::PseudoSingleton< ObjectTracker >
 PseudoSingleton ()
 
 ~PseudoSingleton ()
 

Friends

class ObjectTrackerTest
 

Additional Inherited Members

- Static Public Member Functions inherited from shaka::PseudoSingleton< ObjectTracker >
static ObjectTracker * Instance ()
 
static ObjectTracker * InstanceOrNull ()
 

Detailed Description

Defines a dynamic object tracker. This is a singleton class. This is used to track the dynamic backing objects that we create so we can free them when they are no longer used. Deriving from BackingObjectBase will automatically use this as the backing store for 'new' usages. Objects allocated using this should not use 'delete'.

Definition at line 51 of file object_tracker.h.

Constructor & Destructor Documentation

§ ObjectTracker()

shaka::memory::ObjectTracker::ObjectTracker ( HeapTracer tracer)
explicit

Definition at line 97 of file object_tracker.cc.

§ ~ObjectTracker()

shaka::memory::ObjectTracker::~ObjectTracker ( )

Definition at line 100 of file object_tracker.cc.

Member Function Documentation

§ AddRef()

void shaka::memory::ObjectTracker::AddRef ( const Traceable object)

Increment the reference count of the given object.

Definition at line 40 of file object_tracker.cc.

§ Dispose()

void shaka::memory::ObjectTracker::Dispose ( )

Releases all object this owns. This is called as part of shutdown.

Definition at line 121 of file object_tracker.cc.

§ ForceAlive()

void shaka::memory::ObjectTracker::ForceAlive ( const Traceable ptr)
See also
HeapTracer::ForceAlive

Definition at line 35 of file object_tracker.cc.

§ FreeDeadObjects()

void shaka::memory::ObjectTracker::FreeDeadObjects ( const std::unordered_set< const Traceable *> &  alive)

Called from the HeapTracer to free objects during a GC run.

Parameters
aliveA set of all the currently alive objects.

Definition at line 78 of file object_tracker.cc.

§ GetAliveObjects()

std::unordered_set< const Traceable * > shaka::memory::ObjectTracker::GetAliveObjects ( ) const

Get all the objects that have a non-zero ref count.

Definition at line 67 of file object_tracker.cc.

§ RegisterObject()

void shaka::memory::ObjectTracker::RegisterObject ( Traceable object)

Registers the given object to be tracked.

Definition at line 25 of file object_tracker.cc.

§ RemoveRef()

void shaka::memory::ObjectTracker::RemoveRef ( const Traceable object)

Decrement the reference count of the given object.

Definition at line 51 of file object_tracker.cc.

§ SHAKA_NON_COPYABLE_OR_MOVABLE_TYPE()

shaka::memory::ObjectTracker::SHAKA_NON_COPYABLE_OR_MOVABLE_TYPE ( ObjectTracker  )

Friends And Related Function Documentation

§ ObjectTrackerTest

friend class ObjectTrackerTest
friend

Definition at line 84 of file object_tracker.h.


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