CMS 3D CMS Logo

Public Member Functions | Private Attributes

pos::PixelAliasList Class Reference

#include <interface/PixelAliasList.h>

List of all members.

Public Member Functions

std::string alias (unsigned int i)
std::vector< pathAliasPairgetConfigAliases (std::string path)
unsigned int getVersion (std::string path, std::string alias)
std::vector< std::string > getVersionAliases (std::string path)
pathVersionAliasMmap getVersionData ()
pathVersionAliasMmap getVersionData (std::string koc)
void insertAlias (PixelConfigAlias &anAlias)
void insertVersionAlias (PixelVersionAlias &anAlias)
unsigned int key (unsigned int i)
unsigned int nAliases ()
std::string name (unsigned int i)
unsigned int nVersionAliases ()
PixelConfigAlias operator[] (unsigned int i)
std::string path (unsigned int i)
void readfile (std::string filename)
void updateConfigAlias (std::string path, unsigned int version, std::string alias, PixelConfigList &config)
unsigned int version (unsigned int i)
PixelConfigAliasversionAliases (std::string aliasName)
void writefile ()

Private Attributes

pathAliasMmap aliasMmap
std::vector< PixelConfigAliaspixelConfigAliases_
std::vector< PixelVersionAliaspixelVersionAliases_
pathVersionAliasMmap versionMmap

Detailed Description

A longer explanation will be placed here later

Definition at line 25 of file PixelAliasList.h.


Member Function Documentation

std::string pos::PixelAliasList::alias ( unsigned int  i) [inline]

Definition at line 286 of file PixelAliasList.h.

References i, and pixelVersionAliases_.

Referenced by getVersion(), getVersionAliases(), insertVersionAlias(), and readfile().

{ return pixelVersionAliases_[i].alias()  ;} 
std::vector<pathAliasPair> pos::PixelAliasList::getConfigAliases ( std::string  path) [inline]

Definition at line 267 of file PixelAliasList.h.

References aliasMmap.

Referenced by pos::PixelConfigFile::getConfigAliases().

                                                              {
     std::vector<pathAliasPair> configAliasVector ;
     for(pathAliasMmap::iterator it=aliasMmap.begin(); it!=aliasMmap.end(); it++){
      if( (*it).first == path ){
       configAliasVector.push_back((*it).second) ;
      }
     }
     return configAliasVector ;
    } 
unsigned int pos::PixelAliasList::getVersion ( std::string  path,
std::string  alias 
) [inline]

Definition at line 238 of file PixelAliasList.h.

References alias(), i, path(), and pixelVersionAliases_.

Referenced by pos::PixelConfigFile::getVersion().

                                                            {
      for(unsigned int i=0;i<pixelVersionAliases_.size();i++){
        if (pixelVersionAliases_[i].alias()==alias&&
            pixelVersionAliases_[i].path()==path){
          return pixelVersionAliases_[i].version();
        }
      }
      assert(0);
      return 0;
    }
std::vector<std::string> pos::PixelAliasList::getVersionAliases ( std::string  path) [inline]

Definition at line 225 of file PixelAliasList.h.

References alias(), i, path(), pixelVersionAliases_, and tmp.

Referenced by pos::PixelConfigFile::getVersionAliases().

                                                          {
      std::vector<std::string> tmp;
      for(unsigned int i=0;i<pixelVersionAliases_.size();i++){
        //std::cout << "path alias:"<<pixelVersionAliases_[i].path()
        //        << pixelVersionAliases_[i].alias() << std::endl;
        if (pixelVersionAliases_[i].path()==path){
          tmp.push_back(pixelVersionAliases_[i].alias());
        }
      }
      return tmp;
    }
pathVersionAliasMmap pos::PixelAliasList::getVersionData ( ) [inline]

Definition at line 250 of file PixelAliasList.h.

References versionMmap.

Referenced by pos::PixelConfigFile::getVersionData().

                                         {
      return versionMmap ;
    }
pathVersionAliasMmap pos::PixelAliasList::getVersionData ( std::string  koc) [inline]

Definition at line 254 of file PixelAliasList.h.

References query::result, and versionMmap.

    {
      pathVersionAliasMmap result ;
      for(pathVersionAliasMmap::iterator it = versionMmap.begin() ;it != versionMmap.end() ; it ++)
        {
          if((*it).first.find(koc) != std::string::npos)
            {
              result[(*it).first] = (*it).second ;
            }
        }
      return result ;
    }
void pos::PixelAliasList::insertAlias ( PixelConfigAlias anAlias) [inline]

Definition at line 174 of file PixelAliasList.h.

References gather_cfg::cout, i, name(), pos::PixelConfigAlias::name(), and pixelConfigAliases_.

