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
RevLine 
[1365]1// This may look like C code, but it is really -*- C++ -*-
2
[1738]3// ArchTOIPipe (C) CEA/DAPNIA/SPP IN2P3/LAL
4// Eric Aubourg
5// Christophe Magneville
6// Reza Ansari
[1999]7// $Id: toimanager.h,v 1.12 2002-05-13 15:50:50 ansari Exp $
[1738]8
9
[1365]10#ifndef TOIMANAGER_H
11#define TOIMANAGER_H
12
[1766]13#include "config.h"
[1687]14#include <string>
[1766]15#include <vector>
[1365]16
[1410]17using namespace std;
18
[1365]19class TOIManager {
20public:
21 static TOIManager* getManager();
[1702]22 void setRequestedSample(int begin, int end);
23 int getRequestedBegin();
24 int getRequestedEnd();
[1365]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
[1687]37// -----------------------------------------------------------------
38// Classe pour affichage de l'avancement des TOIProcessors
39// Reza 08/2001
40// -----------------------------------------------------------------
41
42class RzProcSampleCounter {
43public:
[1702]44 RzProcSampleCounter();
[1687]45 virtual ~RzProcSampleCounter();
[1702]46 virtual long ProcessedSampleCount() = 0;
[1999]47 virtual long SampleBegin() = 0;
48 virtual long SampleEnd() = 0;
[1687]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:
[1702]60 ProcSampleCounter(const T & t) { _t = &t; }
61 virtual long ProcessedSampleCount()
62 { return _t->ProcessedSampleCount(); }
[1999]63 virtual long SampleBegin() { return _t->getMinIn(); }
64 virtual long SampleEnd() { return _t->getMaxIn(); }
[1687]65protected:
66 const T * _t;
67};
68
[1365]69#endif
[1702]70
Note: See TracBrowser for help on using the repository browser.