Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

TimerEvent.h

Committer:
rolf.meyer@arm.com
Date:
2009-08-28
Revision:
11:1c1ebd0324fa
Parent:
9:cf0d45ce28a6
Child:
27:7110ebee3484

File content as of revision 11:1c1ebd0324fa:

/* mbed Microcontroller Library - TimerEvent
 * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
 * sford
 */ 
 
#ifndef MBED_TIMEREVENT_H
#define MBED_TIMEREVENT_H

namespace mbed {

// Base abstraction for timer interrupts
class TimerEvent {

public:

    TimerEvent();
    
    // The handler registered with the underlying timer interrupt
    static void irq();

    // Destruction removes it...    
    virtual ~TimerEvent();

protected:

    // The handler called to service the timer event of the derived class
    virtual void handler() = 0;
    
    // insert in to linked list
    void insert(unsigned int timestamp);
    
    // remove from linked list, if in it
    void remove();
    
    // Get the current usec timestamp
    static unsigned int timestamp();

    static TimerEvent *_head;   // The head of the list of the events, NULL if none
    TimerEvent *_next;          // Pointer to the next in the list, NULL if last
    unsigned int _timestamp;    // The timestamp at which the even should be triggered

};

} // namespace mbed

#endif