[vala-extra-vapis] libmemcached: Binding improvements and fixes
- From: Evan Nemerson <evann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala-extra-vapis] libmemcached: Binding improvements and fixes
- Date: Fri, 8 Apr 2016 17:30:27 +0000 (UTC)
commit ca85986a5eeaabad9a0cf4b478a24e32a3d6a9bf
Author: Guillaume Poirier-Morency <guillaumepoiriermorency gmail com>
Date: Fri Apr 8 12:04:26 2016 -0400
libmemcached: Binding improvements and fixes
- add missing 'check_configuration'
- remove 'has_target' on 'DumpCallback'
- fix passing a function pointer for execute APIs
- fix unowned 'Context' and 'Instance' objects
- fix returned boxed structs
- fix offset type for 'increment_by_key' and 'decrement_by_key'
The execute APIs have been fixed by using a very dirty hack where the
function pointer is casted back to its type, ensuring that the
'user_data' is passed as well.
libmemcached.vapi | 88 ++++++++++++++++++++++++++++++----------------------
1 files changed, 51 insertions(+), 37 deletions(-)
---
diff --git a/libmemcached.vapi b/libmemcached.vapi
index 42483d6..8d10a96 100644
--- a/libmemcached.vapi
+++ b/libmemcached.vapi
@@ -74,7 +74,7 @@ namespace Memcached {
public delegate Memcached.ReturnCode KeyTrigger (Memcached.Context ptr, [CCode (array_length_type =
"size_t")] uint8[] key, Memcached.Result result);
[CCode (cname = "memcached_trigger_delete_key_fn", has_target = false)]
public delegate Memcached.ReturnCode DeleteKeyTrigger (Memcached.Context ptr, [CCode (array_length_type =
"size_t")] uint8[] key);
- [CCode (cname = "memcached_dump_fn", has_target = false)]
+ [CCode (cname = "memcached_dump_fn")]
public delegate Memcached.ReturnCode DumpCallback (Memcached.Context ptr, [CCode (array_length_type =
"size_t")] uint8[] key);
[SimpleType]
@@ -85,6 +85,10 @@ namespace Memcached {
[IntegerType (rank = 11), CCode (cname = "unsigned long long")]
public struct ulonglong {}
+ // options.h
+ [CCode (cname = "libmemcached_check_configuration")]
+ public Memcached.ReturnCode check_configuration ([CCode (array_length_type = "size_t")] uint8[]
option_string, [CCode (array_length_type = "size_t")] uint8[] error_buffer);
+
// version.h
public string lib_version ();
@@ -103,7 +107,7 @@ namespace Memcached {
public void set_user_data<T> (T data);
public T get_user_data<T> ();
public Memcached.ReturnCode push (Memcached.Context source);
- public Memcached.Instance server_instance_by_position (uint32 server_key);
+ public unowned Memcached.Instance server_instance_by_position (uint32 server_key);
public uint32 server_count ();
public uint64 query_id ();
@@ -113,13 +117,13 @@ namespace Memcached {
public void* get_memory_allocator_context ();
// analyze.h
- public Memcached.Analysis analyze (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
+ public Memcached.Analysis? analyze (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
// auto.h
public Memcached.ReturnCode increment ([CCode (array_length_type = "size_t")] uint8[] key, uint32
offset, out uint64 value);
public Memcached.ReturnCode decrement ([CCode (array_length_type = "size_t")] uint8[] key, uint32
offset, out uint64 value);
- public Memcached.ReturnCode increment_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, uint64 offset, out uint64 value);
- public Memcached.ReturnCode decrement_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, uint64 offset, out uint64 value);
+ public Memcached.ReturnCode increment_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, uint32 offset, out uint64 value);
+ public Memcached.ReturnCode decrement_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, uint32 offset, out uint64 value);
public Memcached.ReturnCode increment_with_initial ([CCode (array_length_type = "size_t")] uint8[] key,
uint64 offset, uint64 initial, time_t expiration, out uint64 value);
public Memcached.ReturnCode decrement_with_initial ([CCode (array_length_type = "size_t")] uint8[] key,
uint64 offset, uint64 initial, time_t expiration, out uint64 value);
public Memcached.ReturnCode increment_with_initial_by_key ([CCode (array_length_type = "size_t")]
uint8[] group_key, [CCode (array_length_type = "size_t")] uint8[] key, uint64 offset, uint64 initial, time_t
expiration, out uint64 value);
@@ -134,11 +138,11 @@ namespace Memcached {
public Memcached.Hash get_key_hash ();
public Memcached.ReturnCode set_distribution_hash (Memcached.Hash type);
public Memcached.Hash get_distribution_hash ();
- public Memcached.ReturnCode bucket_set (uint32[] host_map, uint32[] forward_map, uint32 buckets, uint32
replicas);
+ public Memcached.ReturnCode bucket_set ([CCode (array_length = false)] uint32[] host_map, [CCode
(array_length = false)] uint32[] forward_map, uint32 buckets, uint32 replicas);
// callback.h
- public Memcached.ReturnCode callback_set<T> (Memcached.Callback flag, T data);
- public T callback_get<T> (Memcached.Callback flag, out Memcached.ReturnCode error);
+ public Memcached.ReturnCode callback_set (Memcached.Callback flag, void* data);
+ public void* callback_get (Memcached.Callback flag, out Memcached.ReturnCode error);
// delete.h
public Memcached.ReturnCode @delete ([CCode (array_length_type = "size_t")] uint8[] key, time_t
expiration);
@@ -146,9 +150,11 @@ namespace Memcached {
// dump.h
[CCode (cname = "memcached_dump")]
- private Memcached.ReturnCode _dump (ref Memcached.DumpCallback function, uint32 number_of_callbacks);
- public Memcached.ReturnCode dump (owned Memcached.DumpCallback function) {
- return this._dump (ref function, 1);
+ private Memcached.ReturnCode _dump (Memcached.DumpCallback function, uint32 number_of_callbacks);
+ [CCode (cname = "memcached_dump_wrapper")]
+ public Memcached.ReturnCode dump (Memcached.DumpCallback function) {
+ var _function = &function;
+ return this._dump ((Memcached.DumpCallback) _function, 1);
}
// encoding_key.h
@@ -167,9 +173,11 @@ namespace Memcached {
// fetch.h
[CCode (cname = "memcached_fetch_execute")]
- private Memcached.ReturnCode _fetch_execute (ref Memcached.ExecuteCallback callback, uint32
number_of_callbacks);
- public Memcached.ReturnCode fetch_execute (owned Memcached.ExecuteCallback callback) {
- return this._fetch_execute (ref callback, 1);
+ private Memcached.ReturnCode _fetch_execute (Memcached.ExecuteCallback callback, uint32
number_of_callbacks);
+ [CCode (cname = "memcached_fetch_execute_wrapper")]
+ public Memcached.ReturnCode fetch_execute (Memcached.ExecuteCallback callback) {
+ var _callback = &callback;
+ return this._fetch_execute ((Memcached.ExecuteCallback) _callback, 1);
}
// flush_buffers.h
@@ -189,13 +197,18 @@ namespace Memcached {
public uint8[]? fetch ([CCode (array_length_type = "size_t")] uint8[] key, out uint32 flags, out
Memcached.ReturnCode error);
public Memcached.Result? fetch_result (Memcached.Result? result, out Memcached.ReturnCode error);
[CCode (cname = "memcached_mget_execute")]
- private Memcached.ReturnCode _mget_execute ([CCode (array_length_type = "size_t", array_length_pos =
2.5)] uint8*[] keys, [CCode (array_length = false)] size_t[] keys_length, ref Memcached.ExecuteCallback
function, uint32 number_of_callbacks = 1);
- public Memcached.ReturnCode mget_execute (uint8*[] keys, size_t[] keys_length, owned
Memcached.ExecuteCallback function) {
- return this._mget_execute (keys, keys_length, ref function, 1);
+ private Memcached.ReturnCode _mget_execute ([CCode (array_length_type = "size_t", array_length_pos =
2.5)] uint8*[] keys, [CCode (array_length = false)] size_t[] keys_length, Memcached.ExecuteCallback function,
uint32 number_of_callbacks = 1);
+ [CCode (cname = "memcached_mget_execute_wrapper")]
+ public Memcached.ReturnCode mget_execute (uint8*[] keys, size_t[] keys_length, Memcached.ExecuteCallback
function) {
+ var _function = &function;
+ return this._mget_execute (keys, keys_length, (Memcached.ExecuteCallback) _function, 1);
}
- public Memcached.ReturnCode _mget_execute_by_key ([CCode (array_length_type = "size_t")] uint8[]
group_key, [CCode (array_length_type = "size_t", array_length_pos = 3.5)] uint8*[] keys, [CCode (array_length
= false)] size_t[] keys_length, ref Memcached.ExecuteCallback function, uint32 number_of_callbacks = 1);
- public Memcached.ReturnCode mget_execute_by_key (uint8[] group_key, uint8*[] keys, size_t[] keys_length,
owned Memcached.ExecuteCallback function) {
- return this._mget_execute_by_key (group_key, keys, keys_length, ref function, 1);
+ [CCode (cname = "memcached_mget_execute_by_key")]
+ public Memcached.ReturnCode _mget_execute_by_key ([CCode (array_length_type = "size_t")] uint8[]
group_key, [CCode (array_length_type = "size_t", array_length_pos = 3.5)] uint8*[] keys, [CCode (array_length
= false)] size_t[] keys_length, Memcached.ExecuteCallback function, uint32 number_of_callbacks = 1);
+ [CCode (cname = "memcached_mget_execute_by_key_wrapper")]
+ public Memcached.ReturnCode mget_execute_by_key (uint8[] group_key, uint8*[] keys, size_t[] keys_length,
Memcached.ExecuteCallback function) {
+ var _function = &function;
+ return this._mget_execute_by_key (group_key, keys, keys_length, (Memcached.ExecuteCallback) _function,
1);
}
// hash.h
@@ -203,10 +216,6 @@ namespace Memcached {
public uint32 generate_hash ([CCode (array_length_type = "size_t")] uint8[] key);
public void autoeject ();
- // options.h
- [CCode (cname = "libmemcached_check_configuration")]
- public Memcached.ReturnCode check_configuration ([CCode (array_length_type = "size_t")] uint8[]
option_string, [CCode (array_length_type = "size_t")] uint8[] error_buffer);
-
// result.h
public Memcached.Result result_create (Memcached.Result? result = null);
@@ -216,12 +225,14 @@ namespace Memcached {
// server.h
[CCode (cname = "memcached_server_cursor")]
- private Memcached.ReturnCode _server_cursor (ref Memcached.ServerCallback function, uint32
number_of_callbacks);
- public Memcached.ReturnCode server_cursor (owned Memcached.ServerCallback function) {
- return this._server_cursor (ref function, 1);
+ private Memcached.ReturnCode _server_cursor (Memcached.ServerCallback function, uint32
number_of_callbacks);
+ [CCode (cname = "memcached_server_cursor_wrapper")]
+ public Memcached.ReturnCode server_cursor (Memcached.ServerCallback function) {
+ var _function = &function;
+ return this._server_cursor ((Memcached.ServerCallback) _function, 1);
}
- public Memcached.Instance server_by_key ([CCode (array_length_type = "size_t")] uint8[] key, out
Memcached.ReturnCode error);
- public Memcached.Instance server_get_last_disconnected ();
+ public unowned Memcached.Instance? server_by_key ([CCode (array_length_type = "size_t")] uint8[] key,
out Memcached.ReturnCode error);
+ public unowned Memcached.Instance? server_get_last_disconnect ();
public Memcached.ReturnCode server_add_udp (string hostname, in_port_t port = Memcached.DEFAULT_PORT);
public Memcached.ReturnCode server_add_unix_socket (string filename);
public Memcached.ReturnCode server_add (string hostname, in_port_t port = Memcached.DEFAULT_PORT);
@@ -234,8 +245,9 @@ namespace Memcached {
// stat.h
public void stat_free (Memcached.Stat memc_stat);
- public Memcached.Stat stat (string args, out Memcached.ReturnCode error);
- public string stat_get_value (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
+ public Memcached.Stat? stat (string args, out Memcached.ReturnCode error);
+ public string stat_get_value (Memcached.Stat memc_stat, string key, out Memcached.ReturnCode error);
+ [CCode (array_null_terminated = true)]
public string[] stat_get_keys (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
public Memcached.ReturnCode stat_execute (string args, Memcached.StatCallback func);
@@ -256,8 +268,8 @@ namespace Memcached {
public unowned string strerror (Memcached.ReturnCode rc);
// touch.h
- public Memcached.ReturnCode touch ([CCode (array_length_type = "size_t")] uint8[] key, time_t
expiration, uint32 flags);
- public Memcached.ReturnCode touch_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, time_t expiration, uint32 flags);
+ public Memcached.ReturnCode touch ([CCode (array_length_type = "size_t")] uint8[] key, time_t
expiration);
+ public Memcached.ReturnCode touch_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key,
[CCode (array_length_type = "size_t")] uint8[] key, time_t expiration);
// quit.h
public void quit ();
@@ -278,9 +290,9 @@ namespace Memcached {
}
// type/analysis.h
- [SimpleType, CCode (cname = "memcached_analysis_st", free_function = "memcached_analyze_free")]
+ [CCode (cname = "memcached_analysis_st", has_copy_function = false, free_function =
"memcached_analyze_free")]
public struct Analysis {
- public Memcached.Context root;
+ public unowned Memcached.Context root;
public uint32 average_item_size;
public uint32 longest_uptime;
public uint32 least_free_server;
@@ -510,7 +522,7 @@ namespace Memcached {
}
// stat.h
- [CCode (cname = "memcached_stat_st")]
+ [CCode (cname = "memcached_stat_st", has_copy_function = false)]
public struct Stat {
ulong connection_structures;
ulong curr_connections;
@@ -537,6 +549,8 @@ namespace Memcached {
ulonglong limit_maxbytes;
uint8 version[Memcached.VERSION_STRING_LENGTH];
void* __future;
- Memcached.Context root;
+ unowned Memcached.Context root;
+
+ public Memcached.ReturnCode servername (string args, string hostname, in_port_t port);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]