File: debug.go

package info (click to toggle)
golang-github-inconshreveable-muxado 0.0~git20140312.0.f693c7e-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 256 kB
  • ctags: 374
  • sloc: makefile: 2
file content (37 lines) | stat: -rw-r--r-- 1,057 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package frame

import "fmt"
import "io"

type DebugTransport struct {
	prefix string
	*BasicTransport
}

func (t *DebugTransport) Write(buf []byte) (int, error) {
	fmt.Printf("%v writes %d bytes: %x\n", t.prefix, len(buf), buf)
	return t.BasicTransport.Write(buf)
}

func (t *DebugTransport) WriteFrame(frame WFrame) (err error) {
	// each frame knows how to write iteself to the framer
	return frame.writeTo(t)
}

func (t *DebugTransport) ReadFrame() (f RFrame, err error) {
	f, err = t.BasicTransport.ReadFrame()

	fmt.Printf("%v reads Header length: %v\n", t.prefix, t.Header.Length())
	fmt.Printf("%v reads Header type: %v\n", t.prefix, t.Header.Type())
	fmt.Printf("%v reads Header stream id: %v\n", t.prefix, t.Header.StreamId())
	fmt.Printf("%v reads Header fin: %v\n", t.prefix, t.Header.Fin())
	return
}

func NewDebugTransport(rwc io.ReadWriteCloser, prefix string) *DebugTransport {
	trans := &DebugTransport{
		prefix:         prefix,
		BasicTransport: &BasicTransport{ReadWriteCloser: rwc, Header: make([]byte, headerSize)},
	}
	return trans
}