CUBRID Engine  latest
cubbase::resource_tracker< Res > Class Template Reference

#include <resource_tracker.hpp>

Collaboration diagram for cubbase::resource_tracker< Res >:
Collaboration graph

Public Types

using res_type = Res
 
using map_type = std::map< res_type, resource_tracker_item >
 

Public Member Functions

 resource_tracker (const char *name, bool enabled, std::size_t max_resources, const char *res_name, unsigned max_reuse=1)
 
 ~resource_tracker (void)
 
void increment (const char *filename, const int line, const res_type &res, unsigned use_count=1)
 
void decrement (const res_type &res, unsigned use_count=1)
 
void push_track (void)
 
void pop_track (void)
 
void clear_all (void)
 

Private Member Functions

map_typeget_current_map (void)
 
void abort (void)
 
void dump (void) const
 
void dump_map (const map_type &map, std::ostream &out) const
 
unsigned get_total_use_count (void) const
 

Private Attributes

const char * m_name
 
const char * m_res_alias
 
bool m_enabled
 
bool m_is_aborted
 
std::size_t m_max_resources
 
std::size_t m_resource_count
 
unsigned m_max_reuse
 
std::forward_list< map_typem_tracked_stack
 

Detailed Description

template<typename Res>
class cubbase::resource_tracker< Res >

Definition at line 94 of file resource_tracker.hpp.

Member Typedef Documentation

template<typename Res>
using cubbase::resource_tracker< Res >::map_type = std::map<res_type, resource_tracker_item>

Definition at line 100 of file resource_tracker.hpp.

template<typename Res>
using cubbase::resource_tracker< Res >::res_type = Res

Definition at line 99 of file resource_tracker.hpp.

Constructor & Destructor Documentation

template<typename Res >
cubbase::resource_tracker< Res >::resource_tracker ( const char *  name,
bool  enabled,
std::size_t  max_resources,
const char *  res_name,
unsigned  max_reuse = 1 
)

Definition at line 178 of file resource_tracker.hpp.

Member Function Documentation

template<typename Res >
void cubbase::resource_tracker< Res >::abort ( void  )
private

Definition at line 345 of file resource_tracker.hpp.

References cubbase::resource_tracker< Res >::m_is_aborted.

Referenced by cubbase::resource_tracker< Res >::increment().

Here is the caller graph for this function:

template<typename Res >
void cubbase::resource_tracker< Res >::dump_map ( const map_type map,
std::ostream &  out 
) const
private

Definition at line 373 of file resource_tracker.hpp.

References cubbase::resource_tracker< Res >::m_res_alias.

Referenced by cubbase::resource_tracker< Res >::dump().

Here is the caller graph for this function:

template<typename Res >
resource_tracker< Res >::map_type & cubbase::resource_tracker< Res >::get_current_map ( void  )
private

Definition at line 326 of file resource_tracker.hpp.

References cubbase::resource_tracker< Res >::m_tracked_stack.

Referenced by cubbase::resource_tracker< Res >::decrement(), and cubbase::resource_tracker< Res >::increment().

Here is the caller graph for this function:

template<typename Res >
unsigned cubbase::resource_tracker< Res >::get_total_use_count ( void  ) const
private

Definition at line 310 of file resource_tracker.hpp.

References cubbase::resource_tracker< Res >::m_tracked_stack.

Referenced by cubbase::resource_tracker< Res >::dump().

Here is the caller graph for this function:

Member Data Documentation

template<typename Res>
std::size_t cubbase::resource_tracker< Res >::m_max_resources
private
template<typename Res>
unsigned cubbase::resource_tracker< Res >::m_max_reuse
private

Definition at line 143 of file resource_tracker.hpp.

Referenced by cubbase::resource_tracker< Res >::increment().

template<typename Res>
const char* cubbase::resource_tracker< Res >::m_name
private

Definition at line 134 of file resource_tracker.hpp.

Referenced by cubbase::resource_tracker< Res >::dump().

template<typename Res>
const char* cubbase::resource_tracker< Res >::m_res_alias
private

Definition at line 135 of file resource_tracker.hpp.

Referenced by cubbase::resource_tracker< Res >::dump_map().


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