client

package
v3.3.3 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client[C Conn] struct {
	*limitparallelrequests.LimitParallelRequests
	// contains filtered or unexported fields
}

func New

func New[C Conn](cc C, observationHandler *observation.Handler[C], getToken GetTokenFunc, limitParallelRequests *limitparallelrequests.LimitParallelRequests) *Client[C]

func (*Client[C]) Delete

func (c *Client[C]) Delete(ctx context.Context, path string, opts ...message.Option) (*pool.Message, error)

Delete deletes the resource identified by the request path.

Use ctx to set timeout.

func (*Client[C]) Get

func (c *Client[C]) Get(ctx context.Context, path string, opts ...message.Option) (*pool.Message, error)

Get issues a GET to the specified path.

Use ctx to set timeout.

An error is returned if by failure to speak COAP (such as a network connectivity problem). Any status code doesn't cause an error.

func (*Client[C]) GetObservationRequest

func (c *Client[C]) GetObservationRequest(token message.Token) (*pool.Message, bool)

func (*Client[C]) GetToken

func (c *Client[C]) GetToken() (message.Token, error)

func (*Client[C]) NewDeleteRequest

func (c *Client[C]) NewDeleteRequest(ctx context.Context, path string, opts ...message.Option) (*pool.Message, error)

NewDeleteRequest creates delete request.

Use ctx to set timeout.

func (*Client[C]) NewGetRequest

func (c *Client[C]) NewGetRequest(ctx context.Context, path string, opts ...message.Option) (*pool.Message, error)

NewGetRequest creates get request.

Use ctx to set timeout.

func (*Client[C]) NewObserveRequest

func (c *Client[C]) NewObserveRequest(ctx context.Context, path string, opts ...message.Option) (*pool.Message, error)

NewObserveRequest creates observe request.

Use ctx to set timeout.

func (*Client[C]) NewPostRequest

func (c *Client[C]) NewPostRequest(ctx context.Context, path string, contentFormat message.MediaType, payload io.ReadSeeker, opts ...message.Option) (*pool.Message, error)

NewPostRequest creates post request.

Use ctx to set timeout.

An error is returned if by failure to speak COAP (such as a network connectivity problem). Any status code doesn't cause an error.

If payload is nil then content format is not used.

func (*Client[C]) NewPutRequest

func (c *Client[C]) NewPutRequest(ctx context.Context, path string, contentFormat message.MediaType, payload io.ReadSeeker, opts ...message.Option) (*pool.Message, error)

NewPutRequest creates put request.

Use ctx to set timeout.

If payload is nil then content format is not used.

func (*Client[C]) Observe

func (c *Client[C]) Observe(ctx context.Context, path string, observeFunc func(req *pool.Message), opts ...message.Option) (Observation, error)

Observe subscribes for every change of resource on path.

func (*Client[C]) Ping

func (c *Client[C]) Ping(ctx context.Context) error

Ping issues a PING to the client and waits for PONG response.

Use ctx to set timeout.

func (*Client[C]) Post

func (c *Client[C]) Post(ctx context.Context, path string, contentFormat message.MediaType, payload io.ReadSeeker, opts ...message.Option) (*pool.Message, error)

Post issues a POST to the specified path.

Use ctx to set timeout.

An error is returned if by failure to speak COAP (such as a network connectivity problem). Any status code doesn't cause an error.

If payload is nil then content format is not used.

func (*Client[C]) Put

func (c *Client[C]) Put(ctx context.Context, path string, contentFormat message.MediaType, payload io.ReadSeeker, opts ...message.Option) (*pool.Message, error)

Put issues a PUT to the specified path.

Use ctx to set timeout.

An error is returned if by failure to speak COAP (such as a network connectivity problem). Any status code doesn't cause an error.

If payload is nil then content format is not used.

type Conn

type Conn interface {
	// create message from pool
	AcquireMessage(ctx context.Context) *pool.Message
	// return back the message to the pool for next use
	ReleaseMessage(m *pool.Message)
	WriteMessage(req *pool.Message) error
	AsyncPing(receivedPong func()) (func(), error)
	Context() context.Context
}

type GetTokenFunc

type GetTokenFunc = func() (message.Token, error)

type Observation

type Observation = interface {
	Cancel(ctx context.Context, opts ...message.Option) error
	Canceled() bool
}

type ReceivedMessageReader added in v3.1.0

type ReceivedMessageReader[C ReceivedMessageReaderClient] struct {
	// contains filtered or unexported fields
}

func NewReceivedMessageReader added in v3.1.0

func NewReceivedMessageReader[C ReceivedMessageReaderClient](cc C, queueSize int) *ReceivedMessageReader[C]

NewReceivedMessageReader creates a new ReceivedMessageReader[C] instance.

func (*ReceivedMessageReader[C]) C added in v3.1.0

func (r *ReceivedMessageReader[C]) C() chan<- *pool.Message

C returns the channel to push received messages to.

func (*ReceivedMessageReader[C]) TryToReplaceLoop added in v3.1.0

func (r *ReceivedMessageReader[C]) TryToReplaceLoop()

TryToReplaceLoop function attempts to replace the loop with a new one, but only if the loop is not currently reading messages. If the loop is reading messages, the function returns immediately. If the loop is not reading messages, the current loop is closed, and new loopDone and readingMessages channels and variables are created.

type ReceivedMessageReaderClient added in v3.1.0

type ReceivedMessageReaderClient interface {
	Done() <-chan struct{}
	ProcessReceivedMessage(req *pool.Message)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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