24#ifndef SHINY_MANAGER_H
25#define SHINY_MANAGER_H
36#if SHINY_PROFILER == TRUE
58#if SHINY_PROFILER_LOOKUPRATE == TRUE
119#if SHINY_PROFILER_LOOKUPRATE == TRUE
177 bool output(std::ostream &a_ostream = std::cout);
189 if (a_node->firstChild)
enumerateNodes(a_func, a_node->firstChild);
190 if (a_node->nextSibling)
enumerateNodes(a_func, a_node->nextSibling);
197 (a_this->*a_func)(a_node);
199 if (a_node->firstChild)
enumerateNodes(a_this, a_func, a_node->firstChild);
200 if (a_node->nextSibling)
enumerateNodes(a_this, a_func, a_node->nextSibling);
215 (a_this->*a_func)(a_zone);
SHINY_INLINE ~ProfileAutoEndNode()
std::string OutputNodesAsString(const ProfileNode *a_root, uint32_t a_count)
std::string OutputZonesAsString(const ProfileZone *a_root, uint32_t a_count)
static void enumerateZones(T *a_this, void(T::*a_func)(const ProfileZone *), const ProfileZone *a_zone=&instance.rootZone)
uint32_t staticMemInBytes(void)
SHINY_INLINE void _beginNode(ProfileNode *a_node)
SHINY_INLINE float lookupSuccessRate(void) const
static ProfileNode * _dummyNodeTable[]
SHINY_INLINE void _beginNode(ProfileNodeCache *a_cache, ProfileZone *a_zone)
SHINY_INLINE void _incLookup(void)
uint32_t allocMemInBytes(void)
void _insertNode(ProfileNode *a_pNode)
static void enumerateZones(void(*a_func)(const ProfileZone *), const ProfileZone *a_zone=&instance.rootZone)
ProfileNodePool * _firstNodePool
void _resizeNodePool(uint32_t a_count)
void _createNodeTable(uint32_t a_count)
uint64_t _lookupSuccessCount
bool output(const char *a_filename)
ProfileNode * _lookupNode(ProfileNodeCache *a_cache, ProfileZone *a_zone)
SHINY_INLINE std::string outputZonesAsString(void)
SHINY_INLINE void _appendTicksToCurNode(void)
void update(float a_damping=0.9f)
static void enumerateNodes(void(*a_func)(const ProfileNode *), const ProfileNode *a_node=&instance.rootNode)
ProfileNode * _createNode(ProfileNodeCache *a_cache, ProfileZone *a_pZone)
SHINY_INLINE float tableUsage(void) const
void _createNodePool(uint32_t a_count)
SHINY_INLINE void _endCurNode(void)
static void enumerateNodes(T *a_this, void(T::*a_func)(const ProfileNode *), const ProfileNode *a_node=&instance.rootNode)
ProfileNodeTable * _nodeTable
void _resizeNodeTable(uint32_t a_count)
SHINY_INLINE std::string outputNodesAsString(void)
SHINY_INLINE void _incLookupSuccess(void)
bool output(std::ostream &a_ostream=std::cout)
static ProfileManager instance
ProfileNodePool * _lastNodePool
SHINY_INLINE void appendTicks(tick_t a_elapsedTicks)
SHINY_INLINE void beginEntry(void)
static ProfileNode _dummy
uint32_t memoryUsageChain(void)