// -*- C++ -*-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL

ACE_INLINE
ACE_Stats_Value::ACE_Stats_Value (const u_int precision)
  : whole_ (0),
    fractional_ (0),
    precision_ (precision)
{
}

ACE_INLINE
u_int
ACE_Stats_Value::precision () const
{
  return precision_;
}

ACE_INLINE
void
ACE_Stats_Value::whole (const ACE_UINT32 value)
{
  whole_ = value;
}

ACE_INLINE
ACE_UINT32
ACE_Stats_Value::whole () const
{
  return whole_;
}

ACE_INLINE
void
ACE_Stats_Value::fractional (const ACE_UINT32 value)
{
  fractional_ = value;
}

ACE_INLINE
ACE_UINT32
ACE_Stats_Value::fractional () const
{
  return fractional_;
}

ACE_INLINE
void
ACE_Stats_Value::scaled_value (ACE_UINT64 &sv) const
{
  sv = whole () * fractional_field ()  +  fractional ();
}

ACE_INLINE
void
ACE_Stats_Value::dump () const
{
#if defined (ACE_HAS_DUMP)
  ACELIB_DEBUG ((LM_DEBUG,
              ACE_TEXT ("precision: %u digits; whole: %u, fractional: %u\n"),
              precision_, whole_, fractional_));
#endif /* ACE_HAS_DUMP */
}

ACE_INLINE
ACE_Stats::ACE_Stats ()
{
  reset ();
}

ACE_INLINE
ACE_UINT32
ACE_Stats::samples () const
{
  return number_of_samples_;
}

ACE_INLINE
ACE_INT32
ACE_Stats::min_value () const
{
  return min_;
}

ACE_INLINE
ACE_INT32
ACE_Stats::max_value () const
{
  return max_;
}

ACE_INLINE
void
ACE_Stats::dump () const
{
#if defined (ACE_HAS_DUMP)
  print_summary (3u);
#endif /* ACE_HAS_DUMP */
}

ACE_END_VERSIONED_NAMESPACE_DECL
