agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
event_index.h File Reference
#include <zrtos/types.h>
#include <zrtos/progmem.h>
#include <zrtos/event_type.h>
#include <zrtos/event_handler.h>
#include <zrtos/event.h>
Include dependency graph for event_index.h:

Go to the source code of this file.

Macros

#define ZRTOS_EVENT_INDEX(name, ...)
 

Typedefs

typedef zrtos_event_handler_t zrtos_event_index_t
 

Functions

bool zrtos_event_index__invoke (zrtos_event_index_t *thiz, zrtos_event_type_t type, void *data)
 

Macro Definition Documentation

◆ ZRTOS_EVENT_INDEX

#define ZRTOS_EVENT_INDEX (   name,
  ... 
)
Value:
__VA_ARGS__ \
,{} \
};
#define ZRTOS_PROGMEM
Definition: progmem.h:16

Definition at line 21 of file event_index.h.

Typedef Documentation

◆ zrtos_event_index_t

Definition at line 27 of file event_index.h.

Function Documentation

◆ zrtos_event_index__invoke()

bool zrtos_event_index__invoke ( zrtos_event_index_t thiz,
zrtos_event_type_t  type,
void *  data 
)

Definition at line 29 of file event_index.h.

33  {
34  zrtos_event_t event;
36  &event
37  ,type
38  ,data
39  )){
40 #ifndef ZRTOS_EVENT_INDEX__CFG_ENABLE_PROGMEM
42  for(;handler->callback;handler++){
43  if(zrtos_event_type__is_any(&handler->type)
44  || 0 == zrtos_event_type__cmp(&handler->type,&event.type)){
45  if(!handler->callback(handler,&event)){
46  break;
47  }
48  }
49  }
50  return true;
51 #else
52  zrtos_event_handler_t *phandler = (zrtos_event_handler_t *)thiz;
53  while(1){
54  zrtos_event_handler_t handler;
55  zrtos_progmem__cpy(&handler,phandler++,sizeof(zrtos_event_handler_t));
56  if(handler.callback){
57  if(zrtos_event_type__is_any(&handler.type)
58  || 0 == zrtos_event_type__cmp(&handler.type,&event.type)){
59  if(!handler.callback(&handler,&event)){
60  break;
61  }
62  }
63  }else{
64  break;
65  }
66  }
67  return true;
68 #endif
69  }
70  return false;
71 }
bool zrtos_event_type__cmp(zrtos_event_type_t *a, zrtos_event_type_t *b)
Definition: event_type.h:17
zrtos_event_type_t type
Definition: event_handler.h:26
bool zrtos_progmem__cpy(void *dest, void *src, size_t len)
Definition: progmem.h:17
zrtos_event_type_t type
Definition: event.h:20
zrtos_event_handler_callback_t callback
Definition: event_handler.h:25
bool zrtos_event__init(zrtos_event_t *thiz, zrtos_event_type_t type, void *data)
Definition: event.h:24
bool zrtos_event_type__is_any(zrtos_event_type_t *thiz)
Definition: event_type.h:21
Here is the call graph for this function: