Changeset 10122
- Timestamp:
- Nov 21, 2006, 9:23:02 AM (19 years ago)
- Location:
- trunk/psLib/src/astro
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psTime.c
r10092 r10122 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.10 5$ $Name: not supported by cvs2svn $13 * @date $Date: 2006-11-2 0 05:22:15$12 * @version $Revision: 1.106 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2006-11-21 19:23:02 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 1774 1774 } 1775 1775 1776 static psHash *timers = NULL;1777 static char timerName[256] = "\0";1778 1779 static void psTimerFree ()1780 {1781 p_psTimeFinalize();1782 psFree(timers);1783 timers = NULL;1784 timerName[0] = '\0';1785 1786 return;1787 }1788 1789 // start/restart a named timer1790 bool psTimerStart (char *name)1791 {1792 1793 psTime *start;1794 1795 if (timers == NULL) {1796 timers = psHashAlloc (16);1797 // psMemSetDeallocator(timers, (psFreeFunc)psTimerFree);1798 }1799 strncpy(timerName, name, 256);1800 // XXX EAM : TAI timer makes more sense (monotonically increasing seconds)1801 start = psTimeGetNow (PS_TIME_TAI);1802 psHashAdd (timers, name, start);1803 psFree (start);1804 return (true);1805 }1806 1807 psF64 psTimerClear (char *name)1808 {1809 psF64 timerTime = 0.0;1810 bool status;1811 1812 if (name == NULL)1813 return false;1814 timerTime = psTimerMark(name);1815 status = psHashRemove (timers, name);1816 strncpy(timerName, "\0", 256);1817 if ( !status )1818 return 0.0;1819 else1820 return timerTime;1821 }1822 1823 // get current elapsed time on named timer1824 psF64 psTimerMark (char *name)1825 {1826 1827 psTime *start;1828 psTime *mark;1829 psF64 delta;1830 1831 if (timers == NULL)1832 return (0);1833 start = (psTime*)psHashLookup (timers, name);1834 if (start == NULL)1835 return (0);1836 mark = psTimeGetNow (PS_TIME_TAI);1837 delta = psTimeDelta (mark, start);1838 psFree (mark);1839 // psFree (start); -- XXX is psHashLookup not psMemCopying?1840 1841 return (delta);1842 }1843 1844 psF64 psTimerStop(void)1845 {1846 psF64 timerTime = 0.0;1847 1848 if ( strncmp(timerName, "\0", 256) )1849 timerTime = psTimerMark(timerName);1850 strncpy(timerName, "\0", 2);1851 psTimerFree();1852 return timerTime;1853 }1854 1855 1776 void psTimeInitialize(const char *timeConfig) 1856 1777 { … … 1879 1800 } 1880 1801 1881 1802 // XXX EAM : I've changed the timers to report TAI 1803 // this makes more sense because it has monotonically increasing seconds 1804 // would be even better if we could get a TAI value without doing a big lookup... 1805 1806 static psHash *timers = NULL; 1807 1808 // free all timers 1809 static void psTimerFree () 1810 { 1811 p_psTimeFinalize(); 1812 psFree(timers); 1813 timers = NULL; 1814 return; 1815 } 1816 1817 // start/restart a named timer 1818 bool psTimerStart (char *name) 1819 { 1820 if (name == NULL) 1821 return false; 1822 if (timers == NULL) { 1823 timers = psHashAlloc (16); 1824 } 1825 psTime *start = psTimeGetNow (PS_TIME_TAI); 1826 psHashAdd (timers, name, start); 1827 psFree (start); 1828 return true; 1829 } 1830 1831 // clear the timer, return elapsed time to date, or NAN if not previously defined 1832 psF64 psTimerClear (char *name) 1833 { 1834 if (name == NULL) 1835 return NAN; 1836 psF64 delta = psTimerMark(name); 1837 1838 psTime *start = psTimeGetNow (PS_TIME_TAI); 1839 psHashAdd (timers, name, start); 1840 psFree (start); 1841 return delta; 1842 } 1843 1844 // get current elapsed time on named timer (NAN if not defined) 1845 psF64 psTimerMark (char *name) 1846 { 1847 if (timers == NULL) 1848 return (NAN); 1849 psTime *start = psHashLookup (timers, name); 1850 if (start == NULL) 1851 return (NAN); 1852 1853 psTime *mark = psTimeGetNow (PS_TIME_TAI); 1854 psF64 delta = psTimeDelta (mark, start); 1855 psFree (mark); 1856 return delta; 1857 } 1858 1859 bool psTimerStop(void) 1860 { 1861 psTimerFree(); 1862 return true; 1863 } 1864 -
trunk/psLib/src/astro/psTime.h
r10100 r10122 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.5 2$ $Name: not supported by cvs2svn $14 * @date $Date: 2006-11-2 0 17:49:56$13 * @version $Revision: 1.53 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2006-11-21 19:23:02 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 467 467 * @return psF64: The maximum time expended. 468 468 */ 469 psF64psTimerStop(void);469 bool psTimerStop(void); 470 470 471 471 /** Copy a psTime.
Note:
See TracChangeset
for help on using the changeset viewer.
