Branch data Line data Source code
1 : :
2 : : #include "gwrl/event.h"
3 : :
4 : : gwrl * rl1 = NULL;
5 : : gwrlsrc * tsrc1 = NULL;
6 : :
7 : 12 : void functionCall(gwrl * rl, gwrlevt * evt) {
8 : 12 : printf("> function call!\n");
9 : 12 : }
10 : :
11 : 3 : void delayedFunctionCall(gwrl * rl, gwrlevt * evt) {
12 : 3 : printf("> delayed function call!\n");
13 : 3 : }
14 : :
15 : 3 : void futureTimeout(gwrl *rl, gwrlevt *evt) {
16 : 3 : printf("fiture timeout!\n");
17 : 3 : gwrl_stop(rl);
18 : 3 : }
19 : :
20 : 21 : void timeout1(gwrl * rl, gwrlevt * evt) {
21 : 21 : printf("> timeout1\n");
22 : : //gwrl_post_function(rl,&functionCall,NULL);
23 : : //if(!gwrlsrc_enabled(tsrc1)) {
24 : : //gwrlsrc_enable(rl,tsrc1);
25 : : //}
26 : 21 : }
27 : :
28 : 9 : void timeout2(gwrl * rl, gwrlevt * evt) {
29 : 9 : printf("> timeout2\n");
30 : 9 : gwrl_set_timeout(rl1,3000,false,&timeout2,NULL);
31 : 9 : }
32 : :
33 : 3 : void timeout3(gwrl * rl, gwrlevt * evt) {
34 : 3 : printf("> timeout3\n");
35 : 3 : }
36 : :
37 : 3 : int main(int argc, char ** argv) {
38 : 3 : struct timeval tv = {0};
39 : 3 : int64_t ms = 0;
40 : :
41 : 3 : rl1 = gwrl_create();
42 : 3 : gwrl_post_function(rl1,&functionCall,NULL);
43 : 3 : gwrl_post_function(rl1,&functionCall,NULL);
44 : 3 : gwrl_post_function(rl1,&functionCall,NULL);
45 : 3 : gwrl_post_function(rl1,&functionCall,NULL);
46 : 3 : gwrl_set_timeout(rl1,2000,false,&delayedFunctionCall,NULL);
47 : 3 : gwrl_set_interval(rl1,1258,&timeout1,NULL);
48 : 3 : gwrl_set_timeout(rl1,3000,false,&timeout2,NULL);
49 : 3 : tsrc1 = gwrl_set_timeout(rl1,1000,true,&timeout3,NULL);
50 : :
51 : 3 : gettimeofday(&tv,NULL);
52 : : //printf("now: %ld.%ld\n",tv.tv_sec,tv.tv_usec);
53 : :
54 : 3 : gwtm_add_ms_to_timeval(10000,&tv);
55 : : //printf("future time: %ld.%ld\n",tv.tv_sec,tv.tv_usec);
56 : :
57 : 3 : gwtm_timeval_to_ms(&tv,&ms);
58 : : //printf("future ms timeout: %lld\n",ms);
59 : :
60 : 3 : gwrl_set_date_timeout(rl1,ms,&futureTimeout,NULL);
61 : 3 : gwrl_run(rl1);
62 : 3 : return 0;
63 : : }
|