coproto

package
v0.0.0-...-65976f7 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2018 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package coproto implements the connection-oriented protocol as described in the "DCE 1.1: Remote Procedure Call" technical standard.

Index

Constants

View Source
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.

Jump to

Keyboard shortcuts

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