82#ifndef JANUS_TRANSPORT_H
83#define JANUS_TRANSPORT_H
100#define JANUS_TRANSPORT_API_VERSION 8
116#define JANUS_TRANSPORT_INIT(...) { \
119 .get_api_compatibility = NULL, \
120 .get_version = NULL, \
121 .get_version_string = NULL, \
122 .get_description = NULL, \
124 .get_author = NULL, \
125 .get_package = NULL, \
126 .is_janus_api_enabled = NULL, \
127 .is_admin_api_enabled = NULL, \
128 .send_message = NULL, \
129 .session_created = NULL, \
130 .session_over = NULL, \
131 .session_claimed = NULL, \
132 .query_transport = NULL, \
GMutex janus_mutex
Janus mutex implementation.
Definition mutex.h:73
struct json_t json_t
Definition plugin.h:236
Reference counter mechanism.
Callbacks to contact the Janus core.
Definition transport.h:250
gboolean(*const) is_api_secret_valid(janus_transport *plugin, const char *apisecret)
Callback to check with the core if a provided API secret is valid.
Definition transport.h:279
void(*const) incoming_request(janus_transport *plugin, janus_transport_session *transport, void *request_id, gboolean admin, json_t *message, json_error_t *error)
Callback to notify a new incoming request.
Definition transport.h:257
gboolean(*const) events_is_enabled(void)
Callback to check whether the event handlers mechanism is enabled.
Definition transport.h:294
gboolean(*const) is_auth_token_needed(janus_transport *plugin)
Callback to check with the core if an authentication token is needed.
Definition transport.h:282
gboolean(*const) is_api_secret_needed(janus_transport *plugin)
Callback to check with the core if an API secret must be provided.
Definition transport.h:271
void(*const) transport_gone(janus_transport *plugin, janus_transport_session *transport)
Callback to notify an existing transport instance went away.
Definition transport.h:267
void(*const) notify_event(janus_transport *plugin, void *transport, json_t *event)
Callback to notify an event to the registered and subscribed event handlers.
Definition transport.h:299
gboolean(*const) is_auth_token_valid(janus_transport *plugin, const char *token)
Callback to check with the core if a provided authentication token is valid.
Definition transport.h:290
Transport-Gateway session mapping.
Definition transport.h:145
volatile gint destroyed
Whether this mapping has been destroyed definitely or not: if so, the transport shouldn't make use of...
Definition transport.h:152
janus_refcount ref
Reference counter for this instance.
Definition transport.h:156
void * transport_p
Opaque pointer to the transport session.
Definition transport.h:147
janus_mutex mutex
Mutex to protect changes to transport_p.
Definition transport.h:154
void(*) p_free(void *)
Pointer to the transport-provided function, if needed, that will be used to free the opaque transport...
Definition transport.h:149
The transport plugin session and callbacks interface.
Definition transport.h:175
void(*const) session_claimed(janus_transport_session *transport, guint64 session_id)
Method to notify the transport plugin that a session it owned was claimed by another transport.
Definition transport.h:232
void(*const) session_over(janus_transport_session *transport, guint64 session_id, gboolean timeout, gboolean claimed)
Method to notify the transport plugin that a session it originated timed out.
Definition transport.h:227
void(*const) destroy(void)
Transport plugin deinitialization/destructor.
Definition transport.h:182
gboolean(*const) is_admin_api_enabled(void)
Informative method to check whether any Admin API support is currently enabled in this transport.
Definition transport.h:204
int(*const) send_message(janus_transport_session *transport, void *request_id, gboolean admin, json_t *message)
Method to send a message to a client over a transport session.
Definition transport.h:215
const char *(*const) get_author(void)
Informative method to request the author of the transport plugin.
Definition transport.h:197
const char *(*const) get_description(void)
Informative method to request a description of the transport plugin.
Definition transport.h:193
void(*const) session_created(janus_transport_session *transport, guint64 session_id)
Method to notify the transport plugin that a new session has been created from this transport.
Definition transport.h:220
json_t *(*const) query_transport(json_t *request)
Method to send a management request to this specific transport plugin.
Definition transport.h:245
int(*const) get_api_compatibility(void)
Informative method to request the API version this transport plugin was compiled against.
Definition transport.h:187
const char *(*const) get_package(void)
Informative method to request the package name of the transport plugin (what will be used in web appl...
Definition transport.h:199
const char *(*const) get_name(void)
Informative method to request the name of the transport plugin.
Definition transport.h:195
int(*const) init(janus_transport_callbacks *callback, const char *config_path)
Transport plugin initialization/constructor.
Definition transport.h:180
gboolean(*const) is_janus_api_enabled(void)
Informative method to check whether any Janus API support is currently enabled in this transport.
Definition transport.h:202
int(*const) get_version(void)
Informative method to request the numeric version of the transport plugin.
Definition transport.h:189
const char *(*const) get_version_string(void)
Informative method to request the string version of the transport plugin.
Definition transport.h:191
void janus_transport_session_destroy(janus_transport_session *session)
Helper to mark a janus_transport_session instance as destroyed.
Definition transport.c:37
janus_transport_session * janus_transport_session_create(void *transport_p, void(*p_free)(void *))
Helper to create a janus_transport_session instance.
Definition transport.c:25
janus_transport * create_t(void)
The hook that transport plugins need to implement to be created from the Janus core.
Definition transport.h:303