[vala] libnl-3.0.vapi: extend VAPI
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] libnl-3.0.vapi: extend VAPI
- Date: Thu, 7 Apr 2016 18:50:29 +0000 (UTC)
commit 7e69f5120650233bf3e44a15ce7685c654c12f0f
Author: Maciej Borzecki <maciej borzecki open-rnd pl>
Date: Tue Mar 8 11:58:08 2016 +0100
libnl-3.0.vapi: extend VAPI
The patch extends VAPI of libnl-3.0 with cache
manager (nl_cache_mngr_*), additional methods of LinkCache and a helper
CachedLink type. The CachedLink type is a wrapper for the Link object,
however since the object is obtained from cache, rtnl_link_put() must be
used a free function.
Signed-off-by: Maciej Borzecki <maciek borzecki gmail com>
Signed-off-by: Maciej Borzecki <maciej borzecki open-rnd pl>
Fixes bug 763303
vapi/libnl-3.0.vapi | 39 +++++++++++++++++++++++++++++++++++++++
1 files changed, 39 insertions(+), 0 deletions(-)
---
diff --git a/vapi/libnl-3.0.vapi b/vapi/libnl-3.0.vapi
index 6998b2d..b82df39 100644
--- a/vapi/libnl-3.0.vapi
+++ b/vapi/libnl-3.0.vapi
@@ -153,6 +153,34 @@ namespace Netlink {
public void mngt_unprovide();
}
+ [CCode (cname = "int", cprefix = "NL_ACT_", has_type_id = false, cheader_filename = "netlink/cache.h")]
+ public enum CacheAction {
+ NEW,
+ DEL,
+ GET,
+ SET,
+ CHANGE,
+ }
+
+ [CCode (cname = "change_func_t", cheader_filename = "netlink/cache.h", instance_pos = -1)]
+ public delegate void ChangeCallbackFunc (Cache cache, Object obj, CacheAction act);
+
+ [Compact]
+ [CCode (cprefix = "nl_cache_mngr_", cname = "struct nl_cache_mngr", free_function =
"nl_cache_mngr_free", cheader_filename = "netlink/cache.h")]
+ public class CacheManager {
+ public static int alloc (Socket? sk, int protocol, int flags, out CacheManager c);
+
+ public int add_cache(Cache cache, ChangeCallbackFunc cb);
+ public int add(string name, ChangeCallbackFunc cb, out unowned Cache cache);
+
+ public int get_fd();
+ public int poll(int timeout);
+
+ public int data_ready();
+ public void info(DumpParams params);
+ }
+
+
[Compact]
[CCode (cprefix = "nl_cb_", cname = "struct nl_cb", free_function = "", cheader_filename =
"netlink/netlink.h")]
public class Callback {
@@ -201,6 +229,10 @@ namespace Netlink {
public int name2i (string name);
[CCode (cname = "rtnl_link_i2name")]
public unowned string i2name( int idx, char[] buffer );
+ [CCode (cname = "rtnl_link_get")]
+ public CachedLink? get(int idx);
+ [CCode (cname = "rtnl_link_get_by_name")]
+ public CachedLink? get_by_name(string idx);
}
[Compact]
@@ -360,6 +392,13 @@ namespace Netlink {
}
[Compact]
+ [CCode (cprefix = "rtnl_link_", cname = "struct rtnl_link", free_function = "rtnl_link_put",
cheader_filename = "netlink/route/link.h")]
+ public class CachedLink : Link
+ {
+ }
+
+
+ [Compact]
[CCode (cprefix = "rtnl_route_", cname = "struct rtnl_route", cheader_filename =
"netlink/route/route.h")]
public class Route
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]