LCOV - code coverage report
Current view: top level - test - reactor_custom_gathering.c (source / functions) Hit Total Coverage
Test: all.info Lines: 29 29 100.0 %
Date: 2012-09-24 Functions: 3 3 100.0 %
Branches: 4 4 100.0 %

           Branch data     Line data    Source code
       1                 :            : 
       2                 :            : #include "gwrl/event.h"
       3                 :            : 
       4                 :            : #define MY_SOURCE_TYPE 2
       5                 :            : 
       6                 :            : typedef struct my_source {
       7                 :            :         gwrlsrc _;
       8                 :            :         int something;
       9                 :            : } my_source;
      10                 :            : 
      11                 :        170 : void my_gather(gwrl * rl) {
      12                 :        170 :         gwrlsrc * src = rl->sources[MY_SOURCE_TYPE];
      13                 :        170 :         my_source * msrc = NULL;
      14         [ +  + ]:        340 :         while(src) {
      15                 :        170 :                 msrc = (my_source *)src;
      16                 :        170 :                 msrc->something++;
      17         [ +  + ]:        170 :                 if(msrc->something == 10) {
      18                 :         17 :                         msrc->something = 0;
      19                 :         17 :                         gwrlevt * evt = gwrl_evt_create(rl,src,src->callback,src->userdata,0,0);
      20                 :         17 :                         gwrl_post_evt(rl,evt);
      21                 :         17 :                 }
      22                 :        170 :                 src = src->next;
      23                 :        170 :         }
      24                 :        170 : }
      25                 :            : 
      26                 :         17 : void my_callback(gwrl * rl, gwrlevt * evt) {
      27                 :            :         //printf("custom gather fired an event for a custom input source.\n");
      28                 :         17 :         gwrl_stop(rl);
      29                 :         17 : }
      30                 :            : 
      31                 :         17 : int main(int argc, char ** argv) {
      32                 :         17 :         gwrl * rl = gwrl_create();
      33                 :         17 :         my_source * msrc = gwrl_mem_calloc(1,sizeof(my_source));
      34                 :         17 :         gwrlsrc * src = _gwrlsrc(msrc);
      35                 :            :         
      36                 :            :         #if GWRL_SRC_TYPES_COUNT < 3
      37                 :            :                 printf("error: GWRL_SRC_TYPES_COUNT must be at least 3 for this example.\n");
      38                 :            :                 exit(-1);
      39                 :            :         #endif
      40                 :            :         
      41                 :            :         #if GWRL_GATHER_FUNCS_MAX < 1
      42                 :            :                 printf("error: GWRL_GATHER_FUNCS_MAX must be at least 1 for this example\n");
      43                 :            :                 exit(-1);
      44                 :            :         #endif
      45                 :            :         
      46                 :         17 :         msrc->something = 0;
      47                 :         17 :         src->type = MY_SOURCE_TYPE;
      48                 :         17 :         src->callback = &my_callback;
      49                 :         17 :         gwrl_add_gather_fnc(rl,&my_gather);
      50                 :         17 :         gwrl_allow_poll_sleep(rl,0);
      51                 :         17 :         gwrl_src_add(rl,src);
      52                 :         17 :         gwrl_run(rl);
      53                 :         17 :         return 0;
      54                 :            : }

Generated by: LCOV version 1.9