Lumiera  0.pre.03
»edit your freedom«
interfaceregistry.c File Reference

Go to the source code of this file.

Description

Interface instances are published and activated by registering them into a global registry, which is defined here.

This instances are identified by their name and major version.

Definition in file interfaceregistry.c.

#include "include/logging.h"
#include "lib/error.h"
#include "lib/psplay.h"
#include "lib/safeclib.h"
#include <nobug.h>
#include "common/plugin.h"
#include "common/interfaceregistry.h"

Functions

static int lumiera_interface_cmp_fn (const void *keya, const void *keyb)
 
static const void * lumiera_interface_key_fn (const PSplaynode node)
 
static void lumiera_interfacenode_delete (LumieraInterfacenode self)
 
static LumieraInterfacenode lumiera_interfacenode_new (LumieraInterface iface, LumieraPlugin plugin)
 
void lumiera_interfaceregistry_bulkregister_interfaces (LumieraInterface *self, LumieraPlugin plugin)
 
void lumiera_interfaceregistry_bulkremove_interfaces (LumieraInterface *self)
 
void lumiera_interfaceregistry_destroy (void)
 
void lumiera_interfaceregistry_init (void)
 Initialise the interface registry.
 
LumieraInterface lumiera_interfaceregistry_interface_find (const char *interface, unsigned version, const char *name)
 
LumieraInterfacenode lumiera_interfaceregistry_interfacenode_find (const char *interface, unsigned version, const char *name)
 
void lumiera_interfaceregistry_register_interface (LumieraInterface self, LumieraPlugin plugin)
 
void lumiera_interfaceregistry_remove_interface (LumieraInterface self)
 

Variables

lumiera_recmutex lumiera_interface_mutex
 
PSplay lumiera_interfaceregistry
 
PSplay lumiera_pluginregistry