codecs
Summary:
Start of codec framework. Copied the frame based codecs almost exactly from netty, but made to fit our pipeline management.
BytesToMessageCodec is slightly different: Netty preprocesses all the available data to a List<Message>, while this codec a) Only does one message at a time to avoid queueing issues, and b) doesn't template the message type, and just passes an IOBuf
I'm fighting the type system to get the pipelines to play nice to each other: I'd rather template the message type, but it prevents stacking outgoing handlers on top of it, since you ahve to specify both the input/output type for each handler, even if you only care about the output type. Suggestions to fix? Netty gets around this by lots of dynamic casting to Object type, but we can't do that in C++ since we don't have a base object type
Test Plan: Includes lots of tests
Reviewed By: jsedgwick@fb.com
Subscribers: jsedgwick, doug, fugalh, folly-diffs@
FB internal diff:
D1758189
Tasks:
5002361,
5002316
Signature: t1:
1758189:
1421170225:
6bc8cc6a0bb461a965665bc88f7009033b215da9