#include <cassert>
#include "xf/timeout.h"
#include "xf/initialevent.h"
#include "xf/behavior.h"

// TODO: Implement code for XFBehavior class

XFBehavior::XFBehavior() {

}

XFBehavior::~XFBehavior() {

}

void XFBehavior::startBehavior() {

}

void XFBehavior::pushEvent(XFEvent *pEvent) {

}

bool XFBehavior::deleteOnTerminate() const {
    return deleteOnTerminate_;
}

void XFBehavior::setDeleteOnTerminate(bool deleteBehaviour) {
    deleteOnTerminate_ = deleteBehaviour;
}

const XFEvent *XFBehavior::getCurrentEvent() const {
    return pCurrentEvent_;
}

interface::XFDispatcher *XFBehavior::getDispatcher() {

}

const XFTimeout *XFBehavior::getCurrentTimeout() {

}

void XFBehavior::setCurrentEvent(const XFEvent *pEvent) {
    pCurrentEvent_ = pEvent;
}

XFBehavior::TerminateBehavior XFBehavior::process(const XFEvent *pEvent) {
    setCurrentEvent(pEvent);
    processEvent();
    return deleteOnTerminate_;
}
