summaryrefslogtreecommitdiffstats
path: root/ml/dlib/examples/timer_ex.cpp
blob: e1d5549262a1c7762334c2d8ee21dbf45f68974e (plain)
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
// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt


/*
    This is an example illustrating the use of the timer object from the dlib C++ Library.

    The timer is an object that calls some user specified member function at regular
    intervals from another thread.
*/


#include <dlib/timer.h>
#include <dlib/misc_api.h> // for dlib::sleep
#include <iostream>

using namespace dlib;
using namespace std;

// ----------------------------------------------------------------------------------------

class timer_example
{
public:
    void action_function()
    {
        // print out a message so we can see that this function is being triggered
        cout << "action_function() called" << endl;
    }
};

// ----------------------------------------------------------------------------------------

int main()
{
    timer_example e;

    // Here we construct our timer object.  It needs two things.  The second argument is
    // the member function it is going to call at regular intervals and the first argument
    // is the object instance it will call that member function on.
    timer<timer_example> t(e, &timer_example::action_function);

    // Set the timer object to trigger every second
    t.set_delay_time(1000);

    // Start the timer.  It will start calling the action function 1 second from this call
    // to start.
    t.start();

    // Sleep for 10 seconds before letting the program end.  
    dlib::sleep(10000);

    // The timer will destruct itself properly and stop calling the action_function.
}

// ----------------------------------------------------------------------------------------