From 65192f35d226d09a18ca7d3f63e75e40ee310505 Mon Sep 17 00:00:00 2001 From: "Thierry FOURNIER / OZON.IO" Date: Mon, 7 Nov 2016 15:28:40 +0100 Subject: [PATCH] MINOR: lua: add function which return true if the channel is full. Add function which return true if the channel is full. It is useful for triggering some process when the buffer is full. --- doc/lua-api/_static/channel.fig | 11 ++++++----- doc/lua-api/_static/channel.png | Bin 29133 -> 18457 bytes doc/lua-api/index.rst | 5 +++++ src/hlua.c | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/doc/lua-api/_static/channel.fig b/doc/lua-api/_static/channel.fig index 0838a37cd1..8a6c0a1364 100644 --- a/doc/lua-api/_static/channel.fig +++ b/doc/lua-api/_static/channel.fig @@ -8,12 +8,12 @@ Single -2 1200 2 1 1 0 1 0 7 50 -1 -1 0.000 1 0.0000 4500 1620 1260 585 4500 1620 5760 2205 -2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 9 +2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 8 1170 1350 1170 1890 2790 1890 2790 2070 3240 1620 2790 1170 - 2790 1350 1170 1350 1170 1350 -2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 9 + 2790 1350 1170 1350 +2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 8 5760 1350 5760 1890 7380 1890 7380 2070 7830 1620 7380 1170 - 7380 1350 5760 1350 5760 1350 + 7380 1350 5760 1350 2 1 1 1 0 7 50 -1 -1 1.000 0 0 -1 1 0 2 5 1 1.00 60.00 120.00 6210 540 6210 1440 @@ -51,4 +51,5 @@ Single 4 0 0 50 -1 12 12 0.0000 4 150 720 6300 1110 send()\001 4 0 0 50 -1 12 12 0.0000 4 165 1560 6255 2205 get_out_len()\001 4 0 0 50 -1 16 12 0.0000 4 150 1230 6120 2520 read functions\001 -4 1 0 50 -1 16 12 0.0000 4 150 1650 4500 540 both side functions\001 +4 1 0 50 -1 16 12 0.0000 4 150 1650 4500 315 both side functions\001 +4 1 0 50 -1 12 12 0.0000 4 150 1080 4500 540 is_full()\001 diff --git a/doc/lua-api/_static/channel.png b/doc/lua-api/_static/channel.png index 79eb6f78df3b472b97d5baa4b89f4009c7b781a0..e12a26e819056622c808ba0e9c6536c2ccc05537 100644 GIT binary patch delta 13674 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%0DleCNpyy$#vU z3&RR7QUWP4JR|wAr_6}zCoD?1o!=@ekF?r&DS6P}r23MZ=M1e| z>|L* zT7f2J@Bf9VZ#5e$o{ED-GYKj=FE+Rl>ZzNy^;z6 z2`O~I;iwZGu+VxkCuYYi?ude61p5s(Xy`_OCoukuoabeH4kMT)f@o~tEa|siUhpd#_#jKwwhTP^CQQY@YqVQ$oMtZ zXytK$dUhz7K9QLnyEkQ1{SRoNP|*7d*^#9mw5c)PdUzGhxhWgJ;jz*XrzmogT~4g` z4ZRzXV#D(_w znB@O0j@qCWDHLLf8xp-PCa)Jx`1swdOdkuKb$7_Jg!JHP6b$`LG4_4Y>xb7% zw&QZ&t5Trh&vt(82WAu5drTQ94mOtVM{B0oXxHY!LXO$)hP@xJap+8gBEh7N>;=!E z61f$A*!LdgMc{w>ij{T3&RB@b{b+@qZ?9pC%1z+mPvaE!_y#LK@@aDJB`>Z2?fK;sv@c&9 z%v6sI23_GF^l=Fczz}Y~OPqo`hwOHaho?E^#ByTavO9%j`|R|HBTztWD0IN&L6J{^ zi}XM4E$v8&&#s0tw<`Mv1(n0p*t=3}X1ykBANJ4F^61M+Gjvs!6L)_|g>XyC%ct7h z@T~Pyq_B?dJ)qnC2Qtqj`4CA>Ec6wQzo!aL`1tLL4k&&hWqaczVN98rdvc|(#B-x1 zW8RBK%=?F!rm_uytRm6AD=C}{G><~kd6OKNbV5K6gj+NgJAw|Xtto7(6}jasq3Fh>&o)zAZH#eM zXP~I0PrUDc3r~LD+Sso7EOrZ4xpsfu`A?Gq19RwX?TS*}mh%f7BEX~*^4v0}9E4(- za3Jwo5Q8wK425s#Cj~3vaGd{(klFQip1Dbu(t?9pP|sswf!QudXlH~l0*6!4fjS0> z>0N63OYz^9B6kY;NX!VdS*qQ#n^~P@cOLH9rvmK&6Hw=TTgTS;jklGA-~J{ea$)Jc zc$%*-#WZE)7uap4@quYikmg>dZQmf(rZeKe9dCJR^JFB58nu@C+xeS#i?;zy4toLIqs>a{h$K zC-d)!$OSTPnlHj%T9#)o#_>@fdG>$57>wPKAtN(?AW!D@oj#a-hn%~MMAj|xf9?_x z`TuR{|4)~||E-Px_Y&y-ziR*>`2Vf}O#Y9om3dWvm%_#aW^fHW+GI$CmU6k`vylG> DA-#3i delta 24460 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 + rem -= chn->buf->o; /* Output size */ + rem -= chn->buf->i; /* Input size */ + rem -= global.tune.maxrewrite; /* Rewrite reserved size */ + + lua_pushboolean(L, rem <= 0); + return 1; +} + /* Just returns the number of bytes available in the output * side of the buffer. This function never fails. */ @@ -6765,6 +6783,7 @@ void hlua_init(void) hlua_class_function(gL.T, "forward", hlua_channel_forward); hlua_class_function(gL.T, "get_in_len", hlua_channel_get_in_len); hlua_class_function(gL.T, "get_out_len", hlua_channel_get_out_len); + hlua_class_function(gL.T, "is_full", hlua_channel_is_full); lua_rawset(gL.T, -3); -- 2.47.3