Modules | |
Object API | |
Data Structures | |
struct | nl_derived_object |
Object Creation/Deletion | |
struct nl_object * | nl_object_alloc (struct nl_object_ops *ops) |
Allocate a new object of kind specified by the operations handle. | |
struct nl_object * | nl_object_alloc_name (const char *kind) |
Allocate a new object of kind specified by the name. | |
struct nl_object * | nl_object_clone (struct nl_object *obj) |
Allocate a new object and copy all data from an existing object. | |
void | nl_object_free (struct nl_object *obj) |
Free a cacheable object. | |
Reference Management | |
void | nl_object_get (struct nl_object *obj) |
Acquire a reference on a object. | |
void | nl_object_put (struct nl_object *obj) |
Release a reference from an object. | |
int | nl_object_shared (struct nl_object *obj) |
Check whether this object is used by multiple users. | |
Marks | |
void | nl_object_mark (struct nl_object *obj) |
Add mark to object. | |
void | nl_object_unmark (struct nl_object *obj) |
Remove mark from object. | |
int | nl_object_is_marked (struct nl_object *obj) |
Return true if object is marked. | |
Utillities | |
void | nl_object_dump (struct nl_object *obj, struct nl_dump_params *params) |
Dump this object according to the specified parameters. | |
int | nl_object_identical (struct nl_object *a, struct nl_object *b) |
Check if the identifiers of two objects are identical. | |
uint32_t | nl_object_diff (struct nl_object *a, struct nl_object *b) |
Compute bitmask representing difference in attribute values. | |
int | nl_object_match_filter (struct nl_object *obj, struct nl_object *filter) |
Match a filter against an object. | |
char * | nl_object_attrs2str (struct nl_object *obj, uint32_t attrs, char *buf, size_t len) |
Convert bitmask of attributes to a character string. | |
char * | nl_object_attr_list (struct nl_object *obj, char *buf, size_t len) |
Return list of attributes present in an object. | |
Attributes | |
int | nl_object_get_refcnt (struct nl_object *obj) |
struct nl_cache * | nl_object_get_cache (struct nl_object *obj) |
void * | nl_object_priv (struct nl_object *obj) |
struct nl_object* nl_object_alloc | ( | struct nl_object_ops * | ops | ) | [read] |
ops | cache operations handle |
Definition at line 42 of file object.c.
References nl_object_ops::oo_constructor, and nl_object_ops::oo_size.
Referenced by nl_object_alloc_name(), and nl_object_clone().
struct nl_object* nl_object_alloc_name | ( | const char * | kind | ) | [read] |
kind | name of object type |
Definition at line 72 of file object.c.
References nl_cache_ops::co_obj_ops, nl_cache_ops_lookup(), and nl_object_alloc().
struct nl_object* nl_object_clone | ( | struct nl_object * | obj | ) | [read] |
obj | object to inherite data from |
Definition at line 95 of file object.c.
References nl_object_alloc(), nl_object_free(), nl_object_ops::oo_clone, nl_object_ops::oo_free_data, and nl_object_ops::oo_size.
Referenced by nl_cache_add().
void nl_object_free | ( | struct nl_object * | obj | ) |
obj | object to free |
Definition at line 133 of file object.c.
References nl_cache_remove(), and nl_object_ops::oo_free_data.
Referenced by nl_object_clone(), and nl_object_put().
void nl_object_get | ( | struct nl_object * | obj | ) |
obj | object to acquire reference from |
Definition at line 162 of file object.c.
Referenced by genl_ctrl_search(), genl_ctrl_search_by_name(), nl_cache_add(), nl_cache_move(), nl_cache_search(), rtnl_link_get(), rtnl_link_get_by_name(), rtnl_neigh_get(), rtnl_neightbl_get(), rtnl_qdisc_get(), and rtnl_qdisc_get_by_parent().
void nl_object_put | ( | struct nl_object * | obj | ) |
obj | object to release reference from |
Definition at line 173 of file object.c.
References nl_object_free().
Referenced by nl_cache_remove().
int nl_object_shared | ( | struct nl_object * | obj | ) |
void nl_object_mark | ( | struct nl_object * | obj | ) |
obj | Object to mark |
Definition at line 210 of file object.c.
Referenced by nl_cache_mark_all().
void nl_object_unmark | ( | struct nl_object * | obj | ) |
int nl_object_is_marked | ( | struct nl_object * | obj | ) |
void nl_object_dump | ( | struct nl_object * | obj, | |
struct nl_dump_params * | params | |||
) |
int nl_object_identical | ( | struct nl_object * | a, | |
struct nl_object * | b | |||
) |
a | an object | |
b | another object of same type |
Definition at line 258 of file object.c.
References nl_object_ops::oo_compare, and nl_object_ops::oo_id_attrs.
Referenced by nl_cache_search().
uint32_t nl_object_diff | ( | struct nl_object * | a, | |
struct nl_object * | b | |||
) |
a | an object | |
b | another object of same type |
Definition at line 294 of file object.c.
References nl_object_ops::oo_compare.
int nl_object_match_filter | ( | struct nl_object * | obj, | |
struct nl_object * | filter | |||
) |
obj | object to check | |
filter | object of same type acting as filter |
Definition at line 313 of file object.c.
References nl_object_ops::oo_compare.
Referenced by nl_cache_dump_filter(), nl_cache_foreach_filter(), nl_cache_nitems_filter(), and nl_cache_subset().
char* nl_object_attrs2str | ( | struct nl_object * | obj, | |
uint32_t | attrs, | |||
char * | buf, | |||
size_t | len | |||
) |
obj | object of same type as attribute bitmask | |
attrs | bitmask of attribute types | |
buf | destination buffer | |
len | length of destination buffer |
Definition at line 336 of file object.c.
References nl_object_ops::oo_attrs2str.
Referenced by nl_object_attr_list().
char* nl_object_attr_list | ( | struct nl_object * | obj, | |
char * | buf, | |||
size_t | len | |||
) |
obj | an object | |
buf | destination buffer | |
len | length of destination buffer |
Definition at line 357 of file object.c.
References nl_object_attrs2str().