diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-06-04 15:15:45 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-06-04 15:15:45 +0000 |
| commit | 9ed7f955e5fc69af9bf1794fa2c8cd227981ba24 (patch) | |
| tree | 8c3521366ef84f534bbec278437be7ea24e2ac1c /src/ltn12.lua | |
| parent | 63d60223da9de60f873ca08a25dbd9512c998929 (diff) | |
| download | luasocket-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.lua | 36 |
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 | ----------------------------------------------------------------------------- |
| 2 | ltn12 = 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 | ----------------------------------------------------------------------------- | ||
| 11 | local ltn12 = {} | ||
| 4 | setmetatable(ltn12, { __index = _G }) | 12 | setmetatable(ltn12, { __index = _G }) |
| 5 | setfenv(1, ltn12) | 13 | setfenv(1, ltn12) |
| 6 | |||
| 7 | -- sub namespaces | ||
| 8 | filter = {} | 14 | filter = {} |
| 9 | source = {} | 15 | source = {} |
| 10 | sink = {} | 16 | sink = {} |
| @@ -13,15 +19,14 @@ pump = {} | |||
| 13 | -- 2048 seems to be better in windows... | 19 | -- 2048 seems to be better in windows... |
| 14 | BLOCKSIZE = 2048 | 20 | BLOCKSIZE = 2048 |
| 15 | 21 | ||
| 16 | local function second(a, b) | ||
| 17 | return b | ||
| 18 | end | ||
| 19 | |||
| 20 | local function shift(a, b, c) | 22 | local function shift(a, b, c) |
| 21 | return b, c | 23 | return b, c |
| 22 | end | 24 | end |
| 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 | ||
| 25 | function filter.cycle(low, ctx, extra) | 30 | function 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 |
| 62 | end | 67 | end |
| 63 | 68 | ||
| 69 | ----------------------------------------------------------------------------- | ||
| 70 | -- Source stuff | ||
| 71 | ----------------------------------------------------------------------------- | ||
| 64 | -- create an empty source | 72 | -- create an empty source |
| 65 | local function empty() | 73 | local function empty() |
| 66 | return nil | 74 | return nil |
| @@ -162,6 +170,9 @@ function source.cat(...) | |||
| 162 | end | 170 | end |
| 163 | end | 171 | end |
| 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 |
| 166 | function sink.table(t) | 177 | function sink.table(t) |
| 167 | t = t or {} | 178 | t = t or {} |
| @@ -224,6 +235,9 @@ function sink.chain(f, snk) | |||
| 224 | end | 235 | end |
| 225 | end | 236 | end |
| 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 |
| 228 | function pump.step(src, snk) | 242 | function 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 |
| 241 | end | 255 | end |
| 256 | |||
| 257 | return ltn12 | ||
