should be finish but for sure won't work

This commit is contained in:
2023-10-11 12:08:34 +02:00
parent 820aff5af4
commit b3cec6c926
3 changed files with 33 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
#include "xf/initialevent.h"
#include "xf/behavior.h"
// TODO: Implement code for XFBehavior class
// TODO done: Implement code for XFBehavior class
XFBehavior::XFBehavior() {
@@ -14,11 +14,12 @@ XFBehavior::~XFBehavior() {
}
void XFBehavior::startBehavior() {
GEN(XFInitialEvent());
}
void XFBehavior::pushEvent(XFEvent *pEvent) {
pEvent->setBehavior(this);
this->getDispatcher()->pushEvent(pEvent);
}
bool XFBehavior::deleteOnTerminate() const {
@@ -34,11 +35,15 @@ const XFEvent *XFBehavior::getCurrentEvent() const {
}
interface::XFDispatcher *XFBehavior::getDispatcher() {
return interface::XFDispatcher::getInstance();
}
const XFTimeout *XFBehavior::getCurrentTimeout() {
if(pCurrentEvent_->getEventType() == XFEvent::Timeout) {
return (XFTimeout*) pCurrentEvent_;
} else {
return nullptr;
}
}
void XFBehavior::setCurrentEvent(const XFEvent *pEvent) {
@@ -47,6 +52,11 @@ void XFBehavior::setCurrentEvent(const XFEvent *pEvent) {
XFBehavior::TerminateBehavior XFBehavior::process(const XFEvent *pEvent) {
setCurrentEvent(pEvent);
processEvent();
return deleteOnTerminate_;
XFEventStatus status = XFEventStatus::Unknown;
status = processEvent();
if(status == XFEventStatus::Consumed) {
return deleteOnTerminate_;
} else {
return false;
}
}