Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

card_pairs.cxx

Go to the documentation of this file.
00001 
00013 #include <iostream>
00014 #include <TMath.h>
00015 
00016 #include "card_pairs.h"
00017 
00018 using std::endl;
00019 using std::cout;
00020 
00021 ClassImp(card_pairs)
00022 
00023 //____________________________________________________________________________
00024 ostream & operator << (ostream & stream, const card_pairs & pairs)
00025 {
00026   map<string, card_pair *>::const_iterator pair_iter;
00027 
00028   stream << "Contained card_pairs: " << endl;
00029 
00030   for(pair_iter = pairs._card_pairs_map.begin();
00031                       pair_iter != pairs._card_pairs_map.end(); ++pair_iter) {
00032 
00033     stream << "card_pair: " << pair_iter->first << ": " << endl;
00034     stream << *(pair_iter->second);
00035   }
00036   return stream;
00037 }
00038 //______________________________________________________________________________
00039 card_pairs::card_pairs()
00040 {
00041 
00042 }
00043 //______________________________________________________________________________
00044 card_pairs::card_pairs(const card_pairs * pairs)
00045 {
00046   map<string, card_pair *>::const_iterator pair_iter;
00047 
00048   for(pair_iter = pairs->_card_pairs_map.begin();
00049                        pair_iter != pairs->_card_pairs_map.end(); ++pair_iter) {
00050 
00051      string       name  =  pair_iter->first;
00052      card_pair *  cards =  pair_iter->second;
00053 
00054      this->add_card_pair(name, cards);
00055   }
00056 }
00057 //______________________________________________________________________________
00058 card_pairs::~card_pairs()
00059 {
00060 
00061 }
00062 //______________________________________________________________________________
00063 void card_pairs::add_card_pair(string name, card_pair * pair)
00064 {
00065   card_pair * cloned_pair = new card_pair(pair);
00066 
00067   _card_pairs_map.insert(
00068                       map<string, card_pair *>::value_type(name, cloned_pair) );
00069 }
00070 //______________________________________________________________________________
00071 void card_pairs::merge(const card_pairs * pairs)
00072 {
00073   map<string, card_pair *>::const_iterator pair_iter;
00074 
00075   for(pair_iter = pairs->_card_pairs_map.begin();
00076                        pair_iter != pairs->_card_pairs_map.end(); ++pair_iter) {
00077 
00078      string      name  =  pair_iter->first;
00079      card_pair * cards =  pair_iter->second;
00080 
00081      this->add_card_pair(name, cards);
00082   }
00083 }
00084 //______________________________________________________________________________
00085 void card_pairs::erase(string name)
00086 {
00087    _card_pairs_map.erase(name);
00088 }
00089 //______________________________________________________________________________
00090 const vector<string> * card_pairs::get_list_of_names(void) const
00091 {
00092    map<string, card_pair *>::const_iterator pair_iter;
00093 
00094    vector<string> * names = new vector<string>;
00095 
00096    for(pair_iter = _card_pairs_map.begin();
00097                     pair_iter != _card_pairs_map.end(); ++pair_iter)
00098                                            names->push_back( pair_iter->first );
00099    return names;
00100 }
00101 //______________________________________________________________________________
00102 card_pair * card_pairs::get_card_pair(string name) const
00103 {
00104   if( _card_pairs_map.count(name) == 1 ) {
00105 
00106    map<string, card_pair *>::const_iterator pair_iter = _card_pairs_map.find(name);
00107    return pair_iter->second;
00108 
00109   } else return 0;
00110 }
00111 //______________________________________________________________________________
00112 unsigned int card_pairs::get_n_pairs(void) const
00113 {
00114   return _card_pairs_map.size();
00115 }
00116 //______________________________________________________________________________
00117 bool card_pairs::exists(string name) const
00118 {
00119   return (_card_pairs_map.count(name) == 1);
00120 }
00121 //______________________________________________________________________________
00122 

Generated on Mon Feb 15 11:06:30 2010 for loon by  doxygen 1.3.9.1