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

Last change on this file since 1999 was 1999, checked in by ansari, 23 years ago

Ajout flags, correction classe espion RzProcSampleCounter - Reza 13/5/2002

File size: 1.7 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.12 2002-05-13 15:50:50 ansari 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 SampleBegin() = 0;
48 virtual long SampleEnd() = 0;
49 virtual long PrintStats();
50 inline int & PrintRate(int pr) { return _rate; }
51 inline string& InfoMessage() { return _msg; }
52protected:
53 int _rate;
54 string _msg;
55};
56
57template <class T>
58class ProcSampleCounter : public RzProcSampleCounter {
59public:
60 ProcSampleCounter(const T & t) { _t = &t; }
61 virtual long ProcessedSampleCount()
62 { return _t->ProcessedSampleCount(); }
63 virtual long SampleBegin() { return _t->getMinIn(); }
64 virtual long SampleEnd() { return _t->getMaxIn(); }
65protected:
66 const T * _t;
67};
68
69#endif
70
Note: See TracBrowser for help on using the repository browser.