bufferevent learned set_*_watermarks

Sun, 25 Nov 2007 18:05:17 -0500

author
Thomas Harning Jr <harningt@gmail.com>
date
Sun, 25 Nov 2007 18:05:17 -0500
changeset 57
e20f175aa158
parent 56
b5b5ff03a4a3
child 58
03d12148100c

bufferevent learned set_*_watermarks

doc/modules/luaevent.core.bufferevent.mdwn file | annotate | diff | comparison | revisions
src/buffer_event.c file | annotate | diff | comparison | revisions
--- a/doc/modules/luaevent.core.bufferevent.mdwn	Sun Nov 25 17:43:57 2007 -0500
+++ b/doc/modules/luaevent.core.bufferevent.mdwn	Sun Nov 25 18:05:17 2007 -0500
@@ -32,3 +32,13 @@
 
 ## bufferevent:get_write
 * Obtains the output buffer associated w/ the bufferevent
+
+## bufferevent:set_read_watermarks
+* Input: `(low, high)`
+	* `low` - Size of buffer at which an event would be fired
+	* `high` - Maximum size of buffer to read to
+
+## bufferevent:set_write_watermarks
+* Input: `(low, high)`
+	* `low` - When buffer is below this, the event will be fired
+	* `high` - N/A to libevent, user app may use this
--- a/src/buffer_event.c	Sun Nov 25 17:43:57 2007 -0500
+++ b/src/buffer_event.c	Sun Nov 25 18:05:17 2007 -0500
@@ -141,9 +141,37 @@
 	return 1;
 }
 
+static int buffer_event_set_read_watermarks(lua_State* L) {
+	int low, high;
+	le_bufferevent* ev = buffer_event_get(L, 1);
+	if(!ev->ev) return 0;
+
+	low = lua_tonumber(L, 2);
+	high = lua_tonumber(L, 3);
+
+	ev->ev->wm_read.low = low;
+	ev->ev->wm_read.high = high;
+	return 0;
+}
+
+static int buffer_event_set_write_watermarks(lua_State* L) {
+	int low, high;
+	le_bufferevent* ev = buffer_event_get(L, 1);
+	if(!ev->ev) return 0;
+
+	low = lua_tonumber(L, 2);
+	high = lua_tonumber(L, 3);
+
+	ev->ev->wm_write.low = low;
+	ev->ev->wm_write.high = high;
+	return 0;
+}
+
 static luaL_Reg buffer_event_funcs[] = {
 	{"get_read", buffer_event_get_read},
 	{"get_write", buffer_event_get_write},
+	{"set_read_watermarks", buffer_event_set_read_watermarks},
+	{"set_write_watermarks", buffer_event_set_write_watermarks},
 	{NULL, NULL}
 };
 

mercurial