source: Sophya/trunk/Poubelle/archTOI.old/toimanager.cc@ 647

Last change on this file since 647 was 555, checked in by ansari, 26 years ago

portage cxx en cours

File size: 2.9 KB
Line 
1// toimanager.cc
2// Eric Aubourg CEA/DAPNIA/SPP septembre 1999
3
4#include "toimanager.h"
5#include "archexc.h"
6#include "toiproducer.h"
7//#include "toiabsorber.h"
8
9
10void TOIManager::registerProducer(TOIProducer* p) {
11 producers.insert(p);
12}
13
14TOIProducer* TOIManager::findTOIProducer(TOI const& toi) {
15 TOIProducer* p = NULL;
16 for (set<TOIProducer*>::iterator i=producers.begin();
17 i != producers.end(); i++) {
18 if ((*i)->canProduce(toi)) {
19 if (p) throw ArchExc("Duplicate producers for toi" + toi.name);
20 p = *i;
21 }
22 }
23 if (!p) return NULL; // no producer for this TOI
24// p->addTOI(toi, client);
25 return p;
26}
27
28set<TOIProducer*> TOIManager::producers;
29map<TOILowLevProducer*, long> TOIManager::llProducers;
30map<TOILowLevProducer*, long> TOIManager::activeLLProducers;
31int TOIManager::trigMask = 0;
32
33void TOIManager::registerLLProducer(TOILowLevProducer* p, int blk_mask) {
34 registerProducer(p);
35 //trigMask |= blk_mask;
36 llProducers[p] = blk_mask;
37}
38
39void TOIManager::activateLLProducer(TOILowLevProducer* p) {
40 //registerProducer(p);
41 int blk_mask = llProducers[p];
42 trigMask |= blk_mask;
43 activeLLProducers[p] = blk_mask;
44}
45
46
47void TOIManager::dumpAvailTOIs(ostream& s) {
48 s << "*** Available TOIs\n";
49 for (set<TOIProducer*>::iterator i = producers.begin(); i != producers.end(); i++) {
50 TOIProducer* prod = *i;
51 set<TOI> x = prod->getPossibleTOIs();
52 for (set<TOI>::iterator j = x.begin(); j != x.end(); j++) {
53 TOI toi = *j;
54 cout << toi.name;
55 if (toi.index == TOI::all) cout << " * ";
56 for (set<string>::iterator k = toi.options.begin(); k != toi.options.end(); k++) {
57 cout << " ";
58 if (toi.reqOptions.find(*k) != toi.reqOptions.end()) cout << "+";
59 cout << *k;
60 }
61 cout << "\n";
62 }
63 }
64
65}
66
67
68
69#include "archeopsfile.h"
70
71#include "toillboloproducer.h"
72#include "toillreglageproducer.h"
73#include "toilldiluproducer.h"
74#include "toillgpsproducer.h"
75#include "toillgyroproducer.h"
76#include "toillsstproducer.h"
77
78#include "timetoiproducer.h"
79#include "toiinterpolator.h"
80#include "toirepeater.h"
81#include "toiflagger.h"
82#include "toiboloproducer.h"
83#include "sststarfinder.h"
84#include "tsidproducer.h"
85#include "galcrosslocator.h"
86#include "starmatcher.h"
87#include "rotspeed.h"
88#include "gyrocalibrator.h"
89
90void TOIManager::registerDefaultProducers() {
91 REGLLPROD(TOILLBoloProducer, block_bolo_mask);
92 REGLLPROD(TOILLReglageProducer, block_reglage_mask);
93 REGLLPROD(TOILLDiluProducer, block_dilution_mask);
94 REGLLPROD(TOILLGPSProducer, block_gps_mask);
95 REGLLPROD(TOILLGyroProducer, block_gyro_mask);
96 REGLLPROD(TOILLSSTProducer, block_sst_mask);
97
98 REGPROD(TimeTOIProducer);
99 REGPROD(TOIInterpolator);
100 REGPROD(TOIRepeater);
101 REGPROD(TOIFlagger);
102 REGPROD(TOIBoloProducer);
103 REGPROD(SSTStarFinder);
104 REGPROD(TSidProducer);
105 REGPROD(GalCrossLocator);
106 REGPROD(StarMatcher);
107 REGPROD(RotSpeed);
108 REGPROD(GyroCalibrator);
109}
110
111
112
Note: See TracBrowser for help on using the repository browser.