Files
paho.mqtt-sn.embedded-c/MQTTSNGateway/src/tests/TestTask.cpp
tomoaki 3c9b7d283b BugFix: EventQue wait() doesn't work correct.
Update: add EventQue Test.


Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
2016-10-22 09:39:42 +09:00

73 lines
1.6 KiB
C++

/**************************************************************************************
* Copyright (c) 2016, Tomoaki Yamaguchi
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Tomoaki Yamaguchi - initial API and implementation
**************************************************************************************/
#include <unistd.h>
#include <cassert>
#include "TestTask.h"
#include "Threading.h"
using namespace std;
using namespace MQTTSNGW;
TestTask::TestTask(TestProcessFramework* proc)
{
proc->attach((Thread*)this);
_proc = proc;
}
TestTask::~TestTask()
{
}
void TestTask::initialize(int argc, char** argv)
{
printf("Task initialize complite.\n");
}
void TestTask::run(void)
{
EventQue* evQue = _proc->getEventQue();
uint16_t duration = 0;
int cnt = 0;
while (true)
{
Event* ev = evQue->timedwait(5000);
if ( ev->getEventType() == EtTimeout )
{
assert(EVENT_CNT == cnt);
delete ev;
break;
}
cnt++;
MQTTSNPacket* packet = ev->getMQTTSNPacket();
packet->getDISCONNECT(&duration);
printf("Event %d\n", duration);
delete ev;
}
while(true)
{
if ( CHK_SIGINT)
{
printf("Task stopped.\n");
return;
}
printf("Task is running. Enter CTRL+C\n");
sleep(1);
}
}