source: Sophya/trunk/ArchTOIPipe/Kernel/toimanager.h@ 1804

Last change on this file since 1804 was 1766, checked in by aubourg, 24 years ago

back

File size: 1.6 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2
3// ArchTOIPipe (C) CEA/DAPNIA/SPP IN2P3/LAL
4// Eric Aubourg
5// Christophe Magneville
6// Reza Ansari
7// $Id: toimanager.h,v 1.11 2001-11-14 14:49:05 aubourg Exp $
8
9
10#ifndef TOIMANAGER_H
11#define TOIMANAGER_H
12
13#include "config.h"
14#include <string>
15#include <vector>
16
17using namespace std;
18
19class TOIManager {
20public:
21 static TOIManager* getManager();
22 void setRequestedSample(int begin, int end);
23 int getRequestedBegin();
24 int getRequestedEnd();
25 void addThread(pthread_t*);
26 void joinAll();
27
28protected:
29 TOIManager();
30 static TOIManager* instance;
31 long reqBegin;
32 long reqEnd;
33
34 vector<pthread_t*> threads;
35};
36
37// -----------------------------------------------------------------
38// Classe pour affichage de l'avancement des TOIProcessors
39// Reza 08/2001
40// -----------------------------------------------------------------
41
42class RzProcSampleCounter {
43public:
44 RzProcSampleCounter();
45 virtual ~RzProcSampleCounter();
46 virtual long ProcessedSampleCount() = 0;
47 virtual long PrintStats();
48 inline int & PrintRate(int pr) { return _rate; }
49 inline string& InfoMessage() { return _msg; }
50protected:
51 int _rate;
52 string _msg;
53};
54
55template <class T>
56class ProcSampleCounter : public RzProcSampleCounter {
57public:
58 ProcSampleCounter(const T & t) { _t = &t; }
59 virtual long ProcessedSampleCount()
60 { return _t->ProcessedSampleCount(); }
61protected:
62 const T * _t;
63};
64
65#endif
66
Note: See TracBrowser for help on using the repository browser.