Documentation
¶
Overview ¶
Package coproto implements the connection-oriented protocol as described in the "DCE 1.1: Remote Procedure Call" technical standard.
Index ¶
Constants ¶
const ( // MaxBackoff is the maximum allowable time between retries. // // CONST_MAX_BACKOFF MaxBackoff = time.Minute // MaxResourceWait is the maximum allowable time for an association to be // allocated. // // CONST_MAX_RESOURCE_WAIT MaxResourceWait = time.Minute * 5 // MinSupportedFragmentSize is the minimum size of PDU fragments that a // connection-oriented client or server must support. // // CONST_MUST_RCV_FRAG_SIZE MinSupportedFragmentSize = 1432 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Association ¶
type Association interface { }
Association is a single communication channel between a client and server. It is capabale of handling one RPC call at a time.
type AssociationGroup ¶
type AssociationGroup interface { }
AssociationGroup is a group of connection-oriented associations. Associations that share a common protocol tower and communicate with a common server are grouped into an association group.
type Call ¶
type Call struct { }
Call represents a single remote procedure call in the connection-oriented protocol.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a connection-oriented protocol client. It represents the client side of an RPC association.
Each client is capabale of making one RPC call at a time.
func (*Client) Close ¶
func (c *Client) Close()
Close will release any resources allocated by the client.
The client will remove itself from the group when it is closed.
func (*Client) Group ¶
func (c *Client) Group() *ClientGroup
Group returns the group that the client is a member of.
type ClientGroup ¶
type ClientGroup struct {
// contains filtered or unexported fields
}
ClientGroup manages the client side of an association group.
Clients that share a common protocol tower and communicate with the same server are placed into the same client group.
type ClientPool ¶
type ClientPool struct {
// contains filtered or unexported fields
}
ClientPool manages a pool of clients.
func (*ClientPool) Allocate ¶
func (pool *ClientPool) Allocate() (client *Client)
Allocate will return an existing client from the pool if one is available, otherwise it will attempt to allocate a new client and return it.
TODO: Receive and process the endpoint address as a parameter.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is a connection-oriented protocol server. It represents the server side of an RPC association.
Each server is capabale of handling one RPC call at a time.
type ServerGroup ¶
type ServerGroup struct {
// contains filtered or unexported fields
}
ServerGroup manages the server side of an association group.