src/buffer_event.c

changeset 107
f937d449075d
parent 91
93793a867c18
parent 102
dc3809bf780a
equal deleted inserted replaced
91:93793a867c18 107:f937d449075d
1 /* LuaEvent - Copyright (C) 2007 Thomas Harning <harningt@gmail.com> 1 /* LuaEvent - Copyright (C) 2007 Thomas Harning <harningt@gmail.com>
2 * Licensed as LGPL - See doc/COPYING for details */ 2 * Licensed as LGPL - See doc/COPYING for details */
3 #include <stdlib.h>
3 #include "buffer_event.h" 4 #include "buffer_event.h"
4 #include "utility.h" 5 #include "utility.h"
5 #include <lauxlib.h> 6 #include <lauxlib.h>
6 #include <stdlib.h>
7 #include "event_buffer.h" 7 #include "event_buffer.h"
8 8
9 #define BUFFER_EVENT_MT "BUFFER_EVENT_MT" 9 #define BUFFER_EVENT_MT "BUFFER_EVENT_MT"
10 10
11 /* Locations of READ/WRITE buffers in the fenv */ 11 /* Locations of READ/WRITE buffers in the fenv */
151 if(!ev->ev) return 0; 151 if(!ev->ev) return 0;
152 152
153 low = lua_tonumber(L, 2); 153 low = lua_tonumber(L, 2);
154 high = lua_tonumber(L, 3); 154 high = lua_tonumber(L, 3);
155 155
156 ev->ev->wm_read.low = low; 156 bufferevent_setwatermark(ev->ev, EV_READ, low, high);
157 ev->ev->wm_read.high = high;
158 return 0; 157 return 0;
159 } 158 }
160 159
161 static int buffer_event_set_write_watermarks(lua_State* L) { 160 static int buffer_event_set_write_watermarks(lua_State* L) {
162 int low, high; 161 int low, high;
164 if(!ev->ev) return 0; 163 if(!ev->ev) return 0;
165 164
166 low = lua_tonumber(L, 2); 165 low = lua_tonumber(L, 2);
167 high = lua_tonumber(L, 3); 166 high = lua_tonumber(L, 3);
168 167
169 ev->ev->wm_write.low = low; 168 bufferevent_setwatermark(ev->ev, EV_WRITE, low, high);
170 ev->ev->wm_write.high = high; 169 return 0;
171 return 0;
172 }
173
174 static int buffer_event_get_read_watermarks(lua_State* L) {
175 le_bufferevent* ev = buffer_event_get(L, 1);
176 if(!ev->ev) return 0;
177
178 lua_pushinteger(L, ev->ev->wm_read.low);
179 lua_pushinteger(L, ev->ev->wm_read.high);
180 return 2;
181 }
182
183 static int buffer_event_get_write_watermarks(lua_State* L) {
184 le_bufferevent* ev = buffer_event_get(L, 1);
185 if(!ev->ev) return 0;
186
187 lua_pushinteger(L, ev->ev->wm_write.low);
188 lua_pushinteger(L, ev->ev->wm_write.high);
189 return 2;
190 } 170 }
191 171
192 static int buffer_event_set_timeouts(lua_State* L) { 172 static int buffer_event_set_timeouts(lua_State* L) {
193 int timeout_read, timeout_write; 173 int timeout_read, timeout_write;
194 le_bufferevent* ev = buffer_event_get(L, 1); 174 le_bufferevent* ev = buffer_event_get(L, 1);
197 timeout_read = lua_tointeger(L, 2); 177 timeout_read = lua_tointeger(L, 2);
198 timeout_write = lua_tointeger(L, 3); 178 timeout_write = lua_tointeger(L, 3);
199 179
200 bufferevent_settimeout(ev->ev, timeout_read, timeout_write); 180 bufferevent_settimeout(ev->ev, timeout_read, timeout_write);
201 return 0; 181 return 0;
202 }
203
204 static int buffer_event_get_timeouts(lua_State* L) {
205 le_bufferevent* ev = buffer_event_get(L, 1);
206 if(!ev->ev) return 0;
207
208 lua_pushinteger(L, ev->ev->timeout_read);
209 lua_pushinteger(L, ev->ev->timeout_write);
210 return 2;
211 } 182 }
212 183
213 static int buffer_event_enable(lua_State* L) { 184 static int buffer_event_enable(lua_State* L) {
214 le_bufferevent* ev = buffer_event_get(L, 1); 185 le_bufferevent* ev = buffer_event_get(L, 1);
215 if(!ev->ev) return 0; 186 if(!ev->ev) return 0;
229 static luaL_Reg buffer_event_funcs[] = { 200 static luaL_Reg buffer_event_funcs[] = {
230 {"get_read", buffer_event_get_read}, 201 {"get_read", buffer_event_get_read},
231 {"get_write", buffer_event_get_write}, 202 {"get_write", buffer_event_get_write},
232 {"set_read_watermarks", buffer_event_set_read_watermarks}, 203 {"set_read_watermarks", buffer_event_set_read_watermarks},
233 {"set_write_watermarks", buffer_event_set_write_watermarks}, 204 {"set_write_watermarks", buffer_event_set_write_watermarks},
234 {"get_read_watermarks", buffer_event_get_read_watermarks},
235 {"get_write_watermarks", buffer_event_get_write_watermarks},
236 {"set_timeouts", buffer_event_set_timeouts}, 205 {"set_timeouts", buffer_event_set_timeouts},
237 {"get_timeouts", buffer_event_get_timeouts},
238 {"enable", buffer_event_enable}, 206 {"enable", buffer_event_enable},
239 {"disable", buffer_event_disable}, 207 {"disable", buffer_event_disable},
240 {NULL, NULL} 208 {NULL, NULL}
241 }; 209 };
242 210

mercurial