Program Listing for File TimeManager.h

Return to documentation for file (SPlisHSPlasH/TimeManager.h)

#ifndef __TimeManager_h__
#define __TimeManager_h__

#include "Common.h"
#include "Utilities/BinaryFileReaderWriter.h"
#include "ParameterObject.h"

namespace SPH
{
    class TimeManager : public GenParam::ParameterObject
    {
    private:
        Real time;
        static TimeManager *current;
        Real h;

    public:
        static int TIME_STEP_SIZE;

        TimeManager ();
        TimeManager(const TimeManager&) = delete;
        TimeManager& operator=(const TimeManager&) = delete;
        ~TimeManager ();

        virtual void initParameters();

        // Singleton
        static TimeManager* getCurrent ();
        static void setCurrent (TimeManager* tm);
        static bool hasCurrent();

        Real getTime();
        void setTime(Real t);
        Real getTimeStepSize();
        void setTimeStepSize(Real tss);

        void saveState(BinaryFileWriter &binWriter);
        void loadState(BinaryFileReader &binReader);
    };
}

#endif