root / HServer / 00.Server / 00.Program / node_modules / streamsearch / README.md
이력 | 보기 | 이력해설 | 다운로드 (2.25 KB)
1 |
Description |
---|---|
2 |
=========== |
3 |
|
4 |
streamsearch is a module for [node.js](http://nodejs.org/) that allows searching a stream using the Boyer-Moore-Horspool algorithm. |
5 |
|
6 |
This module is based heavily on the Streaming Boyer-Moore-Horspool C++ implementation by Hongli Lai [here](https://github.com/FooBarWidget/boyer-moore-horspool). |
7 |
|
8 |
|
9 |
Requirements |
10 |
============ |
11 |
|
12 |
* [node.js](http://nodejs.org/) -- v0.8.0 or newer |
13 |
|
14 |
|
15 |
Installation |
16 |
============ |
17 |
|
18 |
npm install streamsearch |
19 |
|
20 |
Example |
21 |
======= |
22 |
|
23 |
```javascript |
24 |
var StreamSearch = require('streamsearch'), |
25 |
inspect = require('util').inspect; |
26 |
|
27 |
var needle = new Buffer([13, 10]), // CRLF |
28 |
s = new StreamSearch(needle), |
29 |
chunks = [ |
30 |
new Buffer('foo'), |
31 |
new Buffer(' bar'), |
32 |
new Buffer('\r'), |
33 |
new Buffer('\n'), |
34 |
new Buffer('baz, hello\r'), |
35 |
new Buffer('\n world.'), |
36 |
new Buffer('\r\n Node.JS rules!!\r\n\r\n') |
37 |
]; |
38 |
s.on('info', function(isMatch, data, start, end) { |
39 |
if (data) |
40 |
console.log('data: ' + inspect(data.toString('ascii', start, end))); |
41 |
if (isMatch) |
42 |
console.log('match!'); |
43 |
}); |
44 |
for (var i = 0, len = chunks.length; i < len; ++i) |
45 |
s.push(chunks[i]); |
46 |
|
47 |
// output: |
48 |
// |
49 |
// data: 'foo' |
50 |
// data: ' bar' |
51 |
// match! |
52 |
// data: 'baz, hello' |
53 |
// match! |
54 |
// data: ' world.' |
55 |
// match! |
56 |
// data: ' Node.JS rules!!' |
57 |
// match! |
58 |
// data: '' |
59 |
// match! |
60 |
``` |
61 |
|
62 |
|
63 |
API |
64 |
=== |
65 |
|
66 |
Events |
67 |
------ |
68 |
|
69 |
* **info**(< _boolean_ >isMatch[, < _Buffer_ >chunk, < _integer_ >start, < _integer_ >end]) - A match _may_ or _may not_ have been made. In either case, a preceding `chunk` of data _may_ be available that did not match the needle. Data (if available) is in `chunk` between `start` (inclusive) and `end` (exclusive). |
70 |
|
71 |
|
72 |
Properties |
73 |
---------- |
74 |
|
75 |
* **maxMatches** - < _integer_ > - The maximum number of matches. Defaults to Infinity. |
76 |
|
77 |
* **matches** - < _integer_ > - The current match count. |
78 |
|
79 |
|
80 |
Functions |
81 |
--------- |
82 |
|
83 |
* **(constructor)**(< _mixed_ >needle) - Creates and returns a new instance for searching for a _Buffer_ or _string_ `needle`. |
84 |
|
85 |
* **push**(< _Buffer_ >chunk) - _integer_ - Processes `chunk`. The return value is the last processed index in `chunk` + 1. |
86 |
|
87 |
* **reset**() - _(void)_ - Resets internal state. Useful for when you wish to start searching a new/different stream for example. |