Referenced by pos::PixelConfigFile::addAlias().

                                               {
      for(unsigned int i=0;i<pixelConfigAliases_.size();i++){
        if (pixelConfigAliases_[i].name()==anAlias.name()){
          std::cout << "[PixelAliasList::insertAlias()]\t\t\tReplacing existing alias:" << anAlias.name()<<std::endl;
          pixelConfigAliases_[i]=anAlias;
          return;
        }
      }
      pixelConfigAliases_.push_back(anAlias);
    }
void pos::PixelAliasList::insertVersionAlias ( PixelVersionAlias anAlias) [inline]

Definition at line 194 of file PixelAliasList.h.

References pos::PixelVersionAlias::alias(), alias(), gather_cfg::cout, i, pos::PixelVersionAlias::path(), and pixelVersionAliases_.

Referenced by pos::PixelConfigFile::addVersionAlias().

                                                       {
      for(unsigned int i=0;i<pixelVersionAliases_.size();i++){
        if (pixelVersionAliases_[i].alias()==anAlias.alias()&&
            pixelVersionAliases_[i].path()==anAlias.path()){
          std::cout << "[PixelAliasList::insertVersionAlias()]\t\tReplacing existing version alias:" 
                    <<anAlias.path()<< " " << anAlias.alias() << std::endl;
          pixelVersionAliases_[i]=anAlias;
          return;
        }
      }
      pixelVersionAliases_.push_back(anAlias);
    }
unsigned int pos::PixelAliasList::key ( unsigned int  i) [inline]
unsigned int pos::PixelAliasList::nAliases ( ) [inline]

Definition at line 278 of file PixelAliasList.h.

References pixelConfigAliases_.

Referenced by pos::PixelConfigFile::getAliases(), and pos::PixelConfigFile::getAliases_map().

{ return pixelConfigAliases_.size()       ;}
std::string pos::PixelAliasList::name ( unsigned int  i) [inline]
unsigned int pos::PixelAliasList::nVersionAliases ( ) [inline]

Definition at line 283 of file PixelAliasList.h.

References pixelVersionAliases_.

{ return pixelVersionAliases_.size()      ;}
PixelConfigAlias pos::PixelAliasList::operator[] ( unsigned int  i) [inline]

Definition at line 281 of file PixelAliasList.h.

References i, and pixelConfigAliases_.

{ return pixelConfigAliases_[i]               ;}
std::string pos::PixelAliasList::path ( unsigned int  i) [inline]

Definition at line 284 of file PixelAliasList.h.

References i, and pixelVersionAliases_.

Referenced by getVersion(), getVersionAliases(), and readfile().

{ return pixelVersionAliases_[i].path()   ;} 
void pos::PixelAliasList::readfile ( std::string  filename) [inline]

Definition at line 64 of file PixelAliasList.h.

References pos::PixelConfigAlias::addVersionAlias(), alias(), aliasMmap, gather_cfg::cout, recoMuon::in, key(), path(), pixelConfigAliases_, pixelVersionAliases_, GlobalPosition_Frontier_DevDB_cff::tag, version(), and versionMmap.

Referenced by pos::PixelConfigFile::getAlias().

                                     {

      std::ifstream in(filename.c_str());
      if (!in.good()) {
        std::cout << "[PixelAliasList::readfile()]\t\tCould not open file:"<<filename<<std::endl;
      }
      assert(in.good());

      // Added by Dario, May 28th, 2008 =====================================================================
      pixelConfigAliases_.clear() ;
      pixelVersionAliases_.clear() ;   
      aliasMmap.clear() ;
      versionMmap.clear() ;
      // End of Dario's addition ============================================================================

      std::string tag;
            
      in >> tag;
      while(tag.substr(0,1) == "#") {
        in.ignore(4096, '\n'); //skips to endl;
        in >> tag;
      }

      assert(tag=="ConfigurationAliases");

      in >> tag;

      while(tag!="VersionAliases"){

        std::string alias=tag;

        unsigned int key;
        in >> key;

        //std::cout << "[PixelAliasList::readfile()] Alias, key:"<<alias<<" "<<key<<std::endl;

        PixelConfigAlias anAlias(alias,key);
      
        in >> tag;
        std::string theAlias = alias ;
      
        // Added by Dario, May 20th, 2008 =====================================================================
        pathAliasPair tmpPAPair ;
        if( tag == ";" )
        {
         tmpPAPair[""]       = " " ;
         aliasMmap[theAlias] = tmpPAPair ;
        }
        // End of Dario's addition ============================================================================
        while(tag  != ";") {
          std::string path;
          std::string alias;

          path=tag;
          in >> alias;
          //std::cout << "[PixelAliasList::readfile()] path, alias:"<<path<<" "<<alias<<std::endl;
        
          anAlias.addVersionAlias(path,alias);
          // Added by Dario, May 20th, 2008 =====================================================================
          tmpPAPair[path]     = alias ;
          aliasMmap[theAlias] = tmpPAPair ;
          // End of Dario's addition ============================================================================
          in >> tag;

        }

        pixelConfigAliases_.push_back(anAlias);

        in >> tag;

      }

      assert(tag=="VersionAliases");

      std::string path;
      std::string alias;
      unsigned int version;

      in >> path;
      in >> version;
      in >> alias;
      in >> tag;

      //std::cout << "path version alias tag:"<<path<<" "<<version
      //              <<" "<<alias<<" "<<tag<<std::endl;

      // Added by Dario, May 23rd, 2008 =====================================================================
      versionAliasPair tmpVAPair ;
      // End of Dario's addition ============================================================================
      while(!in.eof()){
        assert(tag==";");
        PixelVersionAlias aVersionAlias(path,version,alias);
        pixelVersionAliases_.push_back(aVersionAlias);
        
        // Added by Dario, May 23rd, 2008 =====================================================================
        tmpVAPair.first  = version ;
        tmpVAPair.second = alias ; 
        versionMmap[path].push_back(tmpVAPair) ;
        // End of Dario's addition ============================================================================

        in >> path;
        in >> version;
        in >> alias;
        in >> tag;

      }
    
      in.close();
    }
