Documentation
¶
Overview ¶
Package rpc contains the RPC client implementation.
Index ¶
- Variables
- func Call[C any, R ReturnCoder](client *m1client.Client, module Module, procedure Procedure[C, R]) (*R, error)
- func PaginatedCall[T any, C PaginatedCaller, R PaginatedReturnCoder[T]](client *m1client.Client, module Module, procedure PaginatedProcedure[T, C, R], ...) ([]T, error)
- type Count
- type Header
- type Module
- type PaginatedCallCountStart
- type PaginatedCallFirstLast
- type PaginatedCallStartCount
- type PaginatedCaller
- type PaginatedProcedure
- type PaginatedReplier
- type PaginatedReplyContinuationCount
- type PaginatedReplyCount
- type PaginatedReturnCoder
- type Procedure
- type ReturnCode
- type ReturnCoder
- type Start
- type Values
- type Version
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidXID is returned when an invalid xID is received. ErrInvalidXID = errors.New("invalid xID") // ErrInvalidResponse is returned when an invalid response is received. ErrInvalidResponse = errors.New("invalid response") // ErrNoReplyFrame is returned when no reply frame is received. It wraps ErrInvalidResponse. ErrNoReplyFrame = fmt.Errorf("%w: no reply frame received", ErrInvalidResponse) // ErrProgramMismatch is returned when the program does not match. ErrProgramMismatch = errors.New("program mismatch") ErrProcedureUnavailable = errors.New("procedure unavailable") // ErrRPCMismatch is returned when the RPC does not match. ErrRPCMismatch = errors.New("rpc mismatch") // ErrAuthError is returned when an authentication error occurs. ErrAuthError = errors.New("auth error") )
Functions ¶
func Call ¶
func Call[C any, R ReturnCoder](client *m1client.Client, module Module, procedure Procedure[C, R]) (*R, error)
Call sends an RPC call to the target with the given header and procedure. It packs and unpacks the call and reply objects and checks for errors.
func PaginatedCall ¶ added in v0.2.0
func PaginatedCall[T any, C PaginatedCaller, R PaginatedReturnCoder[T]]( client *m1client.Client, module Module, procedure PaginatedProcedure[T, C, R], pageSize uint32, ) ([]T, error)
Types ¶
type Header ¶
type Header struct {
Module uint32
Version Version
Procedure uint32
Auth []byte
// contains filtered or unexported fields
}
Header contains the header of an RPC call.
type PaginatedCallCountStart ¶ added in v0.2.0
type PaginatedCallFirstLast ¶ added in v0.2.0
type PaginatedCallFirstLast struct {
Start
// contains filtered or unexported fields
}
func (*PaginatedCallFirstLast) SetCount ¶ added in v0.2.0
func (l *PaginatedCallFirstLast) SetCount(count uint32)
type PaginatedCallStartCount ¶ added in v0.2.0
type PaginatedCaller ¶ added in v0.2.0
type PaginatedProcedure ¶ added in v0.2.0
type PaginatedProcedure[T any, C PaginatedCaller, R PaginatedReplier[T]] struct { Call C // contains filtered or unexported fields }
func NewPaginatedProcedure ¶ added in v0.2.0
func NewPaginatedProcedure[T any, C PaginatedCaller, R PaginatedReturnCoder[T]]( procedure uint32, version Version, call C, ) PaginatedProcedure[T, C, R]
func (PaginatedProcedure[T, C, R]) Procedure ¶ added in v0.2.0
func (p PaginatedProcedure[T, C, R]) Procedure() uint32
func (PaginatedProcedure[T, C, R]) RPCVersion ¶ added in v0.2.0
func (p PaginatedProcedure[T, C, R]) RPCVersion() Version
type PaginatedReplier ¶ added in v0.2.0
type PaginatedReplyContinuationCount ¶ added in v0.2.0
type PaginatedReplyContinuationCount[T any] struct { ContinuationPoint uint32 `m1binary:"skip:12"` Count Values[T] `m1binary:"lengthRef:Count,allign4"` }
func (PaginatedReplyContinuationCount[T]) Done ¶ added in v0.2.0
func (l PaginatedReplyContinuationCount[T]) Done(step uint32) bool
type PaginatedReplyCount ¶ added in v0.2.0
func (PaginatedReplyCount[T]) Done ¶ added in v0.2.0
func (l PaginatedReplyCount[T]) Done(step uint32) bool
type PaginatedReturnCoder ¶ added in v0.2.0
type PaginatedReturnCoder[T any] interface { ReturnCoder PaginatedReplier[T] }
type Procedure ¶
type Procedure[C any, R ReturnCoder] struct { Call C // contains filtered or unexported fields }
func NewProcedure ¶
func NewProcedure[C any, R ReturnCoder](procedure uint32, version Version, call C) Procedure[C, R]
func (Procedure[C, R]) RPCVersion ¶
type ReturnCode ¶
type ReturnCode int32
func (ReturnCode) GetReturnCode ¶
func (r ReturnCode) GetReturnCode() uint32
type ReturnCoder ¶
type ReturnCoder interface {
GetReturnCode() uint32
}
Click to show internal directories.
Click to hide internal directories.