1 /*********************************************************************
2  * Clustal Omega - Multiple sequence alignment
3  *
4  * Copyright (C) 2010 University College Dublin
5  *
6  * Clustal-Omega is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of the
9  * License, or (at your option) any later version.
10  *
11  * This file is part of Clustal-Omega.
12  *
13  ********************************************************************/
14 
15 /*
16  *  RCS $Id: progress.h 193 2011-02-07 15:45:21Z andreas $
17  */
18 
19 
20 #ifndef CLUSTALO_PROGRESS_H
21 #define CLUSTALO_PROGRESS_H
22 
23 #include "squid/stopwatch.h"
24 
25 typedef struct {
26     /* where to write to */
27     FILE *prFile;
28     /* prefix printed before each step */
29     char *pcPrefix;
30     bool bPrintCR;
31     char pcLastLogMsg[1024];
32     Stopwatch_t *prStopwatch;
33 } progress_t;
34 
35 
36 extern void
37 NewProgress(progress_t **pprProgress, FILE *prFile, char *pcPrefix, bool bPrintCR);
38 
39 extern void
40 FreeProgress(progress_t **pprProgress);
41 
42 extern void
43 ProgressLog(progress_t *prProgress,
44 			unsigned long int iStep, unsigned long int iTotalSteps,
45 			bool bForceOutput);
46 
47 extern void
48 ProgressDone(progress_t *pprProgress);
49 
50 #endif
51