Changeset 7563
- Timestamp:
- Oct 19, 2010, 11:32:36 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/ois_update/src/libraries/core/BaseObject.h
r7562 r7563 238 238 }; 239 239 240 #ifdef check 241 struct CompilerError 242 { 243 void CompilerError() {} 244 }; 245 #endif 246 247 template <class T, int templatehack2> 248 struct SuperFunctionCondition<0, T, 0, templatehack2> 249 { 250 static void check() 251 { 252 SuperFunctionCondition<0, T, 0, templatehack2>::apply(static_cast<T*>(0)); 253 SuperFunctionCondition<0 + 1, T, 0, templatehack2>::check(); 254 } 255 256 static void apply(void* temp) {} 257 258 static void apply(BaseObject* temp) 259 { 260 ClassIdentifier<T>* identifier = ClassIdentifier<T>::getIdentifier(); 261 for (std::set<const Identifier*>::iterator it = identifier->getDirectChildrenIntern().begin(); it != identifier->getDirectChildrenIntern().end(); ++it) 262 { 263 if (((ClassIdentifier<T>*)(*it))->bSuperFunctionCaller_XMLPort_isFallback_ && ((ClassIdentifier<T>*)(*it))->superFunctionCaller_XMLPort_) 264 { 265 delete ((ClassIdentifier<T>*)(*it))->superFunctionCaller_XMLPort_; 266 ((ClassIdentifier<T>*)(*it))->superFunctionCaller_XMLPort_ = 0; 267 ((ClassIdentifier<T>*)(*it))->bSuperFunctionCaller_XMLPort_isFallback_ = false; 268 } 269 270 if (!((ClassIdentifier<T>*)(*it))->superFunctionCaller_XMLPort_) 271 { 272 COUT(5) << "Added SuperFunctionCaller for " << "XMLPort" << ": " << ClassIdentifier<T>::getIdentifier()->getName() << " <- " << ((ClassIdentifier<T>*)(*it))->getName() << std::endl; 273 ((ClassIdentifier<T>*)(*it))->superFunctionCaller_XMLPort_ = new SuperFunctionClassCaller_XMLPort <T>; 274 } 275 } 276 } 277 }; 278 279 280 //SUPER_FUNCTION(0, BaseObject, XMLPort, false); 240 SUPER_FUNCTION(0, BaseObject, XMLPort, false); 281 241 SUPER_FUNCTION(2, BaseObject, changedActivity, false); 282 242 SUPER_FUNCTION(3, BaseObject, changedVisibility, false);
Note: See TracChangeset
for help on using the changeset viewer.