/*
 * HnTimes.hh
 *
 * DO NOT EDIT THIS FILE!
 *
 * This file is automatically generated by obj2ptr.
 * 2002/09/13 12:41:10
 */

#ifndef _HnTimes_hh
#define _HnTimes_hh

#ifndef _HNSRTIMP
#ifdef _MSC_VER
#define _HNSRTIMP _declspec(dllimport)
#else
#define _HNSRTIMP
#endif
#endif

#include "HnSRTree/HnPointer.hh"

/*
 * HnTimes
 */

class _HNSRTIMP HnTimes: public HnPointer {
private:
    friend class HnTimesObj;
    HnTimes(const HnTimesObj *ptr) {
	HnPointer::assign((HnObject *)ptr);
    }
    HnTimesObj *getObject(void) const {
	return (HnTimesObj *)HnPointer::getObject();
    }
public:
    static const HnTimes null;
    HnTimes(void) {}
public:
    _HNSRTIMP friend HnTimes
    new_HnTimes(void);

    void setCurrentTimes(void);

    HnTimes add(const HnTimes &times) const;
    HnTimes subtract(const HnTimes &times) const;

    double getRealTime(void) const;
    double getUserTime(void) const;
    double getSystemTime(void) const;
    double getCPUTime(void) const;
};

#include "HnSRTree/HnString.hh"

#define HnClass HnTimes
#include "HnSRTree/HnClassArray.hh"

#include "HnSRTree/HnTimesObj.hh"

inline void
HnTimes::setCurrentTimes(void)
{
    getObject()->setCurrentTimes();
}

inline HnTimes
HnTimes::add(const HnTimes &times) const
{
    return getObject()->add(times);
}

inline HnTimes
HnTimes::subtract(const HnTimes &times) const
{
    return getObject()->subtract(times);
}

inline double
HnTimes::getRealTime(void) const
{
    return getObject()->getRealTime();
}

inline double
HnTimes::getUserTime(void) const
{
    return getObject()->getUserTime();
}

inline double
HnTimes::getSystemTime(void) const
{
    return getObject()->getSystemTime();
}

inline double
HnTimes::getCPUTime(void) const
{
    return getObject()->getCPUTime();
}


#endif /* _HnTimes_hh */
