tvheadend/src/idnode.h

35 lines
801 B
C

#pragma once
#include "tvheadend.h"
#include "prop.h"
struct htsmsg;
struct idnode;
typedef struct idclass {
const struct idclass *ic_super;
const char *ic_class;
struct htsmsg *(*ic_serialize)(struct idnode *self);
struct idnode **(*ic_get_childs)(struct idnode *self);
const char *(*ic_get_title)(struct idnode *self);
const property_t *ic_properties;
} idclass_t;
typedef struct idnode {
uint8_t in_uuid[16];
RB_ENTRY(idnode) in_link;
const idclass_t *in_class;
} idnode_t;
void idnode_init(void);
int idnode_insert(idnode_t *in, const char *uuid, const idclass_t *class);
const char *idnode_uuid_as_str(const idnode_t *in);
void *idnode_find(const char *uuid, const idclass_t *class);
void idnode_unlink(idnode_t *in);
htsmsg_t *idnode_serialize(struct idnode *self);