📄 meter.h
字号:
#ifndef METER_H
#define METER_H
class _METER {
public:
uint32 get_count();
real64 get_interval();
real64 get_sum();
real64 get_sumofsquare();
real64 get_average();
real64 get_variance();
protected:
_METER() { _construct(); }
virtual ~_METER() { _destruct(); }
int _construct();
int _destruct();
int _reset();
uint08 _state();
real64 _timestart();
real64 _timeclose();
real64 _period();
real64 _accumsum( real64 value );
real64 _accumsquare( real64 value );
real64 _timeaverage( real64 value );
int _gather_statistics( real64 value, real64 assign );
private:
void *_data;
};
template <class T>
class METER : public _METER {
public:
METER() : _value(0), _minimum(0), _maximum(0) {}
virtual ~METER() {}
T get_value() { return _value; }
T get_minimum() { return _minimum; }
T get_maximum() { return _maximum; }
T operator = (T assign) { return _set_value( assign ); }
T operator += (T addend) { return _set_value( _value + addend ); }
T operator -= (T subend) { return _set_value( _value - subend ); }
T operator *= (T multiplier) { return _set_value( _value * multiplier ); }
T operator /= (T divisor) { return _set_value( _value / divisor ); }
T operator ++ () { return _set_value( _value + 1 ); }
T operator -- () { return _set_value( _value - 1 ); }
operator T() { return _value; }
void clear() { _value = 0; reset(); }
void reset() { _minimum = 0; _maximum = 0; _reset(); }
real64 get_accumsum() { return _accumsum( (real64)_value ); }
real64 get_accumsquare() { return _accumsquare( (real64)_value ); }
real64 get_timeaverage() { return _timeaverage( (real64)_value ); }
private:
T _value;
T _minimum;
T _maximum;
T _set_value( T assign );
};
template <class T>
T METER<T>::_set_value( T assign )
{
if (_state() == 0) {
_minimum = assign;
_maximum = assign;
}
else {
if (assign < _minimum)
_minimum = assign;
if (assign > _maximum)
_maximum = assign;
}
_gather_statistics( (real64)_value, (real64)assign );
_value = assign;
return _value;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -