mirror of https://github.com/golang/go.git
add io.ReadWriteClose and use it in http
R=r DELTA=15 (6 added, 7 deleted, 2 changed) OCL=17447 CL=17461
This commit is contained in:
parent
a6b546fe31
commit
7c7a525d18
|
|
@ -11,16 +11,9 @@ import (
|
|||
"os"
|
||||
)
|
||||
|
||||
// Read/write/close interface.
|
||||
type RWC interface {
|
||||
Read(p *[]byte) (n int, err *os.Error);
|
||||
Write(p *[]byte) (n int, err *os.Error);
|
||||
Close() *os.Error;
|
||||
}
|
||||
|
||||
// Active HTTP connection (server side).
|
||||
export type Conn struct {
|
||||
rwc RWC;
|
||||
rwc io.ReadWriteClose;
|
||||
br *bufio.BufRead;
|
||||
bw *bufio.BufWrite;
|
||||
close bool;
|
||||
|
|
@ -28,7 +21,7 @@ export type Conn struct {
|
|||
}
|
||||
|
||||
// Create new connection from rwc.
|
||||
export func NewConn(rwc RWC) (c *Conn, err *os.Error) {
|
||||
export func NewConn(rwc io.ReadWriteClose) (c *Conn, err *os.Error) {
|
||||
c = new(Conn);
|
||||
c.rwc = rwc;
|
||||
if c.br, err = bufio.NewBufRead(rwc); err != nil {
|
||||
|
|
|
|||
|
|
@ -19,6 +19,12 @@ export type ReadWrite interface {
|
|||
Write(p *[]byte) (n int, err *os.Error);
|
||||
}
|
||||
|
||||
export type ReadWriteClose interface {
|
||||
Read(p *[]byte) (n int, err *os.Error);
|
||||
Write(p *[]byte) (n int, err *os.Error);
|
||||
Close() *os.Error;
|
||||
}
|
||||
|
||||
export func WriteString(w Write, s string) (n int, err *os.Error) {
|
||||
b := new([]byte, len(s)+1);
|
||||
if !syscall.StringToBytes(b, s) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue