Package Exports
- buffer-codec
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (buffer-codec) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
AbstractCodec
Add the String/Buffer codec to the abstract-nosql database.
- Codec
- name: the codec name.
- encode(value): encode the value. return the encoded string.
- decode(value): the value is string/buffer. return the the decoded value.
- encodeString(value): encode the value. return the encoded string.
- decodeString(value): decode the string(value). return the decoded value.
- encodeBuffer(value, destBuffer, offset=0, encoding='utf8'):
- encode value to the destBuffer. return the encoded length.
- it just return the encoded byte length if the destBuffer is null
- the default start is 0 offset of destBuffer.
- decodeBufer(buffer, start, end, encoding='utf8'):
- decode the buffer. return the decoded value.
- the default start is 0, end is buffer.length - start.
- buffer: the Buffer instance.
- it's avaiable only when constructor passed bufferSize argument or _encodeBuffer implenmented only.
- bufferSize: the default max interal buffer size.
- isBuffer(): it's true if have a interal buffer.
Codec Usage
var Codec = require("buffer-codec")
var json = Codec("json")
var data = {a:1,b:2}
var encodedData = json.encode(data)
assert.equal(json.decode(encodedData), data)
Develope A New Codec
you should implenment:
- _encodeString/_decodeString or _encodeBuffer/_decodeBuffer
- _encodeString(value): encode the value. return the encoded string.
- _decodeString(value): decode the string(value). return the decoded value.
- _encodeBuffer(value, destBuffer, offset=0, encoding='utf8'):
- encode value to the destBuffer. return the encoded length.
- it just return the encoded byte length if the destBuffer is null
- the default start is 0 offset of destBuffer.
- _decodeBufer(buffer, start, end, encoding='utf8'):
- decode the buffer. return the decoded value.
- the default start is 0, end is buffer.length - start.
Codec = require("buffer-codec")
register = Codec.register
class JsonCodec
register JsonCodec, Codec
constructor: -> return super
_encodeString: JSON.stringify
_decodeString: JSON.parse
# Using:
# get the JsonCodec Class
JsonCodec = Codec['Json']
# get the global JsonCodec instance from the Codec
json = Codec('json')
# or:
json = JsonCodec()
JsonCodec().should.be.equal Codec('json')
# create a new JsonCodec instance.
json2 = new JsonCodec()
json2.should.not.be.equal json
# reuse this buffer instead of create every once.
buf = new Buffer(8192)
bufLen = json.encodeBuffer({a:1,b:2}, buf)
data = json.decodeBuffer(buf, 0, bufLen)

