/*
 * This file Copyright (C) Mnemosyne LLC
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2
 * as published by the Free Software Foundation.
 *
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 *
 * $Id: speed.h 11092 2010-08-01 20:36:13Z charles $
 */

#ifndef QTR_SPEED_H
#define QTR_SPEED_H

#include "formatter.h"

class Speed
{
    private:
        int _Bps;
        Speed( int Bps ): _Bps(Bps) { }
    public:
        Speed( ): _Bps(0) { }
        double KBps( ) const;
        int Bps( ) const { return _Bps; }
        bool isZero( ) const { return _Bps == 0; }
        static Speed fromKBps( double KBps );
        static Speed fromBps( int Bps ) { return Speed( Bps ); }
        void setBps( int Bps ) { _Bps = Bps; }
        Speed& operator+=( const Speed& that ) { _Bps += that._Bps; return *this; }
        Speed operator+( const Speed& that ) const { return Speed( _Bps + that._Bps ); }
        bool operator<( const Speed& that ) const { return _Bps < that._Bps; }
};

#endif
