# timer.h

Go to the documentation of this file.

    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