Changeset 2082 for code/branches/objecthierarchy/src/core/EventIncludes.h
- Timestamp:
- Nov 1, 2008, 1:48:57 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy/src/core/EventIncludes.h
r2072 r2082 34 34 35 35 #define SetEvent(classname, eventname, functionname, event) \ 36 SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, orxonox::createExecutor(orxonox::createFunctor(&classname::functionname), std::string( #classname ) + "::" + #functionname), event, BaseObject)36 SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject) 37 37 38 38 #define SetEventTemplate(classname, eventname, functionname, event, ...) \ 39 SetEventGeneric (eventcontainer##classname##functionname, classname, eventname, orxonox::createExecutor(orxonox::createFunctor<classname, __VA_ARGS__ >(&classname::functionname), std::string( #classname ) + "::" + #functionname), event, BaseObject)39 SetEventGenericTemplate(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__) 40 40 41 41 #define SetSubclassEvent(classname, eventname, functionname, event, subclassname) \ 42 SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, orxonox::createExecutor(orxonox::createFunctor(&classname::functionname), std::string( #classname ) + "::" + #functionname), event, subclassname)42 SetEventGeneric(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname) 43 43 44 44 #define SetSubclassEventTemplate(classname, eventname, functionname, event, subclassname, ...) \ 45 SetEventGeneric (eventcontainer##classname##functionname, classname, eventname, orxonox::createExecutor(orxonox::createFunctor<classname, __VA_ARGS__ >(&classname::functionname), std::string( #classname ) + "::" + #functionname), event, subclassname)45 SetEventGenericTemplate(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__) 46 46 47 #define SetEventGeneric(containername, classname, eventname, executor, event, subclassname) \47 #define SetEventGeneric(containername, classname, eventname, functionname, event, subclassname) \ 48 48 orxonox::EventContainer* containername = this->getEventContainer(eventname); \ 49 49 if (!containername) \ 50 50 { \ 51 containername = new orxonox::ClassEventContainer<classname>(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \ 51 ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor(&classname::functionname), std::string( #classname ) + "::" + #functionname); \ 52 executor->setObject(this); \ 53 containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \ 54 this->addEventContainer(eventname, containername); \ 55 } \ 56 event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \ 57 containername->process(this, event) 58 59 #define SetEventGenericTemplate(containername, classname, eventname, functionname, event, subclassname, ...) \ 60 orxonox::EventContainer* containername = this->getEventContainer(eventname); \ 61 if (!containername) \ 62 { \ 63 ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor<classname, __VA_ARGS__ >(&classname::functionname), std::string( #classname ) + "::" + #functionname); \ 64 executor->setObject(this); \ 65 containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \ 52 66 this->addEventContainer(eventname, containername); \ 53 67 } \
Note: See TracChangeset
for help on using the changeset viewer.