void pos::PixelAliasList::updateConfigAlias ( std::string  path,
unsigned int  version,
std::string  alias,
PixelConfigList config 
) [inline]

Definition at line 207 of file PixelAliasList.h.

References pos::PixelConfigList::clone(), i, j, key(), and pixelConfigAliases_.

Referenced by pos::PixelConfigFile::addVersionAlias().

                                                                    {
 
      //first loop over configuration aliases
      for(unsigned int i=0;i<pixelConfigAliases_.size();i++){
        //std::cout << "Looping over aliases:"<<i<<std::endl;
        for(unsigned int j=0;j<pixelConfigAliases_[i].nVersionAliases();j++){
          //std::cout << "Looping over versionAliases:"<<j<<std::endl;
          if(path==pixelConfigAliases_[i].versionAliasesPath(j)&&
             alias==pixelConfigAliases_[i].versionAliasesAlias(j)){
            //std::cout << "Making clone!"<<std::endl;
            unsigned int newkey=config.clone(pixelConfigAliases_[i].key(),path,version);
            pixelConfigAliases_[i].setKey(newkey);
          }
        }
      }
    }
unsigned int pos::PixelAliasList::version ( unsigned int  i) [inline]

Definition at line 285 of file PixelAliasList.h.

References i, and pixelVersionAliases_.

Referenced by readfile().

{ return pixelVersionAliases_[i].version();}
PixelConfigAlias* pos::PixelAliasList::versionAliases ( std::string  aliasName) [inline]

Definition at line 185 of file PixelAliasList.h.

References i, name(), and pixelConfigAliases_.

Referenced by pos::PixelConfigFile::getVersionAliases().

                                                         {
      for(unsigned int i=0;i<pixelConfigAliases_.size();i++){
        if (pixelConfigAliases_[i].name()==aliasName){
          return &(pixelConfigAliases_[i]);
        }
      }
      return 0;
    }
void pos::PixelAliasList::writefile ( ) [inline]

Definition at line 29 of file PixelAliasList.h.

References pos::PixelVersionAlias::alias(), createBeamHaloJobs::directory, lut2db_cfg::filename, i, j, pos::PixelConfigAlias::key(), n, pos::PixelConfigAlias::name(), pos::PixelConfigAlias::nVersionAliases(), dbtoconf::out, pos::PixelVersionAlias::path(), pixelConfigAliases_, pixelVersionAliases_, pos::PixelVersionAlias::version(), pos::PixelConfigAlias::versionAliasesAlias(), and pos::PixelConfigAlias::versionAliasesPath().

Referenced by pos::PixelConfigFile::addAlias(), and pos::PixelConfigFile::addVersionAlias().

                    {

      std::string directory=getenv("PIXELCONFIGURATIONBASE");
    
      std::string filename=directory+"/aliases.txt";

      std::ofstream out(filename.c_str());

      out << "ConfigurationAliases" <<std::endl;
      for(unsigned int i=0;i<pixelConfigAliases_.size();i++){
        PixelConfigAlias& theAlias=pixelConfigAliases_[i];
        out << theAlias.name() << "     " 
            << theAlias.key()  << "   ";
      
        unsigned int n=theAlias.nVersionAliases();
        for (unsigned int j=0;j<n;j++){
          out << theAlias.versionAliasesPath(j) << "  ";
          out << theAlias.versionAliasesAlias(j) << "  ";
        }

        out << ";" << std::endl; 

      }

      out << "VersionAliases" <<std::endl;
      for(unsigned int i=0;i<pixelVersionAliases_.size();i++){
        PixelVersionAlias& theAlias=pixelVersionAliases_[i];

        out << theAlias.path() << "  "
            << theAlias.version() << " "
            << theAlias.alias() << " ;"<<std::endl;

      }
    }

Member Data Documentation

Definition at line 293 of file PixelAliasList.h.

Referenced by getConfigAliases(), and readfile().

Definition at line 294 of file PixelAliasList.h.

Referenced by getVersionData(), and readfile().