Skia
2D Graphics Library
SkTraceMemoryDump Class Referenceabstract

Interface for memory tracing. More...

#include <SkTraceMemoryDump.h>

Public Types

enum  LevelOfDetail { kLight_LevelOfDetail , kObjectsBreakdowns_LevelOfDetail }
 Enum to specify the level of the requested details for the dump from the Skia objects. More...
 

Public Member Functions

virtual void dumpNumericValue (const char *dumpName, const char *valueName, const char *units, uint64_t value)=0
 Appends a new memory dump (i.e. More...
 
virtual void dumpStringValue (const char *, const char *, const char *)
 
virtual void setMemoryBacking (const char *dumpName, const char *backingType, const char *backingObjectId)=0
 Sets the memory backing for an existing dump. More...
 
virtual void setDiscardableMemoryBacking (const char *dumpName, const SkDiscardableMemory &discardableMemoryObject)=0
 Specialization for memory backed by discardable memory. More...
 
virtual LevelOfDetail getRequestedDetails () const =0
 Returns the type of details requested in the dump. More...
 
virtual bool shouldDumpWrappedObjects () const
 Returns true if we should dump wrapped objects. More...
 
virtual void dumpWrappedState (const char *, bool)
 If shouldDumpWrappedObjects() returns true then this function will be called to populate the output with information on whether the item being dumped is a wrapped object. More...
 
virtual bool shouldDumpUnbudgetedObjects () const
 Returns true if we should dump unbudgeted objects. More...
 
virtual void dumpBudgetedState (const char *, bool)
 If shouldDumpUnbudgetedObjects() returns true then this function will be called to populate the output with information on whether the item being dumped is budgeted. More...
 

Protected Member Functions

virtual ~SkTraceMemoryDump ()=default
 
 SkTraceMemoryDump ()=default
 
 SkTraceMemoryDump (const SkTraceMemoryDump &)=delete
 
SkTraceMemoryDumpoperator= (const SkTraceMemoryDump &)=delete
 

Detailed Description

Interface for memory tracing.

This interface is meant to be passed as argument to the memory dump methods of Skia objects. The implementation of this interface is provided by the embedder.

Member Enumeration Documentation

◆ LevelOfDetail

Enum to specify the level of the requested details for the dump from the Skia objects.

Enumerator
kLight_LevelOfDetail 
kObjectsBreakdowns_LevelOfDetail 

Constructor & Destructor Documentation

◆ ~SkTraceMemoryDump()

virtual SkTraceMemoryDump::~SkTraceMemoryDump ( )
protectedvirtualdefault

◆ SkTraceMemoryDump() [1/2]

SkTraceMemoryDump::SkTraceMemoryDump ( )
protecteddefault

◆ SkTraceMemoryDump() [2/2]

SkTraceMemoryDump::SkTraceMemoryDump ( const SkTraceMemoryDump )
protecteddelete

Member Function Documentation

◆ dumpBudgetedState()

virtual void SkTraceMemoryDump::dumpBudgetedState ( const char *  ,
bool   
)
inlinevirtual

If shouldDumpUnbudgetedObjects() returns true then this function will be called to populate the output with information on whether the item being dumped is budgeted.

This call is only used when dumping Graphite memory statistics.

◆ dumpNumericValue()

virtual void SkTraceMemoryDump::dumpNumericValue ( const char *  dumpName,
const char *  valueName,
const char *  units,
uint64_t  value 
)
pure virtual

Appends a new memory dump (i.e.

a row) to the trace memory infrastructure. If dumpName does not exist yet, a new one is created. Otherwise, a new column is appended to the previously created dump. Arguments: dumpName: an absolute, slash-separated, name for the item being dumped e.g., "skia/CacheX/EntryY". valueName: a string indicating the name of the column. e.g., "size", "active_size", "number_of_objects". This string is supposed to be long lived and is NOT copied. units: a string indicating the units for the value. e.g., "bytes", "objects". This string is supposed to be long lived and is NOT copied. value: the actual value being dumped.

◆ dumpStringValue()

virtual void SkTraceMemoryDump::dumpStringValue ( const char *  ,
const char *  ,
const char *   
)
inlinevirtual

◆ dumpWrappedState()

virtual void SkTraceMemoryDump::dumpWrappedState ( const char *  ,
bool   
)
inlinevirtual

If shouldDumpWrappedObjects() returns true then this function will be called to populate the output with information on whether the item being dumped is a wrapped object.

◆ getRequestedDetails()

virtual LevelOfDetail SkTraceMemoryDump::getRequestedDetails ( ) const
pure virtual

Returns the type of details requested in the dump.

The granularity of the dump is supposed to match the LevelOfDetail argument. The level of detail must not affect the total size reported, but only granularity of the child entries.

◆ operator=()

SkTraceMemoryDump& SkTraceMemoryDump::operator= ( const SkTraceMemoryDump )
protecteddelete

◆ setDiscardableMemoryBacking()

virtual void SkTraceMemoryDump::setDiscardableMemoryBacking ( const char *  dumpName,
const SkDiscardableMemory &  discardableMemoryObject 
)
pure virtual

Specialization for memory backed by discardable memory.

◆ setMemoryBacking()

virtual void SkTraceMemoryDump::setMemoryBacking ( const char *  dumpName,
const char *  backingType,
const char *  backingObjectId 
)
pure virtual

Sets the memory backing for an existing dump.

backingType and backingObjectId are used by the embedder to associate the memory dumped via dumpNumericValue with the corresponding dump that backs the memory.

◆ shouldDumpUnbudgetedObjects()

virtual bool SkTraceMemoryDump::shouldDumpUnbudgetedObjects ( ) const
inlinevirtual

Returns true if we should dump unbudgeted objects.

Unbudgeted objects can either come from wrapped objects passed into Skia from the client or from Skia created objects currently held by the client in a public Skia object (e.g. SkSurface or SkImage). This call is only used when dumping Graphite memory statistics.

◆ shouldDumpWrappedObjects()

virtual bool SkTraceMemoryDump::shouldDumpWrappedObjects ( ) const
inlinevirtual

Returns true if we should dump wrapped objects.

Wrapped objects come from outside Skia, and may be independently tracked there.


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