Skip to content
Snippets Groups Projects
Select Git revision
  • develop
  • master default protected
  • feature/triangulation-qhull
  • jst
  • ti_lab_build
  • features/splines_and_piecewise_polynomials
  • ma_2018/erraji
  • fabian
  • ITABase_v2025a
  • ITABase_v2024a
  • VA_v2023b
  • VA_v2023a
  • VA_v2022a
  • before_cmake_rework
  • v2021.a
  • v2020.a
  • v2019.a
  • v2018.b
  • v2018.a
  • v2017.d
  • v2017.c
  • v2017.b
  • v2017.a
  • v2016.a
24 results

ITABaseDefinitions.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ITAPosixRealtimeClock.cpp 1.50 KiB
    // $Id: ITAPosixRealtimeClock.cpp 3499 2013-12-01 18:28:40Z stienen $
    
    #include "ITAPosixRealtimeClock.h"
    
    #include <ITAException.h>
    
    #ifndef WIN32
    
    #include <time.h>
    
    
    ITAPosixRealtimeClock* ITAPosixRealtimeClock::m_pInstance = NULL;
    
    ITAPosixRealtimeClock* ITAPosixRealtimeClock::getInstance()
    {
    	if (!m_pInstance) m_pInstance = new ITAPosixRealtimeClock();
    	return m_pInstance;
    }
    
    ITAPosixRealtimeClock::ITAPosixRealtimeClock()
    {
    	struct timespec ts;
    	int iResult = clock_getres(CLOCK_REALTIME, &ts);
    	m_dResolution = ts.tv_sec;
    }
    
    double ITAPosixRealtimeClock::getResolution() const
    {
    	return m_dResolution;
    }
    
    double ITAPosixRealtimeClock::getFrequency() const
    {
    	return 1/m_dResolution;
    }
    
    inline double ITAPosixRealtimeClock::getTime()
    {
    	struct timespec ts;
    	clock_gettime(CLOCK_REALTIME, &ts);
    	return ts.tv_sec +  ts.tv_nsec / (double) 1000000000;
    }
    
    #else // WIN32
    
    #include <cstdlib>
    
    // Dummy implementation - does nothing, but allows clean compiling and linking
    
    ITAPosixRealtimeClock* ITAPosixRealtimeClock::m_pInstance = NULL;
    
    ITAPosixRealtimeClock* ITAPosixRealtimeClock::getInstance() { ITA_EXCEPT0( NOT_IMPLEMENTED ); return NULL; }
    ITAPosixRealtimeClock::ITAPosixRealtimeClock() { ITA_EXCEPT0( NOT_IMPLEMENTED ); }
    double ITAPosixRealtimeClock::getResolution() const { ITA_EXCEPT0( NOT_IMPLEMENTED ); return 0; }
    double ITAPosixRealtimeClock::getFrequency() const { ITA_EXCEPT0( NOT_IMPLEMENTED ); return 0; }
    double ITAPosixRealtimeClock::getTime() { ITA_EXCEPT0( NOT_IMPLEMENTED ); return 0; }
    
    #endif // WIN32