gensrv

package
v0.16.0-rc.1 Latest Latest
Warning

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

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

Documentation

Overview

gensrv provides a wrapper around genserver that removes the need for a callback struct, by using reflection to match callback arguments to functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Start

func Start[State any](self erl.PID, arg any, opts ...GenSrvOpt[State]) (erl.PID, error)
func StartLink[State any](self erl.PID, arg any, opts ...GenSrvOpt[State]) (erl.PID, error)

func StartMonitor

func StartMonitor[State any](self erl.PID, arg any, opts ...GenSrvOpt[State]) (erl.PID, erl.Ref, error)

Types

type CB

type CB[State any] struct {
	// contains filtered or unexported fields
}

The callback implementation

func (*CB[State]) HandleCall

func (s *CB[State]) HandleCall(self erl.PID, request any, from genserver.From, state State) (genserver.CallResult[State], error)

func (*CB[State]) HandleCast

func (s *CB[State]) HandleCast(self erl.PID, anymsg any, state State) (genserver.CastResult[State], error)

func (*CB[State]) HandleContinue

func (s *CB[State]) HandleContinue(self erl.PID, continuation any, state State) (State, any, error)

func (*CB[State]) HandleInfo

func (s *CB[State]) HandleInfo(self erl.PID, anymsg any, state State) (genserver.InfoResult[State], error)

func (*CB[State]) Init

func (s *CB[State]) Init(self erl.PID, args any) (genserver.InitResult[State], error)

BEGIN CALLBACKS

func (*CB[State]) Terminate

func (s *CB[State]) Terminate(self erl.PID, reason error, state State)

type CallHandle

type CallHandle[State any] struct {
	Arg     any
	Handler func(self erl.PID, request any, from genserver.From, state State) (result genserver.CallResult[State], err error)
}

type CastHandle

type CastHandle[State any] struct {
	Arg     any
	Handler func(self erl.PID, request any, state State) (newState State, continueTerm any, err error)
}

type GenSrvOpt

type GenSrvOpt[State any] func(c *config[State])

func RegisterCall

func RegisterCall[State any](matchType any, fn func(self erl.PID, request any, from genserver.From, state State) (result genserver.CallResult[State], err error)) GenSrvOpt[State]

func RegisterCast

func RegisterCast[State any](matchType any, fn func(self erl.PID, a any, state State) (newState State, continu any, err error)) GenSrvOpt[State]

func RegisterContinue

func RegisterContinue[State any](matchType any, fn func(self erl.PID, cont any, state State) (newState State, continu any, err error)) GenSrvOpt[State]

func RegisterInfo

func RegisterInfo[State any](matchType any, fn func(self erl.PID, a any, state State) (newState State, continu any, err error)) GenSrvOpt[State]

func RegisterInit

func RegisterInit[State any](init func(self erl.PID, a any) (genserver.InitResult[State], error)) GenSrvOpt[State]

func RegisterTerminate

func RegisterTerminate[State any](terminate func(self erl.PID, reason error, state State)) GenSrvOpt[State]

func SetName added in v0.9.1

func SetName[State any](name erl.Name) GenSrvOpt[State]

func SetStartTimeout added in v0.9.1

func SetStartTimeout[State any](tout time.Duration) GenSrvOpt[State]

Jump to

Keyboard shortcuts

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