ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/utils/TypeContainer.hpp
(Generate patch)

Comparing branches/new_design/OOPSE-4/src/utils/TypeContainer.hpp (file contents):
Revision 1770 by tim, Tue Nov 23 17:53:43 2004 UTC vs.
Revision 1847 by tim, Sat Dec 4 05:24:07 2004 UTC

# Line 36 | Line 36 | namespace oopse {
36  
37   #include <map>
38   #include <vector>
39 +
40 + #include "utils/Utility.hpp"
41 +
42   namespace oopse {
43  
44      /**
# Line 52 | Line 55 | namespace oopse {
55              typedef std::map<KeyType, ValueType> MapType;
56              typedef std::map<KeyType, ValueType>::iterator MapTypeIterator;
57  
58 <            TypeContainer() index_(0) {}
58 >            TypeContainer() : index_(0) {}
59              
60              ~TypeContainer() {
61                  MapTypeIterator i;
# Line 64 | Line 67 | namespace oopse {
67              
68              bool add(KeyType& keys, ElemPtr elem) {
69                  assert(keys.size() == SIZE);
70 <                return data_.insert(MapType::value_type(keys, make_pair(index_++,elem))).second;
70 >                assert(elem);
71 >                return data_.insert(MapType::value_type(keys, std::make_pair(index_++,elem))).second;
72              }
73  
74              /** Exact Match */
# Line 75 | Line 79 | namespace oopse {
79                  
80                  i = data_.find(keys);
81                  if (i != data_.end()) {
82 <                    return (i->second).second
82 >                    return (i->second).second;
83                  }
84  
85                  KeyType reversedKeys = keys;
86                  std::reverse(reversedKeys.begin(), reversedKeys.end());
87  
88 <                i = data_.find(keys);
88 >                i = data_.find(reversedKeys);
89                  if (i != data_.end()) {
90 <                    return (i->second).second
90 >                    return (i->second).second;
91                  } else {
92                      return NULL;
93                  }
# Line 101 | Line 105 | namespace oopse {
105                  MapTypeIterator i;
106                  std::vector<ValueType> foundTypes;
107                  
108 <                while (replaceWithWildCard(iterCont, keys, replacedKey, wildCard)) {
108 >                while (replaceWithWildCard(iterCont, keys, replacedKey, wildCard)) {                    
109                      i = data_.find(replacedKey);
110                      if (i != data_.end()) {
111                          foundTypes.push_back(i->second);
# Line 113 | Line 117 | namespace oopse {
117                  std::reverse(reversedKeys.begin(), reversedKeys.end());
118  
119                  //if the reversedKeys is the same as keys, just skip it
120 <                if (reversedKeys == keys) {
120 >                if (reversedKeys != keys) {
121  
122                      
123                      //empty the iterator container
124                      iterCont.clear();
125  
126 <                    while (replaceWithWildCard(iterCont, keys, replacedKey, wildCard)) {
126 >                    while (replaceWithWildCard(iterCont, reversedKeys, replacedKey, wildCard)) {
127                          i = data_.find(replacedKey);
128                          if (i != data_.end()) {
129                              foundTypes.push_back(i->second);
# Line 139 | Line 143 | namespace oopse {
143                  std::vector<ValueType>::iterator j;                
144                  j = std::min_element(foundTypes.begin(), foundTypes.end());
145  
146 <                return j == foundTypes.end() ? NULL : (j->second).second;
146 >                return j == foundTypes.end() ? NULL : j->second;
147              }
148  
149              unsigned int size() {
# Line 148 | Line 152 | namespace oopse {
152  
153              ElemPtr beginType(MapTypeIterator& i) {
154                  i = data_.begin();
155 <                i  != data_.end() ? i->(i->second).second : NULL;
152 <
155 >                return i  != data_.end() ? (i->second).second : NULL;
156              }
157  
158              ElemPtr nextType(MapTypeIterator& i) {
159                  ++i;
160 <                i  != data_.end() ? i->(i->second).second : NULL;
160 >                return i  != data_.end() ? (i->second).second : NULL;
161              }
162              
163          private:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines