finish test 1 (succesfully)
This commit is contained in:
@@ -6,11 +6,13 @@
|
||||
// TODO done: Implement code for XFBehavior class
|
||||
|
||||
XFBehavior::XFBehavior() {
|
||||
|
||||
this->deleteOnTerminate_ = false;
|
||||
}
|
||||
|
||||
XFBehavior::~XFBehavior() {
|
||||
|
||||
if (this->deleteOnTerminate()) {
|
||||
delete this;
|
||||
}
|
||||
}
|
||||
|
||||
void XFBehavior::startBehavior() {
|
||||
@@ -18,20 +20,22 @@ void XFBehavior::startBehavior() {
|
||||
}
|
||||
|
||||
void XFBehavior::pushEvent(XFEvent *pEvent) {
|
||||
pEvent->setBehavior(this);
|
||||
if(pEvent->getBehavior()==nullptr) {
|
||||
pEvent->setBehavior(this);
|
||||
}
|
||||
this->getDispatcher()->pushEvent(pEvent);
|
||||
}
|
||||
|
||||
bool XFBehavior::deleteOnTerminate() const {
|
||||
return deleteOnTerminate_;
|
||||
return this->deleteOnTerminate_;
|
||||
}
|
||||
|
||||
void XFBehavior::setDeleteOnTerminate(bool deleteBehaviour) {
|
||||
deleteOnTerminate_ = deleteBehaviour;
|
||||
this->deleteOnTerminate_ = deleteBehaviour;
|
||||
}
|
||||
|
||||
const XFEvent *XFBehavior::getCurrentEvent() const {
|
||||
return pCurrentEvent_;
|
||||
return this->pCurrentEvent_;
|
||||
}
|
||||
|
||||
interface::XFDispatcher *XFBehavior::getDispatcher() {
|
||||
@@ -40,23 +44,26 @@ interface::XFDispatcher *XFBehavior::getDispatcher() {
|
||||
|
||||
const XFTimeout *XFBehavior::getCurrentTimeout() {
|
||||
if(pCurrentEvent_->getEventType() == XFEvent::Timeout) {
|
||||
return (XFTimeout*) pCurrentEvent_;
|
||||
return (XFTimeout*) this->pCurrentEvent_;
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void XFBehavior::setCurrentEvent(const XFEvent *pEvent) {
|
||||
pCurrentEvent_ = pEvent;
|
||||
this->pCurrentEvent_ = pEvent;
|
||||
}
|
||||
|
||||
XFBehavior::TerminateBehavior XFBehavior::process(const XFEvent *pEvent) {
|
||||
setCurrentEvent(pEvent);
|
||||
this->setCurrentEvent(pEvent);
|
||||
XFEventStatus status = XFEventStatus::Unknown;
|
||||
status = processEvent();
|
||||
if(status == XFEventStatus::Consumed) {
|
||||
return deleteOnTerminate_;
|
||||
} else {
|
||||
return false;
|
||||
status = this->processEvent();
|
||||
if(status == XFEventStatus::Consumed && pEvent->deleteAfterConsume()) {
|
||||
delete pEvent;
|
||||
}
|
||||
XFBehavior::TerminateBehavior terminateBehavior = false;
|
||||
if(status == XFEventStatus::Terminate) {
|
||||
terminateBehavior = true;
|
||||
}
|
||||
return terminateBehavior;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user