Compare commits
3 Commits
922c58d611
...
79aab9999f
Author | SHA1 | Date | |
---|---|---|---|
79aab9999f | |||
dc5912187a | |||
eeb8e22117 |
56
.gitignore
vendored
56
.gitignore
vendored
@ -1 +1,55 @@
|
|||||||
test-bench/test1/build-test1-idf-Desktop_Qt_6_3_0_MinGW_64_bit-Debug
|
# C++ objects and libs
|
||||||
|
*.slo
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
*.la
|
||||||
|
*.lai
|
||||||
|
*.so
|
||||||
|
*.so.*
|
||||||
|
*.dll
|
||||||
|
*.dylib
|
||||||
|
|
||||||
|
# Qt-es
|
||||||
|
object_script.*.Release
|
||||||
|
object_script.*.Debug
|
||||||
|
*_plugin_import.cpp
|
||||||
|
/.qmake.cache
|
||||||
|
/.qmake.stash
|
||||||
|
*.pro.user
|
||||||
|
*.pro.user.*
|
||||||
|
*.qbs.user
|
||||||
|
*.qbs.user.*
|
||||||
|
*.moc
|
||||||
|
moc_*.cpp
|
||||||
|
moc_*.h
|
||||||
|
qrc_*.cpp
|
||||||
|
ui_*.h
|
||||||
|
*.qmlc
|
||||||
|
*.jsc
|
||||||
|
Makefile*
|
||||||
|
*build-*
|
||||||
|
*.qm
|
||||||
|
*.prl
|
||||||
|
|
||||||
|
# Qt unit tests
|
||||||
|
target_wrapper.*
|
||||||
|
|
||||||
|
# QtCreator
|
||||||
|
*.autosave
|
||||||
|
|
||||||
|
# QtCreator Qml
|
||||||
|
*.qmlproject.user
|
||||||
|
*.qmlproject.user.*
|
||||||
|
|
||||||
|
# QtCreator CMake
|
||||||
|
CMakeLists.txt.user*
|
||||||
|
|
||||||
|
# QtCreator 4.8< compilation database
|
||||||
|
compile_commands.json
|
||||||
|
|
||||||
|
# QtCreator local machine specific files for imported projects
|
||||||
|
*creator.user*
|
||||||
|
|
||||||
|
*_qmlcache.qrc
|
||||||
|
*.user
|
||||||
|
@ -4,3 +4,47 @@
|
|||||||
#include "xf/behavior.h"
|
#include "xf/behavior.h"
|
||||||
|
|
||||||
// TODO: Implement code for XFBehavior class
|
// 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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
XFBehavior::TerminateBehavior XFBehavior::process(const XFEvent *pEvent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
#include "xf/timeout.h"
|
#include "xf/timeout.h"
|
||||||
|
|
||||||
// TODO: Implement code for XFTimeout class
|
// TODO done: Implement code for XFTimeout class
|
||||||
|
|
||||||
XFTimeout::XFTimeout(int id, int interval, interface::XFBehavior *pBehavior):
|
XFTimeout::XFTimeout(int id, int interval, interface::XFBehavior *pBehavior):
|
||||||
XFEvent(XFEventType::Timeout, id), interval_(interval) {
|
XFEvent(XFEventType::Timeout, id), interval_(interval) {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool XFTimeout::operator ==(const XFTimeout &timeout) const {
|
||||||
|
bool i = (id_ == timeout.id_);
|
||||||
|
bool b = (pBehavior_ == timeout.pBehavior_);
|
||||||
|
return (i && b);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool XFTimeout::deleteAfterConsume() const {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,46 @@ using Mutex = interface::XFMutex; // Rename XFMutex interface class to Mut
|
|||||||
// Note: The implementation is done here because only in this file the real XFDispatcher
|
// Note: The implementation is done here because only in this file the real XFDispatcher
|
||||||
// class is known (port specific class). An instance of the XFDispatcher class is
|
// class is known (port specific class). An instance of the XFDispatcher class is
|
||||||
// returned by the 'interface::XFDispatcher' class.
|
// returned by the 'interface::XFDispatcher' class.
|
||||||
interface::XFDispatcher * interface::XFDispatcher::getInstance()
|
interface::XFDispatcher * interface::XFDispatcher::getInstance() {
|
||||||
{
|
|
||||||
static ::XFDispatcher dispatcher;
|
static ::XFDispatcher dispatcher;
|
||||||
return &dispatcher;
|
return &dispatcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Implement code for XFDispatcher class
|
// TODO: Implement code for XFDispatcher class
|
||||||
|
|
||||||
|
XFDispatcher::XFDispatcher() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
XFDispatcher::~XFDispatcher() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFDispatcher::dispatchEvent(const XFEvent *pEvent) const {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFDispatcher::pushEvent(XFEvent *pEvent) {
|
||||||
|
events_.push(pEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFDispatcher::scheduleTimeout(int timeoutId, int interval, interface::XFBehavior *pBehavior) {
|
||||||
|
XFTimeoutManager* timeoutManager = XFTimeoutManager::getInstance();
|
||||||
|
timeoutManager->scheduleTimeout(timeoutId, interval, pBehavior);
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFDispatcher::unscheduleTimeout(int timeoutId, interface::XFBehavior *pBehavior) {
|
||||||
|
XFTimeoutManager* timeoutManager = XFTimeoutManager::getInstance();
|
||||||
|
timeoutManager->unscheduleTimeout(timeoutId, pBehavior);
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFDispatcher::executeOnce() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int XFDispatcher::execute(const void *param) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // USE_XF_COMMON_DISPATCHER_CLASS
|
#endif // USE_XF_COMMON_DISPATCHER_CLASS
|
||||||
|
@ -23,7 +23,14 @@ interface::XFTimeoutManager * interface::XFTimeoutManager::getInstance() {
|
|||||||
// TODO: Implement code for XFTimeoutManager class
|
// TODO: Implement code for XFTimeoutManager class
|
||||||
|
|
||||||
XFTimeoutManager::XFTimeoutManager() {
|
XFTimeoutManager::XFTimeoutManager() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFTimeoutManager::addTimeout(XFTimeout *pNewTimeout) {
|
||||||
|
timeouts_.push_front(pNewTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFTimeoutManager::returnTimeout(XFTimeout *pTimeout) {
|
||||||
|
timeouts_.remove(pTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
XFTimeoutManager::~XFTimeoutManager() {
|
XFTimeoutManager::~XFTimeoutManager() {
|
||||||
@ -36,14 +43,23 @@ void XFTimeoutManager::start(std::function<void (uint32_t)> startTimeoutManagerT
|
|||||||
|
|
||||||
void XFTimeoutManager::scheduleTimeout(int32_t timeoutId, int32_t interval, interface::XFBehavior *pBehavior) {
|
void XFTimeoutManager::scheduleTimeout(int32_t timeoutId, int32_t interval, interface::XFBehavior *pBehavior) {
|
||||||
::XFTimeout* timeout = new XFTimeout(timeoutId, interval, pBehavior);
|
::XFTimeout* timeout = new XFTimeout(timeoutId, interval, pBehavior);
|
||||||
timeouts_.push_front(timeout);
|
addTimeout(timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t timeoutIdComparison;
|
|
||||||
bool myPredicate(XFTimeout* timeout) {return (timeout->getId()==timeoutIdComparison);}
|
|
||||||
void XFTimeoutManager::unscheduleTimeout(int32_t timeoutId, interface::XFBehavior *pBehavior) {
|
void XFTimeoutManager::unscheduleTimeout(int32_t timeoutId, interface::XFBehavior *pBehavior) {
|
||||||
timeoutIdComparison = timeoutId;
|
for(XFTimeout* timeout : timeouts_) {
|
||||||
timeouts_.remove_if(myPredicate);
|
bool id = ( timeout->getId() == timeoutId );
|
||||||
|
bool behavior = ( timeout->getBehavior() == pBehavior);
|
||||||
|
if( id && behavior ) {
|
||||||
|
timeouts_.remove(timeout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void XFTimeoutManager::tick() {
|
||||||
|
for(XFTimeout* timeout : timeouts_) {
|
||||||
|
timeout->substractFromRelTicks(tickInterval_);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // USE_XF_COMMON_TIMEOUTMANAGER_CLASS
|
#endif // USE_XF_COMMON_TIMEOUTMANAGER_CLASS
|
||||||
|
Reference in New Issue
Block a user