Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

SctApiMulti.cxx

00001 
00008 #include <utility>
00009 
00010 #include "SctApi.h"
00011 #include "SctApiHisto.h"
00012 #include "SctApiRodInfo.h"
00013 
00014 using namespace std;
00015 
00016 namespace SctApi {
00017 
00018 RodScanEx &ScanEx::getOrNewRod(const RodLabel &l, RodScanEx defaultEx) {
00019   RodInfoMap::iterator result = rodInfo.find(l);
00020   if(result == rodInfo.end()) {
00021     rodInfo.insert(std::make_pair(l, defaultEx));
00022     result = rodInfo.find(l);
00023   }
00024   return result->second;
00025 }
00026 
00027 const RodScanEx &ScanEx::getRodScanInfo(const RodLabel &l) const {
00028   RodInfoMap::const_iterator result = rodInfo.find(l);
00029   if(result == rodInfo.end()) {
00030     cerr << " getRodScanInfo const: ROD not found\n";
00031     throw SctApiException("Bad ROD");
00032   }
00033   return result->second;
00034 }
00035 
00036 RodScanEx &ScanEx::getRodScanInfo(const RodLabel &l) {
00037   RodInfoMap::iterator result = rodInfo.find(l);
00038   if(result == rodInfo.end()) {
00039     cerr << " getRodScanInfo: ROD not found\n";
00040     throw SctApiException("Bad ROD");
00041   }
00042   return result->second;
00043 }
00044 
00045 const std::list<RodLabel> SctApi::listRods() const {
00046   return rodList;
00047 }
00048 
00049 const std::list<CrateLabel> SctApi::listCrates() const {
00050   std::list<CrateLabel> crateList;
00051 
00052   for(map<pair<unsigned int,unsigned int>, Crate*>::const_iterator i=crateMap.begin();
00053       i!=crateMap.end();
00054       i++){
00055     crateList.push_back(CrateLabel(i->first.first, i->first.second));
00056   }
00057 
00058   return crateList;
00059 }
00060 
00061 void SctApi::addRodToList(RodLabel newRod) {
00062   rodList.push_back(newRod);
00063   RodInfo newInfo;
00064   rodInfoList.insert(make_pair(newRod, newInfo));
00065 }
00066 
00067 RodInfo &SctApi::getRodInfo(const RodLabel &l){
00068   std::map<RodLabel, RodInfo>::iterator result = rodInfoList.find(l);
00069   if(result == rodInfoList.end()) {
00070     cerr << " getRodInfo: ROD not found\n";
00071     throw SctApiException("Bad ROD");
00072   }
00073   return result->second;
00074 }
00075 }

Generated on Thu Feb 10 02:40:16 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5