AT&T ECOMP Vendor Event Listener library  0.1
evel_internal_event.c
Go to the documentation of this file.
1 /**************************************************************************/
43 #include <string.h>
44 #include <assert.h>
45 #include <stdlib.h>
46 
47 #include "evel.h"
48 #include "evel_internal.h"
49 
50 
51 /**************************************************************************/
65 {
66  EVENT_INTERNAL * event = NULL;
67  EVEL_ENTER();
68 
69  /***************************************************************************/
70  /* Check preconditions. */
71  /***************************************************************************/
72  assert(command < EVT_CMD_MAX_COMMANDS);
73 
74  /***************************************************************************/
75  /* Allocate the fault. */
76  /***************************************************************************/
77  event = malloc(sizeof(EVENT_INTERNAL));
78  if (event == NULL)
79  {
80  log_error_state("Out of memory");
81  goto exit_label;
82  }
83  memset(event, 0, sizeof(EVENT_INTERNAL));
84  EVEL_DEBUG("New internal event is at %lp", event);
85 
86  /***************************************************************************/
87  /* Initialize the header & the event fields. */
88  /***************************************************************************/
89  evel_init_header(&event->header);
90  event->header.event_domain = EVEL_DOMAIN_INTERNAL;
91  event->command = command;
92 
93 exit_label:
94  EVEL_EXIT();
95  return event;
96 }
97 
98 /**************************************************************************/
107 {
108 
109  EVEL_ENTER();
110 
111  /***************************************************************************/
112  /* Check preconditions. As an internal API we don't allow freeing NULL */
113  /* events as we do on the public API. */
114  /***************************************************************************/
115  assert(event != NULL);
116  assert(event->header.event_domain == EVEL_DOMAIN_INTERNAL);
117 
118  /***************************************************************************/
119  /* Free the header itself. */
120  /***************************************************************************/
121  evel_free_header(&event->header);
122 
123  EVEL_EXIT();
124 }
void evel_free_internal_event(EVENT_INTERNAL *event)
Free an internal event.
#define EVEL_DEBUG(FMT,...)
Definition: evel.h:3621
EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command)
Create a new internal event.
Internal event.
#define EVEL_EXIT()
Definition: evel.h:3631
#define EVEL_ENTER()
Definition: evel.h:3626
Header for EVEL library.
EVEL_EVENT_DOMAINS event_domain
Definition: evel.h:420
void evel_free_header(EVENT_HEADER *const event)
Free an event header.
Definition: evel_event.c:349
EVENT_HEADER header
void log_error_state(char *format,...)
Definition: evel_logging.c:98
EVT_HANDLER_COMMAND
Global commands that may be sent to the Event Handler thread.
Definition: evel_internal.h:85
EVEL internal definitions.
void evel_init_header(EVENT_HEADER *const header)
Initialize a newly created event header.
Definition: evel_event.c:112