blob: 9a6bcb19363d76aa81e4059173b4cde783ca8b38 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
// -*- C++ -*-
//=============================================================================
/**
* @file Sample_History.h
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
//=============================================================================
#ifndef ACE_SAMPLE_HISTORY_H
#define ACE_SAMPLE_HISTORY_H
#include /**/ "ace/pre.h"
#include /**/ "ace/config-all.h"
#include "ace/Basic_Types.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Basic_Stats;
/// Save multiple samples in an array
/**
* Save multiple samples (usually latency numbers), into an array, and
* later print them in several formats.
*/
class ACE_Export ACE_Sample_History
{
public:
#if !defined (ACE_WIN32)
typedef ACE_UINT32 scale_factor_type;
#else
typedef ACE_UINT64 scale_factor_type;
#endif
/// Constructor
/**
* The number of samples is pre-allocated, and cannot changes once
* the class is initialized.
*/
ACE_Sample_History (size_t max_samples);
/// Destructor
~ACE_Sample_History (void);
/// Record one sample.
/**
* Return 0 on success, -1 if the sample could not be stored
*/
int sample (ACE_UINT64 value);
/// Returns the maximum number of samples
size_t max_samples (void) const;
/// Returns the current number of samples
size_t sample_count (void) const;
/// Dump all the samples
/**
* Prints out all the samples, using @a msg as a prefix for each
* message.
*/
void dump_samples (const ACE_TCHAR *msg,
scale_factor_type scale_factor) const;
/// Collect the summary for all the samples
void collect_basic_stats (ACE_Basic_Stats &) const;
/// Get a sample
ACE_UINT64 get_sample (size_t i) const;
private:
/// The maximum number of samples
size_t max_samples_;
/// The current number of samples
size_t sample_count_;
/// The samples
ACE_UINT64 *samples_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/Sample_History.inl"
#endif /* __ACE_INLINE__ */
#include /**/ "ace/post.h"
#endif /* ACE_SAMPLE_HISTORY_H */
|