35 lines
830 B
C
35 lines
830 B
C
#ifndef IVY_SELECTOR_H_
|
|
#define IVY_SELECTOR_H_
|
|
|
|
#include <ivy/status.h>
|
|
#include <blue/core/queue.h>
|
|
|
|
enum ivy_selector_recipient {
|
|
IVY_SEL_NONE = 0,
|
|
IVY_SEL_CLASS,
|
|
IVY_SEL_OBJECT,
|
|
};
|
|
|
|
struct ivy_selector {
|
|
enum ivy_selector_recipient sel_recipient;
|
|
char *sel_name;
|
|
b_queue sel_args;
|
|
};
|
|
|
|
struct ivy_selector_arg {
|
|
char *arg_label;
|
|
char *arg_name;
|
|
b_queue_entry arg_entry;
|
|
};
|
|
|
|
IVY_API enum ivy_status ivy_selector_create(struct ivy_selector **sel);
|
|
IVY_API void ivy_selector_destroy(struct ivy_selector *sel);
|
|
|
|
IVY_API void ivy_selector_set_recipient(
|
|
struct ivy_selector *sel, enum ivy_selector_recipient r);
|
|
IVY_API enum ivy_status ivy_selector_set_name(struct ivy_selector *sel, const char *name);
|
|
IVY_API enum ivy_status ivy_selector_add_arg(
|
|
struct ivy_selector *sel, const char *label, const char *name);
|
|
|
|
#endif
|