source: Sophya/trunk/SophyaLib/SysTools/periodic.h@ 241

Last change on this file since 241 was 241, checked in by ansari, 26 years ago

ppersist + pexc

File size: 942 bytes
RevLine 
[219]1// This may look like C code, but it is really -*- C++ -*-
2// Classe d'objets avec une methode (DoPeriodic()) appelee periodiquement
3#ifndef PERIODIC_H
4#define PERIODIC_H
5
[241]6#include "machdefs.h"
[219]7#include <list>
8#if defined(__KCC__)
9#include <list.h>
10#endif
11
12class Periodic;
13typedef list<Periodic*> PeriodicList;
14
15typedef void (* UsPeriodicAction) (void *);
16
17class Periodic
18{
19public:
20 Periodic(int dt, UsPeriodicAction act=NULL, void * usp=NULL);
21 virtual ~Periodic();
22
23 void SetAction(UsPeriodicAction act, void * usp=NULL);
24
25 virtual void SetInterval(int dt);
26 virtual void SetIntervalms(int dtms);
27
28 inline int Interval() { return(mDt); }
29 inline int Intervalms() { return(mDtms); }
30
31 virtual void Start(int dt=-1);
32 virtual void Stop();
33
34 virtual void DoPeriodic();
35
36 static PeriodicList* actifs;
37 static void CallBack(int);
38
39protected:
40 int mDt, mDtms, it;
41 UsPeriodicAction mAct;
42 void * mUsp;
43 bool mFgact;
44};
45
46
47#endif
Note: See TracBrowser for help on using the repository browser.