# HG changeset patch # User Thomas Harning Jr # Date 1196031917 18000 # Node ID e20f175aa1589f9a069de5fc37429af1f5c55ab0 # Parent b5b5ff03a4a3c3dcc97321f88dd61bb2c5ffc5f5 bufferevent learned set_*_watermarks diff -r b5b5ff03a4a3 -r e20f175aa158 doc/modules/luaevent.core.bufferevent.mdwn --- 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 diff -r b5b5ff03a4a3 -r e20f175aa158 src/buffer_event.c --- 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} };