Skip to content

Commit 29604cb

Browse files
committed
Update libmemcached VAPI
1 parent 0b540dd commit 29604cb

2 files changed

Lines changed: 58 additions & 45 deletions

File tree

Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:xenial
1+
FROM ubuntu:22.04
22

33
MAINTAINER Guillaume Poirier-Morency <guillaumepoiriermorency@gmail.com>
44

@@ -8,8 +8,7 @@ RUN apt-get update && apt-get install -y \
88
libsoup2.4-dev \
99
libssl-dev \
1010
ninja-build \
11-
python3-pip \
12-
unzip \
11+
meson \
1312
valac \
1413
&& rm -rf /var/lib/apt/lists/*
1514

@@ -18,4 +17,6 @@ RUN pip3 install meson
1817
WORKDIR /valum
1918
ADD . .
2019

21-
RUN mkdir build && meson --prefix=/usr --buildtype=release . build && ninja -C build && ninja -C build test && ninja -C build install
20+
RUN mkdir build && meson --prefix=/usr --buildtype=release . build && ninja -C build && ninja -C build install
21+
# -rpath dosen't work on 22.04 (see https://github.com/valum-framework/valum/issues/224)
22+
ENV VSGI_SERVER_PATH=/usr/lib/x86_64-linux-gnu/vsgi-0.4/servers

examples/memcached/vapi/libmemcached.vapi

Lines changed: 53 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ namespace Memcached {
7474
public delegate Memcached.ReturnCode KeyTrigger (Memcached.Context ptr, [CCode (array_length_type = "size_t")] uint8[] key, Memcached.Result result);
7575
[CCode (cname = "memcached_trigger_delete_key_fn", has_target = false)]
7676
public delegate Memcached.ReturnCode DeleteKeyTrigger (Memcached.Context ptr, [CCode (array_length_type = "size_t")] uint8[] key);
77-
[CCode (cname = "memcached_dump_fn", has_target = false)]
77+
[CCode (cname = "memcached_dump_fn")]
7878
public delegate Memcached.ReturnCode DumpCallback (Memcached.Context ptr, [CCode (array_length_type = "size_t")] uint8[] key);
7979

8080
[SimpleType]
@@ -85,6 +85,10 @@ namespace Memcached {
8585
[IntegerType (rank = 11), CCode (cname = "unsigned long long")]
8686
public struct ulonglong {}
8787

88+
// options.h
89+
[CCode (cname = "libmemcached_check_configuration")]
90+
public Memcached.ReturnCode check_configuration ([CCode (array_length_type = "size_t")] uint8[] option_string, [CCode (array_length_type = "size_t")] uint8[] error_buffer);
91+
8892
// version.h
8993
public string lib_version ();
9094

@@ -103,7 +107,7 @@ namespace Memcached {
103107
public void set_user_data<T> (T data);
104108
public T get_user_data<T> ();
105109
public Memcached.ReturnCode push (Memcached.Context source);
106-
public Memcached.Instance server_instance_by_position (uint32 server_key);
110+
public unowned Memcached.Instance server_instance_by_position (uint32 server_key);
107111
public uint32 server_count ();
108112
public uint64 query_id ();
109113

@@ -113,13 +117,13 @@ namespace Memcached {
113117
public void* get_memory_allocator_context ();
114118

115119
// analyze.h
116-
public Memcached.Analysis analyze (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
120+
public Memcached.Analysis? analyze (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
117121

118122
// auto.h
119123
public Memcached.ReturnCode increment ([CCode (array_length_type = "size_t")] uint8[] key, uint32 offset, out uint64 value);
120124
public Memcached.ReturnCode decrement ([CCode (array_length_type = "size_t")] uint8[] key, uint32 offset, out uint64 value);
121-
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);
122-
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);
125+
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);
126+
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);
123127
public Memcached.ReturnCode increment_with_initial ([CCode (array_length_type = "size_t")] uint8[] key, uint64 offset, uint64 initial, time_t expiration, out uint64 value);
124128
public Memcached.ReturnCode decrement_with_initial ([CCode (array_length_type = "size_t")] uint8[] key, uint64 offset, uint64 initial, time_t expiration, out uint64 value);
125129
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,21 +138,23 @@ namespace Memcached {
134138
public Memcached.Hash get_key_hash ();
135139
public Memcached.ReturnCode set_distribution_hash (Memcached.Hash type);
136140
public Memcached.Hash get_distribution_hash ();
137-
public Memcached.ReturnCode bucket_set (uint32[] host_map, uint32[] forward_map, uint32 buckets, uint32 replicas);
141+
public Memcached.ReturnCode bucket_set ([CCode (array_length = false)] uint32[] host_map, [CCode (array_length = false)] uint32[] forward_map, uint32 buckets, uint32 replicas);
138142

139143
// callback.h
140-
public Memcached.ReturnCode callback_set<T> (Memcached.Callback flag, T data);
141-
public T callback_get<T> (Memcached.Callback flag, out Memcached.ReturnCode error);
144+
public Memcached.ReturnCode callback_set (Memcached.Callback flag, void* data);
145+
public void* callback_get (Memcached.Callback flag, out Memcached.ReturnCode error);
142146

143147
// delete.h
144148
public Memcached.ReturnCode @delete ([CCode (array_length_type = "size_t")] uint8[] key, time_t expiration);
145149
public Memcached.ReturnCode delete_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key, [CCode (array_length_type = "size_t")] uint8[] key, time_t expiration);
146150

147151
// dump.h
148152
[CCode (cname = "memcached_dump")]
149-
private Memcached.ReturnCode _dump (ref Memcached.DumpCallback function, uint32 number_of_callbacks);
150-
public Memcached.ReturnCode dump (owned Memcached.DumpCallback function) {
151-
return this._dump (ref function, 1);
153+
private Memcached.ReturnCode _dump (Memcached.DumpCallback function, uint32 number_of_callbacks);
154+
[CCode (cname = "memcached_dump_wrapper")]
155+
public Memcached.ReturnCode dump (Memcached.DumpCallback function) {
156+
var _function = &function;
157+
return this._dump ((Memcached.DumpCallback) _function, 1);
152158
}
153159

154160
// encoding_key.h
@@ -167,9 +173,11 @@ namespace Memcached {
167173

168174
// fetch.h
169175
[CCode (cname = "memcached_fetch_execute")]
170-
private Memcached.ReturnCode _fetch_execute (ref Memcached.ExecuteCallback callback, uint32 number_of_callbacks);
171-
public Memcached.ReturnCode fetch_execute (owned Memcached.ExecuteCallback callback) {
172-
return this._fetch_execute (ref callback, 1);
176+
private Memcached.ReturnCode _fetch_execute (Memcached.ExecuteCallback callback, uint32 number_of_callbacks);
177+
[CCode (cname = "memcached_fetch_execute_wrapper")]
178+
public Memcached.ReturnCode fetch_execute (Memcached.ExecuteCallback callback) {
179+
var _callback = &callback;
180+
return this._fetch_execute ((Memcached.ExecuteCallback) _callback, 1);
173181
}
174182

175183
// flush_buffers.h
@@ -185,28 +193,29 @@ namespace Memcached {
185193
[CCode (array_length_pos = 2.5, array_length_type = "size_t")]
186194
public uint8[]? get_by_key ([CCode (array_length_type = "size_t")] uint8[] group_key, [CCode (array_length_type = "size_t")] uint8[] key, out uint32 flags, out Memcached.ReturnCode error);
187195
public Memcached.ReturnCode mget_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);
188-
[Deprecated (since = "0.50", replacement = "fetch_result"), CCode (array_length_pos = 1.5, array_length_type = "size_t")]
196+
[Version (deprecated = true, deprecated_since = "0.50", replacement = "fetch_result"), CCode (array_length_pos = 1.5, array_length_type = "size_t")]
189197
public uint8[]? fetch ([CCode (array_length_type = "size_t")] uint8[] key, out uint32 flags, out Memcached.ReturnCode error);
190198
public Memcached.Result? fetch_result (Memcached.Result? result, out Memcached.ReturnCode error);
191199
[CCode (cname = "memcached_mget_execute")]
192-
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);
193-
public Memcached.ReturnCode mget_execute (uint8*[] keys, size_t[] keys_length, owned Memcached.ExecuteCallback function) {
194-
return this._mget_execute (keys, keys_length, ref function, 1);
200+
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);
201+
[CCode (cname = "memcached_mget_execute_wrapper")]
202+
public Memcached.ReturnCode mget_execute (uint8*[] keys, size_t[] keys_length, Memcached.ExecuteCallback function) {
203+
var _function = &function;
204+
return this._mget_execute (keys, keys_length, (Memcached.ExecuteCallback) _function, 1);
195205
}
196-
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);
197-
public Memcached.ReturnCode mget_execute_by_key (uint8[] group_key, uint8*[] keys, size_t[] keys_length, owned Memcached.ExecuteCallback function) {
198-
return this._mget_execute_by_key (group_key, keys, keys_length, ref function, 1);
206+
[CCode (cname = "memcached_mget_execute_by_key")]
207+
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);
208+
[CCode (cname = "memcached_mget_execute_by_key_wrapper")]
209+
public Memcached.ReturnCode mget_execute_by_key (uint8[] group_key, uint8*[] keys, size_t[] keys_length, Memcached.ExecuteCallback function) {
210+
var _function = &function;
211+
return this._mget_execute_by_key (group_key, keys, keys_length, (Memcached.ExecuteCallback) _function, 1);
199212
}
200213

201214
// hash.h
202215
public uint32 generate_hash_value ([CCode (array_length_type = "size_t")] uint8[] key, Memcached.Hash hash_algorithm);
203216
public uint32 generate_hash ([CCode (array_length_type = "size_t")] uint8[] key);
204217
public void autoeject ();
205218

206-
// options.h
207-
[CCode (cname = "libmemcached_check_configuration")]
208-
public Memcached.ReturnCode check_configuration ([CCode (array_length_type = "size_t")] uint8[] option_string, [CCode (array_length_type = "size_t")] uint8[] error_buffer);
209-
210219
// result.h
211220
public Memcached.Result result_create (Memcached.Result? result = null);
212221

@@ -216,12 +225,14 @@ namespace Memcached {
216225

217226
// server.h
218227
[CCode (cname = "memcached_server_cursor")]
219-
private Memcached.ReturnCode _server_cursor (ref Memcached.ServerCallback function, uint32 number_of_callbacks);
220-
public Memcached.ReturnCode server_cursor (owned Memcached.ServerCallback function) {
221-
return this._server_cursor (ref function, 1);
228+
private Memcached.ReturnCode _server_cursor (Memcached.ServerCallback function, uint32 number_of_callbacks);
229+
[CCode (cname = "memcached_server_cursor_wrapper")]
230+
public Memcached.ReturnCode server_cursor (Memcached.ServerCallback function) {
231+
var _function = &function;
232+
return this._server_cursor ((Memcached.ServerCallback) _function, 1);
222233
}
223-
public Memcached.Instance server_by_key ([CCode (array_length_type = "size_t")] uint8[] key, out Memcached.ReturnCode error);
224-
public Memcached.Instance server_get_last_disconnected ();
234+
public unowned Memcached.Instance? server_by_key ([CCode (array_length_type = "size_t")] uint8[] key, out Memcached.ReturnCode error);
235+
public unowned Memcached.Instance? server_get_last_disconnect ();
225236
public Memcached.ReturnCode server_add_udp (string hostname, in_port_t port = Memcached.DEFAULT_PORT);
226237
public Memcached.ReturnCode server_add_unix_socket (string filename);
227238
public Memcached.ReturnCode server_add (string hostname, in_port_t port = Memcached.DEFAULT_PORT);
@@ -234,8 +245,9 @@ namespace Memcached {
234245

235246
// stat.h
236247
public void stat_free (Memcached.Stat memc_stat);
237-
public Memcached.Stat stat (string args, out Memcached.ReturnCode error);
238-
public string stat_get_value (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
248+
public Memcached.Stat? stat (string args, out Memcached.ReturnCode error);
249+
public string stat_get_value (Memcached.Stat memc_stat, string key, out Memcached.ReturnCode error);
250+
[CCode (array_null_terminated = true)]
239251
public string[] stat_get_keys (Memcached.Stat memc_stat, out Memcached.ReturnCode error);
240252
public Memcached.ReturnCode stat_execute (string args, Memcached.StatCallback func);
241253

@@ -256,8 +268,8 @@ namespace Memcached {
256268
public unowned string strerror (Memcached.ReturnCode rc);
257269

258270
// touch.h
259-
public Memcached.ReturnCode touch ([CCode (array_length_type = "size_t")] uint8[] key, time_t expiration, uint32 flags);
260-
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);
271+
public Memcached.ReturnCode touch ([CCode (array_length_type = "size_t")] uint8[] key, time_t expiration);
272+
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);
261273

262274
// quit.h
263275
public void quit ();
@@ -278,9 +290,9 @@ namespace Memcached {
278290
}
279291

280292
// type/analysis.h
281-
[SimpleType, CCode (cname = "memcached_analysis_st", free_function = "memcached_analyze_free")]
293+
[CCode (cname = "memcached_analysis_st", has_copy_function = false, free_function = "memcached_analyze_free")]
282294
public struct Analysis {
283-
public Memcached.Context root;
295+
public unowned Memcached.Context root;
284296
public uint32 average_item_size;
285297
public uint32 longest_uptime;
286298
public uint32 least_free_server;
@@ -480,7 +492,7 @@ namespace Memcached {
480492
}
481493

482494
// parse.h
483-
[Deprecated (since = "0.39", replacement = "Context.from_configuration")]
495+
[Version (deprecated = true, deprecated_since = "0.39", replacement = "Context.from_configuration")]
484496
public Memcached.ServerList servers_parse (string server_strings);
485497

486498
// server.h
@@ -510,7 +522,7 @@ namespace Memcached {
510522
}
511523

512524
// stat.h
513-
[CCode (cname = "memcached_stat_st")]
525+
[CCode (cname = "memcached_stat_st", has_copy_function = false)]
514526
public struct Stat {
515527
ulong connection_structures;
516528
ulong curr_connections;
@@ -535,10 +547,10 @@ namespace Memcached {
535547
ulonglong get_hits;
536548
ulonglong get_misses;
537549
ulonglong limit_maxbytes;
538-
#if VALA_0_26
539550
uint8 version[Memcached.VERSION_STRING_LENGTH];
540-
#endif
541551
void* __future;
542-
Memcached.Context root;
552+
unowned Memcached.Context root;
553+
554+
public Memcached.ReturnCode servername (string args, string hostname, in_port_t port);
543555
}
544556
}

0 commit comments

Comments
 (0)