aboutsummaryrefslogtreecommitdiff
path: root/src/ltn12.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-04 15:15:45 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-04 15:15:45 +0000
commit9ed7f955e5fc69af9bf1794fa2c8cd227981ba24 (patch)
tree8c3521366ef84f534bbec278437be7ea24e2ac1c /src/ltn12.lua
parent63d60223da9de60f873ca08a25dbd9512c998929 (diff)
downloadluasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.tar.gz
luasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.tar.bz2
luasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.zip
Só pra não perder se der merda.
Diffstat (limited to 'src/ltn12.lua')
-rw-r--r--src/ltn12.lua36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/ltn12.lua b/src/ltn12.lua
index 56e6043..41855f0 100644
--- a/src/ltn12.lua
+++ b/src/ltn12.lua
@@ -1,10 +1,16 @@
1-- create module namespace 1-----------------------------------------------------------------------------
2ltn12 = ltn12 or {} 2-- LTN12 - Filters, sources, sinks and pumps.
3-- make all globals fall into ltn12 namespace 3-- LuaSocket toolkit.
4-- Author: Diego Nehab
5-- RCS ID: $Id$
6-----------------------------------------------------------------------------
7
8-----------------------------------------------------------------------------
9-- Setup namespace
10-----------------------------------------------------------------------------
11local ltn12 = {}
4setmetatable(ltn12, { __index = _G }) 12setmetatable(ltn12, { __index = _G })
5setfenv(1, ltn12) 13setfenv(1, ltn12)
6
7-- sub namespaces
8filter = {} 14filter = {}
9source = {} 15source = {}
10sink = {} 16sink = {}
@@ -13,15 +19,14 @@ pump = {}
13-- 2048 seems to be better in windows... 19-- 2048 seems to be better in windows...
14BLOCKSIZE = 2048 20BLOCKSIZE = 2048
15 21
16local function second(a, b)
17 return b
18end
19
20local function shift(a, b, c) 22local function shift(a, b, c)
21 return b, c 23 return b, c
22end 24end
23 25
24-- returns a high level filter that cycles a cycles a low-level filter 26-----------------------------------------------------------------------------
27-- Filter stuff
28-----------------------------------------------------------------------------
29-- returns a high level filter that cycles a low-level filter
25function filter.cycle(low, ctx, extra) 30function filter.cycle(low, ctx, extra)
26 return function(chunk) 31 return function(chunk)
27 local ret 32 local ret
@@ -61,6 +66,9 @@ function filter.chain(...)
61 return f 66 return f
62end 67end
63 68
69-----------------------------------------------------------------------------
70-- Source stuff
71-----------------------------------------------------------------------------
64-- create an empty source 72-- create an empty source
65local function empty() 73local function empty()
66 return nil 74 return nil
@@ -162,6 +170,9 @@ function source.cat(...)
162 end 170 end
163end 171end
164 172
173-----------------------------------------------------------------------------
174-- Sink stuff
175-----------------------------------------------------------------------------
165-- creates a sink that stores into a table 176-- creates a sink that stores into a table
166function sink.table(t) 177function sink.table(t)
167 t = t or {} 178 t = t or {}
@@ -224,6 +235,9 @@ function sink.chain(f, snk)
224 end 235 end
225end 236end
226 237
238-----------------------------------------------------------------------------
239-- Pump stuff
240-----------------------------------------------------------------------------
227-- pumps one chunk from the source to the sink 241-- pumps one chunk from the source to the sink
228function pump.step(src, snk) 242function pump.step(src, snk)
229 local chunk, src_err = src() 243 local chunk, src_err = src()
@@ -239,3 +253,5 @@ function pump.all(src, snk, step)
239 if not ret then return not err, err end 253 if not ret then return not err, err end
240 end 254 end
241end 255end
256
257return ltn12