base

package
v0.0.0-...-c340371 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2018 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package base provide common logic to transfer

Index

Constants

This section is empty.

Variables

View Source
var (
	ERR_ALREADY_CONNECTED           = errors.New("already connected")
	ERR_READ_BEFORE_CONNECTED       = errors.New("read before connected")
	ERR_WRITE_BEFORE_CONNECTED      = errors.New("write before connected")
	ERR_CREATE_CONN_NOT_IMPLEMENTED = errors.New("create conn not implemented")
)

Functions

This section is empty.

Types

type Client

type Client struct {
	*event.Event
	*HeaderCreator
	// contains filtered or unexported fields
}

func NewClient

func NewClient() *Client

func NewClientWithConnect

func NewClientWithConnect(conn net.Conn) *Client

func (*Client) Connect

func (client *Client) Connect(host string, port int) error

func (*Client) Disconnect

func (client *Client) Disconnect() error

func (*Client) Id

func (client *Client) Id() uint32

func (*Client) IsConnected

func (client *Client) IsConnected() bool

func (*Client) LocalAddr

func (client *Client) LocalAddr() transfer.Addr

func (*Client) Read

func (client *Client) Read(buf []byte) (int, error)

func (*Client) Recv

func (client *Client) Recv() (*pkg.Header, []byte, error)

func (*Client) RegistDelegate

func (client *Client) RegistDelegate(delegate transfer.IClientDelegate)

func (*Client) RemoteAddr

func (client *Client) RemoteAddr() transfer.Addr

func (*Client) Send

func (client *Client) Send(header *pkg.Header, data []byte) error

func (*Client) SetImplement

func (client *Client) SetImplement(impl IClientBaseImplement)

func (*Client) UnregistDelegate

func (client *Client) UnregistDelegate(delegate transfer.IClientDelegate)

func (*Client) Write

func (client *Client) Write(buf []byte) (int, error)

type HeaderCreator

type HeaderCreator struct {
	// contains filtered or unexported fields
}

func NewHeaderCreator

func NewHeaderCreator() *HeaderCreator

func (*HeaderCreator) NewHeader

func (self *HeaderCreator) NewHeader(t pkg.PackageType, e pkg.EncodingType, r string) *pkg.Header

func (*HeaderCreator) NewHeartBeatHeader

func (self *HeaderCreator) NewHeartBeatHeader() *pkg.Header

func (*HeaderCreator) NewHeartBeatResponseHeader

func (self *HeaderCreator) NewHeartBeatResponseHeader(h *pkg.Header) *pkg.Header

type IClientBaseImplement

type IClientBaseImplement interface {
	CreateConn(host string, port int) (net.Conn, error)
}

type IServerImplement

type IServerImplement interface {
	Open() error
	Accept() (transfer.IClient, error)
	Close() error

	Addr() transfer.Addr
}

type Server

type Server struct {
	*event.Event
	// contains filtered or unexported fields
}

func NewServer

func NewServer(host string, port int) *Server

func (*Server) Addr

func (serv *Server) Addr() transfer.Addr

func (*Server) Clients

func (serv *Server) Clients() map[uint32]transfer.IClient

func (*Server) GetClientById

func (serv *Server) GetClientById(id uint32) transfer.IClient

func (*Server) Host

func (serv *Server) Host() string

func (*Server) IsStarted

func (serv *Server) IsStarted() bool

func (*Server) Port

func (serv *Server) Port() int

func (*Server) RegistDelegate

func (serv *Server) RegistDelegate(delegate transfer.IServerDelegate)

func (*Server) SetImplement

func (server *Server) SetImplement(impl IServerImplement)

func (*Server) Start

func (serv *Server) Start() error

func (*Server) Stop

func (serv *Server) Stop() error

func (*Server) UnregistDelegate

func (serv *Server) UnregistDelegate(delegate transfer.IServerDelegate)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL