| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Site.cc

Go to the documentation of this file.
00001 #include "Conventions/Site.h"
00002 #include <string>
00003 #include <cstring>
00004 #include <cassert>
00005 
00006 using namespace Site;
00007 
00008 const char* Site::AsString(Site_t site)
00009 {
00010   switch(site) {
00011   case kUnknown:      return "Unknown"; break;
00012   case kDayaBay:      return "DayaBay"; break;
00013   case kLingAo:       return "LingAo"; break;
00014   case kMid:          return "Mid"; break;
00015   case kFar:          return "Far"; break;
00016   case kAberdeen:     return "Aberdeen"; break;
00017   case kSAB:          return "SAB"; break;
00018   case kPMTBenchTest: return "PMTBenchTest"; break;
00019   case kAll:          return "All"; break;
00020   default:            return "?Unknown?"; break;
00021   }
00022 }
00023 
00024 const char* Site::StringFromMask(int mask)
00025 {
00026   if(mask==0) return Site::AsString(Site::kUnknown);
00027   static std::string out;
00028   out="";
00029   int nout = 0;
00030 
00031   for (int i=0; i<32; i++) {
00032      Site::Site_t asite = (Site::Site_t)(1<<i);
00033      if (mask & asite) {
00034        if(nout > 0) out += ",";
00035        out += Site::AsString(asite);
00036        nout++;
00037      }
00038   }
00039   return out.c_str();
00040 }
00041 
00042 Site_t Site::FromString(const char* str)
00043 {
00044   if(strncasecmp("Unknown",str,7)==0) return kUnknown;
00045   if(strncasecmp("DayaBay",str,7)==0) return kDayaBay;
00046   if(strncasecmp("LingAo",str,6)==0) return kLingAo;
00047   if(strncasecmp("Mid",str,3)==0) return kMid;
00048   if(strncasecmp("Far",str,3)==0) return kFar;
00049   if(strncasecmp("Aberdeen",str,8)==0) return kAberdeen;
00050   if(strncasecmp("SAB",str,3)==0) return kSAB;
00051   if(strncasecmp("PMTBenchTest",str,12)==0) return kPMTBenchTest;
00052   if(strncasecmp("All",str,3)==0) return kAll;
00053   return kUnknown;
00054 }
00055 
00056 int Site::MaskFromString(const char* /*str*/)
00057 {
00058   assert(0); // Not implimented!
00059 }
00060 
00061 int Site::FullMask()
00062 {
00063   return kDayaBay+kLingAo+kMid+kFar+kAberdeen+kSAB+kPMTBenchTest;
00064 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:14:47 2011 for Conventions by doxygen 1.4.7