Changeset 4936 in orxonox.OLD for orxonox/trunk/src/util/object_manager.cc
- Timestamp:
- Jul 22, 2005, 7:30:49 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/util/object_manager.cc
r4933 r4936 97 97 } 98 98 99 /** 100 * 101 */ 102 void FastFactory::flushAll(bool hardFLUSH) 103 { 104 FastFactory* tmpFac = FastFactory::first; 105 while (tmpFac != NULL) 106 { 107 tmpFac->flush(hardFLUSH); 108 tmpFac = tmpFac->next; 109 } 110 } 111 112 113 /** 114 * ereases all the remaining containers, without deleting the stored Objects inside of them. 115 */ 116 void FastFactory::flush(bool hardFLUSH) 117 { 118 FastObjectMember* tmpMember = this->deadList, *delMember = NULL; 119 while (tmpMember != NULL) 120 { 121 delMember = tmpMember; 122 tmpMember = tmpMember->next; 123 if (unlikely(hardFLUSH == true)) 124 delete delMember->objectPointer; 125 delete delMember; 126 } 127 this->deadList = NULL; 128 129 tmpMember = this->unusedContainers; 130 while (tmpMember != NULL) 131 { 132 delMember = tmpMember; 133 tmpMember = tmpMember->next; 134 delete delMember; 135 } 136 this->unusedContainers = NULL; 137 } 138 139 140 141 BaseObject* FastFactory::resurect(ClassID classID) 142 { 143 PRINTF(4)("Resurecting Object of type %s\n", this->getName()); 144 if (unlikely(this->deadList == NULL)) 145 { 146 PRINTF(2)("The deadList of Class %s is empty, this may be either because it has not been filled yet, or the cache is to small.\n" \ 147 "Fabricating a new %s", this->getName(), this->getName()); 148 this->fabricate(); 149 return this->resurect(classID); 150 } 151 else 152 { 153 FastObjectMember* tmpC = deadList; 154 this->deadList = this->deadList->next; 155 156 tmpC->next = this->unusedContainers; 157 this->unusedContainers = tmpC; 158 159 return tmpC->objectPointer; 160 } 161 } 162 163 164 165 void FastFactory::kill(ClassID classID, BaseObject* object) 166 { 167 FastObjectMember* tmpC; 168 if (unlikely(this->unusedContainers == NULL)) 169 { 170 tmpC = new FastObjectMember; 171 } 172 else 173 { 174 tmpC = this->unusedContainers; 175 this->unusedContainers = this->unusedContainers->next; 176 } 177 178 tmpC->next = this->deadList; 179 tmpC->objectPointer = object; 180 } 181 99 182 100 183
Note: See TracChangeset
for help on using the changeset viewer.