mirror of https://github.com/hashicorp/consul
37 lines
814 B
Go
37 lines
814 B
Go
package proto
|
|
|
|
import (
|
|
"github.com/inconshreveable/muxado/proto/frame"
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
type IStream interface {
|
|
Write([]byte) (int, error)
|
|
Read([]byte) (int, error)
|
|
Close() error
|
|
SetDeadline(time.Time) error
|
|
SetReadDeadline(time.Time) error
|
|
SetWriteDeadline(time.Time) error
|
|
HalfClose([]byte) (int, error)
|
|
Id() frame.StreamId
|
|
StreamType() frame.StreamType
|
|
Session() ISession
|
|
RemoteAddr() net.Addr
|
|
LocalAddr() net.Addr
|
|
}
|
|
|
|
type ISession interface {
|
|
Open() (IStream, error)
|
|
OpenStream(frame.StreamPriority, frame.StreamType, bool) (IStream, error)
|
|
Accept() (IStream, error)
|
|
Kill() error
|
|
GoAway(frame.ErrorCode, []byte) error
|
|
LocalAddr() net.Addr
|
|
RemoteAddr() net.Addr
|
|
Close() error
|
|
Wait() (frame.ErrorCode, error, []byte)
|
|
NetListener() net.Listener
|
|
NetDial(_, _ string) (net.Conn, error)
|
|
}
|