# ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > Class Template Reference

This class implements a cache for metrics timeprobe data. More...

`#include <Metrics_Cache_T.h>`

Collaboration diagram for ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >:

[legend]
List of all members.

## Public Types

typedef ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > | ACE_METRICS_CACHE_TYPE

## Public Member Functions

| ACE_Metrics_Cache (u_long table_size=METRICS_DEFAULT_TIMEPROBE_TABLE_SIZE, u_long number_of_probes=METRICS_DEFAULT_TIMEPROBE_COUNT, ALLOCATOR *allocatorPtr=(ALLOCATOR *) ALLOCATOR::instance())
| ~ACE_Metrics_Cache ()
void | report_enqueue_start (u_long i)
void | report_enqueue_stop (u_long i)
void | report_enqueue_suspend (u_long i)
void | report_enqueue_resume (u_long i)
void | report_dequeue_start (u_long i)
void | report_dequeue_stop (u_long i)
void | report_dequeue_suspend (u_long i)
void | report_dequeue_resume (u_long i)
void | reset_base_statistics ()
void | flip_supplier_and_consumer ()
void | flush_ACE_Metrics_Cache ()
void | metrics_enabled (int enabled)
int | metrics_enabled (void) const

## Protected Member Functions

ALLOCATOR * | allocator (void)

## Protected Attributes

u_long | probe_set_size_
u_long * | enqueue_count_ [2]
u_long * | dequeue_count_ [2]
ACE_Metrics_Timeprobe< ACE_LOCK, ALLOCATOR > ** | enqueue_probes_ [2]
ACE_Metrics_Timeprobe< ACE_LOCK, ALLOCATOR > ** | dequeue_probes_ [2]
char ** | enqueue_names_
char ** | dequeue_names_
int | consumer_index_
int | supplier_index_
u_long | table_size_
ACE_Time_Value | interval_start_
ACE_Time_Value | interval_end_
int | interval_initialized_
int | metrics_enabled_

## Private Member Functions

| ACE_Metrics_Cache (const ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > &)
void | operator= (const ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > &)

## Private Attributes

ALLOCATOR * | allocator_

## Detailed Description

### template<class ACE_LOCK, class ALLOCATOR>
class ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >

This class implements a cache for metrics timeprobe data.

This class allows probes to be recorded into a single cache that monitors and other higher level metrics classes can query.

## Member Typedef Documentation

template<class ACE_LOCK, class ALLOCATOR>
typedef ACE_Metrics_Cache<ACE_LOCK, ALLOCATOR> ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::ACE_METRICS_CACHE_TYPE

## Constructor & Destructor Documentation

template<class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::ACE_Metrics_Cache | ( | u_long | table_size = `METRICS_DEFAULT_TIMEPROBE_TABLE_SIZE`,
|  | u_long | number_of_probes = `METRICS_DEFAULT_TIMEPROBE_COUNT`,
|  | ALLOCATOR * | allocatorPtr = `(ALLOCATOR *) ALLOCATOR::instance()`
| ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::~ACE_Metrics_Cache | ( |  | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::ACE_Metrics_Cache | ( | const ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > & |  | ) | `[private]`

## Member Function Documentation

template<class ACE_LOCK, class ALLOCATOR>
ALLOCATOR * ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::allocator | ( | void |  | ) | `[protected]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::flip_supplier_and_consumer | ( |  | ) |

template<class ACE_LOCK, class ALLOCATOR>
void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::flush_ACE_Metrics_Cache | ( |  | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE int ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::metrics_enabled | ( | void |  | ) | const

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::metrics_enabled | ( | int | enabled | ) |

template<class ACE_LOCK, class ALLOCATOR>
void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::operator= | ( | const ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR > & |  | ) | `[private]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_dequeue_resume | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_dequeue_start | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_dequeue_stop | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_dequeue_suspend | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_enqueue_resume | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_enqueue_start | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_enqueue_stop | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::report_enqueue_suspend | ( | u_long | i | ) |

template<class ACE_LOCK, class ALLOCATOR>
ACE_INLINE void ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::reset_base_statistics | ( |  | ) |

## Member Data Documentation

template<class ACE_LOCK, class ALLOCATOR>
ALLOCATOR* ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::allocator_`[private]`

template<class ACE_LOCK, class ALLOCATOR>
int ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::consumer_index_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
u_long* ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::dequeue_count_[2]`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
char** ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::dequeue_names_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Timeprobe<ACE_LOCK, ALLOCATOR>** ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::dequeue_probes_[2]`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
u_long* ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::enqueue_count_[2]`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
char** ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::enqueue_names_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Timeprobe<ACE_LOCK, ALLOCATOR>** ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::enqueue_probes_[2]`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_Time_Value ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::interval_end_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
int ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::interval_initialized_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
ACE_Time_Value ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::interval_start_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
int ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::metrics_enabled_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
u_long ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::probe_set_size_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
int ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::supplier_index_`[protected]`

template<class ACE_LOCK, class ALLOCATOR>
u_long ACE_Metrics_Cache< ACE_LOCK, ALLOCATOR >::table_size_`[protected]`

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

- Metrics_Cache_T.h
- Metrics_Cache_T.cpp
- Metrics_Cache_T.inl