Blame view

mbed/TimerEvent.h 1.44 KB
f7c9a8e1   jdenecha   Feat : Firt dump
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  /* mbed Microcontroller Library

   * Copyright (c) 2006-2013 ARM Limited

   *

   * Licensed under the Apache License, Version 2.0 (the "License");

   * you may not use this file except in compliance with the License.

   * You may obtain a copy of the License at

   *

   *     http://www.apache.org/licenses/LICENSE-2.0

   *

   * Unless required by applicable law or agreed to in writing, software

   * distributed under the License is distributed on an "AS IS" BASIS,

   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

   * See the License for the specific language governing permissions and

   * limitations under the License.

   */

  #ifndef MBED_TIMEREVENT_H

  #define MBED_TIMEREVENT_H

  

  #include "ticker_api.h"

  #include "us_ticker_api.h"

  

  namespace mbed {

  

  /** Base abstraction for timer interrupts

  */

  class TimerEvent {

  public:

      TimerEvent();

      TimerEvent(const ticker_data_t *data);

  

      /** The handler registered with the underlying timer interrupt

       */

      static void irq(uint32_t id);

  

      /** 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(timestamp_t timestamp);

  

      // remove from linked list, if in it

      void remove();

  

      ticker_event_t event;

  

      const ticker_data_t *_ticker_data;

  };

  

  } // namespace mbed

  

  #endif