Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MMA8451Q USBDevice WakeUp vt100
Fork of afero_node_suntory_2017_06_15 by
sensors/TimeEventHandler.hpp
- Committer:
- wataloh
- Date:
- 2017-01-19
- Revision:
- 1:b2a9a6f2c30e
- Child:
- 2:dfe671e31221
File content as of revision 1:b2a9a6f2c30e:
#ifndef _TIME_EVENT_HANDLER_HPP_
#define _TIME_EVENT_HANDLER_HPP_
#include "Preferences.hpp"
#include "debugIO.h"
namespace MaruSolSensorManager
{
template<typename A> class TimeEventHandler
{
protected:
static A *self;
static Timeout timeout;
PACKET packet;
void (A::*callback)();
inline void nop(){}
void read()
{
callback = &A::go;
}
void backToNOP()
{
callback = &A::nop;
}
public:
void loop()
{
(self->*callback)();
}
TimeEventHandler(){}
static A*
getInstance()
{
return self == NULL ? self = new A() : self;
}
static void
deleteInstance()
{
timeout.attach(&NOP,10);
if(self!=NULL)
{
delete self;
self = NULL;
}
}
static void
onRead()
{
self->read();
}
static void
NOP()
{
}
};
template<typename A> A* TimeEventHandler<A>::self=NULL;
template<typename A> Timeout TimeEventHandler<A>::timeout;
};
#endif //_TIME_EVENT_HANDLER_HPP_
