Fork me on GitHub
eventhandler.h
Go to the documentation of this file.
1 
86 #ifndef _JANUS_EVENTHANDLER_H
87 #define _JANUS_EVENTHANDLER_H
88 
89 #include <stdlib.h>
90 #include <stdint.h>
91 #include <stdio.h>
92 #include <string.h>
93 #include <ctype.h>
94 #include <unistd.h>
95 #include <inttypes.h>
96 
97 #include <glib.h>
98 #include <jansson.h>
99 
100 #include "../utils.h"
101 
102 
104 #define JANUS_EVENTHANDLER_API_VERSION 2
105 
127 
129 #define JANUS_EVENT_TYPE_NONE (0)
130 
131 #define JANUS_EVENT_TYPE_SESSION (1 << 0)
132 
133 #define JANUS_EVENT_TYPE_HANDLE (1 << 1)
134 
135 #define JANUS_EVENT_TYPE_JSEP (1 << 3)
136 
137 #define JANUS_EVENT_TYPE_WEBRTC (1 << 4)
138 
139 #define JANUS_EVENT_TYPE_MEDIA (1 << 5)
140 
141 #define JANUS_EVENT_TYPE_PLUGIN (1 << 6)
142 
143 #define JANUS_EVENT_TYPE_TRANSPORT (1 << 7)
144 
145 #define JANUS_EVENT_TYPE_CORE (1 << 8)
146  /* TODO Others? */
148 #define JANUS_EVENT_TYPE_ALL (0xffffffff)
149 
151 #define JANUS_EVENTHANDLER_INIT(...) { \
152  .init = NULL, \
153  .destroy = NULL, \
154  .get_api_compatibility = NULL, \
155  .get_version = NULL, \
156  .get_version_string = NULL, \
157  .get_description = NULL, \
158  .get_name = NULL, \
159  .get_author = NULL, \
160  .get_package = NULL, \
161  .incoming_event = NULL, \
162  .events_mask = JANUS_EVENT_TYPE_NONE, \
163  ## __VA_ARGS__ }
164 
165 
168 
169 
175  int (* const init)(const char *config_path);
177  void (* const destroy)(void);
178 
182  int (* const get_api_compatibility)(void);
184  int (* const get_version)(void);
186  const char *(* const get_version_string)(void);
188  const char *(* const get_description)(void);
190  const char *(* const get_name)(void);
192  const char *(* const get_author)(void);
194  const char *(* const get_package)(void);
195 
215  void (* const incoming_event)(json_t *event);
216 
228  json_t *(* const handle_request)(json_t *request);
229 
232 };
233 
236 
237 #endif
void(*const destroy)(void)
Event handler plugin deinitialization/destructor.
Definition: eventhandler.h:177
struct json_t json_t
Definition: plugin.h:220
janus_flags events_mask
Mask of events this handler is interested in, as a janus_flags object.
Definition: eventhandler.h:231
int(*const get_version)(void)
Informative method to request the numeric version of the event handler plugin.
Definition: eventhandler.h:184
const char *(*const get_version_string)(void)
Informative method to request the string version of the event handler plugin.
Definition: eventhandler.h:186
json_t *(*const handle_request)(json_t *request)
Method to send a request to this specific event handler plugin.
Definition: eventhandler.h:228
void(*const incoming_event)(json_t *event)
Method to notify the event handler plugin that a new event is available.
Definition: eventhandler.h:215
The event handler plugin session and callbacks interface.
Definition: eventhandler.h:171
const char *(*const get_name)(void)
Informative method to request the name of the event handler plugin.
Definition: eventhandler.h:190
int(*const init)(const char *config_path)
Event handler plugin initialization/constructor.
Definition: eventhandler.h:175
uint32_t janus_flags
Janus flags container.
Definition: utils.h:85
const char *(*const get_description)(void)
Informative method to request a description of the event handler plugin.
Definition: eventhandler.h:188
int(*const get_api_compatibility)(void)
Informative method to request the API version this event handler plugin was compiled against...
Definition: eventhandler.h:182
const char *(*const get_author)(void)
Informative method to request the author of the event handler plugin.
Definition: eventhandler.h:192
const char *(*const get_package)(void)
Informative method to request the package name of the event handler plugin (what will be used in web ...
Definition: eventhandler.h:194
janus_eventhandler * create_e(void)
The hook that event handler plugins need to implement to be created from the gateway.
Definition: eventhandler.h:235