27 #ifndef LIBRPC_TYPING_H 28 #define LIBRPC_TYPING_H 40 #define RPCT_TYPING_INTERFACE "com.twoporeguys.librpc.Typing" 41 #define RPCT_TYPE_FIELD "%type" 42 #define RPCT_VALUE_FIELD "%value" 47 struct rpct_interface;
48 struct rpct_if_member;
144 #define RPCT_TYPE_APPLIER(_fn, _arg) \ 145 ^(rpct_type_t _type) { \ 146 return ((bool)_fn(_arg, _type)); \ 149 #define RPCT_INTERFACE_APPLIER(_fn, _arg) \ 150 ^(rpct_interface_t _iface) { \ 151 return ((bool)_fn(_arg, _iface)); \ 154 #define RPCT_MEMBER_APPLIER(_fn, _arg) \ 155 ^(rpct_member_t _member) { \ 156 return ((bool)_fn(_arg, _member)); \ 159 #define RPCT_IF_MEMBER_APPLIER(_fn, _arg) \ 160 ^(rpct_if_member_t _if_member) { \ 161 return ((bool)_fn(_arg, _if_member)); \ 381 rpct_member_t member);
int rpct_download_idl(rpc_connection_t conn)
rpct_member_t rpct_type_get_member(rpct_type_t type, const char *name)
struct rpct_typei * rpct_typei_t
bool(^ rpct_member_applier_t)(rpct_member_t)
struct rpc_object * rpc_object_t
rpct_type_t rpct_typei_get_type(rpct_typei_t typei)
enum rpc_if_member_type rpct_if_member_get_type(rpct_if_member_t member)
rpct_if_member_t rpct_find_if_member(const char *interface, const char *member)
const char * rpct_interface_get_description(rpct_interface_t iface)
rpc_object_t rpct_new(const char *decl, rpc_object_t object)
int rpct_method_get_arguments_count(rpct_if_member_t method)
bool rpct_typei_get_proxy(rpct_typei_t typei)
const char * rpct_type_get_description(rpct_type_t type)
const char * rpct_member_get_name(rpct_member_t member)
bool rpct_typei_is_compatible(rpct_typei_t decl, rpct_typei_t type)
void rpct_typei_release(rpct_typei_t typei)
rpct_typei_t rpct_new_typei(const char *decl)
bool(^ rpct_if_member_applier_t)(rpct_if_member_t)
bool rpct_interface_apply(rpct_interface_applier_t applier)
rpc_object_t rpct_pre_call_hook(void *cookie, rpc_object_t args)
struct rpct_interface * rpct_interface_t
bool rpct_if_member_apply(rpct_interface_t iface, rpct_if_member_applier_t applier)
struct rpct_argument * rpct_argument_t
rpc_object_t rpct_get_value(rpc_object_t instance)
rpct_argument_t rpct_method_get_argument(rpct_if_member_t method, int index)
const char * rpct_interface_get_name(rpct_interface_t iface)
const char * rpct_interface_get_origin(rpct_interface_t iface)
rpct_type_t rpct_get_type(const char *name)
const char * rpct_type_get_module(rpct_type_t type)
struct rpc_connection * rpc_connection_t
const char * rpct_type_get_generic_var(rpct_type_t type, int index)
const char * rpct_type_get_name(rpct_type_t type)
int rpct_read_file(const char *path)
const char * rpct_typei_get_canonical_form(rpct_typei_t typei)
const char * rpct_if_member_get_name(rpct_if_member_t member)
int rpct_load_types_dir(const char *path)
void rpct_set_value(rpc_object_t object, const char *value)
struct rpc_context * rpc_context_t
rpct_typei_t rpct_typei_get_member_type(rpct_typei_t typei, rpct_member_t member)
rpct_typei_t rpct_get_typei(rpc_object_t instance)
rpct_typei_t rpct_property_get_type(rpct_if_member_t prop)
bool(^ rpct_type_applier_t)(rpct_type_t)
rpc_object_t rpct_post_call_hook(void *cookie, rpc_object_t args)
rpc_object_t rpct_newi(rpct_typei_t typei, rpc_object_t object)
struct rpct_type * rpct_type_t
bool rpct_members_apply(rpct_type_t type, rpct_member_applier_t applier)
rpct_typei_t rpct_method_get_return_type(rpct_if_member_t method)
bool rpct_validate(rpct_typei_t typei, rpc_object_t obj, rpc_object_t *errors)
const char * rpct_typei_get_proxy_variable(rpct_typei_t typei)
const char * rpct_argument_get_name(rpct_argument_t arg)
struct rpct_if_member * rpct_if_member_t
rpct_typei_t rpct_member_get_typei(rpct_member_t member)
rpct_typei_t rpct_type_get_definition(rpct_type_t type)
rpct_typei_t rpct_argument_get_typei(rpct_argument_t arg)
rpc_object_t rpct_set_typei(rpct_typei_t typei, rpc_object_t object)
rpct_typei_t rpct_typei_retain(rpct_typei_t typei)
const char * rpct_argument_get_description(rpct_argument_t arg)
rpct_typei_t rpct_typei_get_generic_var(rpct_typei_t typei, const char *name)
struct rpct_member * rpct_member_t
const char * rpct_member_get_description(rpct_member_t member)
int rpct_type_get_generic_vars_count(rpct_type_t type)
bool rpct_types_apply(rpct_type_applier_t applier)
rpct_interface_t rpct_find_interface(const char *name)
void rpct_allow_idl_download(rpc_context_t context)
bool(^ rpct_interface_applier_t)(rpct_interface_t)
int rpct_load_types(const char *path)
bool rpct_validate_args(struct rpct_if_member *func, rpc_object_t args, rpc_object_t *errors)
int rpct_init(bool load_system_types)
int rpct_read_idl(const char *name, rpc_object_t idl)
const char * rpct_if_member_get_description(rpct_if_member_t member)
int rpct_load_types_stream(int fd)
rpct_class_t rpct_type_get_class(rpct_type_t type)
rpc_object_t rpct_serialize(rpc_object_t object)
int rpct_load_types_cached(void)
rpc_object_t rpct_deserialize(rpc_object_t object)
bool rpct_validate_return(struct rpct_if_member *func, rpc_object_t result, rpc_object_t *errors)
rpct_type_t rpct_type_get_parent(rpct_type_t type)
const char * rpct_type_get_origin(rpct_type_t iface)