package client

import "github.com/plgd-dev/go-coap/v3/net/client"

Index

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

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

func NewReceivedMessageReader

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

NewReceivedMessageReader creates a new ReceivedMessageReader[C] instance.

func (*ReceivedMessageReader[C]) C

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

C returns the channel to push received messages to.

func (*ReceivedMessageReader[C]) TryToReplaceLoop

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

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

Source Files

client.go receivedMessageReader.go

Directories

PathSynopsis
net/client/limitParallelRequests
Version
v3.3.6 (latest)
Published
Sep 18, 2024
Platform
linux/amd64
Imports
9 packages
Last checked
1 week ago

Tools for package owners.