00001 /* 00002 Copyright 1999-2008 ImageMagick Studio LLC, a non-profit organization 00003 dedicated to making software imaging solutions freely available. 00004 00005 You may not use this file except in compliance with the License. 00006 obtain a copy of the License at 00007 00008 http://www.imagemagick.org/script/license.php 00009 00010 Unless required by applicable law or agreed to in writing, software 00011 distributed under the License is distributed on an "AS IS" BASIS, 00012 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 See the License for the specific language governing permissions and 00014 limitations under the License. 00015 00016 MagickCore timer methods. 00017 */ 00018 #ifndef _MAGICKCORE_TIMER_H 00019 #define _MAGICKCORE_TIMER_H 00020 00021 #if defined(__cplusplus) || defined(c_plusplus) 00022 extern "C" { 00023 #endif 00024 00025 typedef enum 00026 { 00027 UndefinedTimerState, 00028 StoppedTimerState, 00029 RunningTimerState 00030 } TimerState; 00031 00032 typedef struct _Timer 00033 { 00034 double 00035 start, 00036 stop, 00037 total; 00038 } Timer; 00039 00040 typedef struct _TimerInfo 00041 { 00042 Timer 00043 user, 00044 elapsed; 00045 00046 TimerState 00047 state; 00048 00049 unsigned long 00050 signature; 00051 } TimerInfo; 00052 00053 extern MagickExport double 00054 GetElapsedTime(TimerInfo *), 00055 GetUserTime(TimerInfo *); 00056 00057 extern MagickExport MagickBooleanType 00058 ContinueTimer(TimerInfo *); 00059 00060 extern MagickExport void 00061 GetTimerInfo(TimerInfo *), 00062 ResetTimer(TimerInfo *), 00063 StartTimer(TimerInfo *,const MagickBooleanType); 00064 00065 #if defined(__cplusplus) || defined(c_plusplus) 00066 } 00067 #endif 00068 00069 #endif