Home | History | Annotate | Download | only in MagickCore
      1 /*
      2   Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
      3   dedicated to making software imaging solutions freely available.
      4 
      5   You may not use this file except in compliance with the License.
      6   obtain a copy of the License at
      7 
      8     http://www.imagemagick.org/script/license.php
      9 
     10   Unless required by applicable law or agreed to in writing, software
     11   distributed under the License is distributed on an "AS IS" BASIS,
     12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13   See the License for the specific language governing permissions and
     14   limitations under the License.
     15 
     16   MagickCore timer methods.
     17 */
     18 #ifndef MAGICKCORE_TIMER_H
     19 #define MAGICKCORE_TIMER_H
     20 
     21 #if defined(__cplusplus) || defined(c_plusplus)
     22 extern "C" {
     23 #endif
     24 
     25 typedef enum
     26 {
     27   UndefinedTimerState,
     28   StoppedTimerState,
     29   RunningTimerState
     30 } TimerState;
     31 
     32 typedef struct _Timer
     33 {
     34   double
     35     start,
     36     stop,
     37     total;
     38 } Timer;
     39 
     40 typedef struct _TimerInfo
     41 {
     42   Timer
     43     user,
     44     elapsed;
     45 
     46   TimerState
     47     state;
     48 
     49   size_t
     50     signature;
     51 } TimerInfo;
     52 
     53 extern MagickExport double
     54   GetElapsedTime(TimerInfo *),
     55   GetUserTime(TimerInfo *);
     56 
     57 extern MagickExport MagickBooleanType
     58   ContinueTimer(TimerInfo *);
     59 
     60 extern MagickExport TimerInfo
     61   *AcquireTimerInfo(void),
     62   *DestroyTimerInfo(TimerInfo *);
     63 
     64 extern MagickExport void
     65   GetTimerInfo(TimerInfo *),
     66   ResetTimer(TimerInfo *),
     67   StartTimer(TimerInfo *,const MagickBooleanType);
     68 
     69 #if defined(__cplusplus) || defined(c_plusplus)
     70 }
     71 #endif
     72 
     73 #endif
     74