From e401d2f60ea5a2487f667dab5c652b2b176bb704 Mon Sep 17 00:00:00 2001 From: xtaci Date: Sun, 28 Aug 2016 17:22:25 +0800 Subject: [PATCH] upd --- README.md | 12 +++++++++--- framer.go | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b65066b..d063690 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# smux + smux simple multiplexing # goals @@ -38,8 +38,14 @@ FRAMETYPE=GoAway | | | +---------------+---------------+ -Stream.Write([]byte) --> Framer --> Qdisc.Enqueue() --> (goroutine: Session.xmit() { Qdisc.Dequeue() } --> conn.Write([]byte) -Stream.Read([]byte) --> Stream.RxQueue <-- (goroutine: Session.recvLoop(conn)) +Stream.Write([]byte) + --> Framer.split([]byte) + --> Qdisc.Enqueue(Frame) + --> (goroutine: Session.xmit() { Qdisc.Dequeue() } + --> conn.Write(Framer.serialize()) + +Stream.Read([]byte) + --> Stream.RxQueue <-- Framer.deserialize <-- (goroutine: Session.recvLoop(conn)) ``` # status diff --git a/framer.go b/framer.go index 1d93687..9c4514d 100644 --- a/framer.go +++ b/framer.go @@ -15,6 +15,10 @@ type Frame struct { type Framer struct { } +// split bytestream into frames +func (fr *Framer) split(bts []byte) []*Frame { +} + // serialize a frame to transmit func (fr *Framer) serialize(f *Frame) []byte { return nil