Help us shape the future of Go! Take the 2026 Go Developer Survey

peernet

package
v0.1.55 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2026 License: MIT Imports: 41 Imported by: 0

Documentation

Overview

Package peernet runs a modlock peer: a PC's key on Spacewave's peer network, which links directly to other PCs over WebRTC. A signaling service, hyperline.gg by default, introduces two peers so they can open the link; no traffic passes through it. It admits a peer while that peer holds a socket signed by its key and carrying the creator's sign-in.

Index

Constants

View Source
const AdmitPath = "/api/signal/peer"

AdmitPath is where the service admits a signed-in peer to signaling for as long as its socket stays open.

View Source
const DevLobbyPath = "/api/dev-lobby"

DevLobbyPath is where the service keeps a hosted session's dev lobby open for as long as its socket stays open.

View Source
const GameProtocolID = protocol.ID("modlock/game/1")

GameProtocolID identifies game streams between modlock peers, which gamelink forwards. The handshake's generation is the hosted session, so only a guest holding the join code reaches the server.

View Source
const ProbeProtocolID = protocol.ID("modlock/probe/1")

ProbeProtocolID identifies probe streams between modlock peers. The stream is an unreliable message stream, like a game's, and the answering peer returns each probe packet to its sender.

View Source
const SRPCPeerNetServiceID = "modlock.peernet.PeerNet"
View Source
const SRPCSessionServiceID = "modlock.peernet.Session"
View Source
const SessionProtocolID = protocol.ID("modlock/session/1")

SessionProtocolID identifies the Session service a host serves its guests' daemons, one call per stream.

View Source
const SigningEnv = "hyperline"

SigningEnv separates the signatures a peer sends hyperline.gg from requests to any other service its key could sign for.

Variables

View Source
var (
	AdmissionState_name = map[int32]string{
		0: "ADMISSION_STATE_SIGNED_OUT",
		1: "ADMISSION_STATE_CONNECTING",
		2: "ADMISSION_STATE_ADMITTED",
		3: "ADMISSION_STATE_REFUSED",
	}
	AdmissionState_value = map[string]int32{
		"ADMISSION_STATE_SIGNED_OUT": 0,
		"ADMISSION_STATE_CONNECTING": 1,
		"ADMISSION_STATE_ADMITTED":   2,
		"ADMISSION_STATE_REFUSED":    3,
	}
)

Enum value maps for AdmissionState.

Functions

func LoadKey

func LoadKey(path string) (crypto.PrivKey, error)

LoadKey reads the peer key at path, creating it on first use. Only one process may call it for a path at a time, such as the daemon that holds its state directory.

func NewSRPCPeerNetHandler

func NewSRPCPeerNetHandler(impl SRPCPeerNetServer, serviceID string) srpc.Handler

NewSRPCPeerNetHandler constructs a new RPC handler. serviceID: if empty, uses default: modlock.peernet.PeerNet

func NewSRPCSessionHandler added in v0.1.13

func NewSRPCSessionHandler(impl SRPCSessionServer, serviceID string) srpc.Handler

NewSRPCSessionHandler constructs a new RPC handler. serviceID: if empty, uses default: modlock.peernet.Session

func Run

func Run(
	ctx context.Context,
	le *logrus.Entry,
	key crypto.PrivKey,
	origin string,
	serve func(ctx context.Context, node *Node) error,
) error

Run starts a peer for key that signals through the service at origin and runs serve with it until serve returns or the peer stops. A peer the service does not admit yet retries signaling without delaying serve; links that need no signaling keep working meanwhile.

func SRPCRegisterPeerNet

func SRPCRegisterPeerNet(mux srpc.Mux, impl SRPCPeerNetServer) error

SRPCRegisterPeerNet registers the implementation with the mux. Uses the default serviceID: modlock.peernet.PeerNet

func SRPCRegisterSession added in v0.1.13

func SRPCRegisterSession(mux srpc.Mux, impl SRPCSessionServer) error

SRPCRegisterSession registers the implementation with the mux. Uses the default serviceID: modlock.peernet.Session

Types

type Admission

type Admission struct {
	// contains filtered or unexported fields
}

Admission holds a peer's admission to signaling at a service. It reads the sign-in again before each attempt, retries a dropped socket, and waits for Wake while signed out or refused, since only a new sign-in can change that.

func NewAdmission

func NewAdmission(origin string, key crypto.PrivKey, signIn func() SignIn) *Admission

NewAdmission constructs the admission of key at origin.

func (*Admission) Run

func (a *Admission) Run(ctx context.Context)

Run holds the admission until ctx ends.

func (*Admission) Snapshot

func (a *Admission) Snapshot() (AdmissionState, string, string)

Snapshot returns the admission's state, signed-in name and last failure.

func (*Admission) Wake

func (a *Admission) Wake()

Wake asks Run to read the sign-in again, such as after a client signed in.

type AdmissionState

type AdmissionState int32

AdmissionState is where a peer stands with the signaling service, which introduces it to peers it cannot reach on its own network.

const (
	// ADMISSION_STATE_SIGNED_OUT means no sign-in is saved, so the service
	// does not know the peer.
	AdmissionState_ADMISSION_STATE_SIGNED_OUT AdmissionState = 0
	// ADMISSION_STATE_CONNECTING means the peer is opening its admission
	// socket, or waits to retry after it dropped.
	AdmissionState_ADMISSION_STATE_CONNECTING AdmissionState = 1
	// ADMISSION_STATE_ADMITTED means the service signals for the peer.
	AdmissionState_ADMISSION_STATE_ADMITTED AdmissionState = 2
	// ADMISSION_STATE_REFUSED means the service refused the saved sign-in,
	// which has expired or was signed out.
	AdmissionState_ADMISSION_STATE_REFUSED AdmissionState = 3
)

func (AdmissionState) Enum

func (x AdmissionState) Enum() *AdmissionState

func (AdmissionState) MarshalJSON

func (x AdmissionState) MarshalJSON() ([]byte, error)

MarshalJSON marshals the AdmissionState to JSON.

func (AdmissionState) MarshalProtoJSON

func (x AdmissionState) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the AdmissionState to JSON.

func (AdmissionState) MarshalProtoText

func (x AdmissionState) MarshalProtoText() string

func (AdmissionState) MarshalText

func (x AdmissionState) MarshalText() ([]byte, error)

MarshalText marshals the AdmissionState to text.

func (AdmissionState) String

func (x AdmissionState) String() string

func (*AdmissionState) UnmarshalJSON

func (x *AdmissionState) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the AdmissionState from JSON.

func (*AdmissionState) UnmarshalProtoJSON

func (x *AdmissionState) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the AdmissionState from JSON.

func (*AdmissionState) UnmarshalText

func (x *AdmissionState) UnmarshalText(b []byte) error

UnmarshalText unmarshals the AdmissionState from text.

type ContentPart added in v0.1.19

type ContentPart struct {

	// path is the file's path in the game, under its addon's name, such as
	// models/chess-0.1.0/pawn.vmdl_c.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// data is the next bytes of the file.
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

ContentPart is part of one file of a content addon. A file larger than one part arrives as consecutive parts with the same path, appended in order.

func (*ContentPart) CloneMessageVT added in v0.1.19

func (m *ContentPart) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*ContentPart) CloneVT added in v0.1.19

func (m *ContentPart) CloneVT() *ContentPart

func (*ContentPart) EqualMessageVT added in v0.1.19

func (this *ContentPart) EqualMessageVT(thatMsg any) bool

func (*ContentPart) EqualVT added in v0.1.19

func (this *ContentPart) EqualVT(that *ContentPart) bool

func (*ContentPart) GetData added in v0.1.19

func (x *ContentPart) GetData() []byte

func (*ContentPart) GetPath added in v0.1.19

func (x *ContentPart) GetPath() string

func (*ContentPart) MarshalJSON added in v0.1.19

func (x *ContentPart) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ContentPart to JSON.

func (*ContentPart) MarshalProtoJSON added in v0.1.19

func (x *ContentPart) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ContentPart message to JSON.

func (*ContentPart) MarshalProtoText added in v0.1.19

func (x *ContentPart) MarshalProtoText() string

func (*ContentPart) MarshalToSizedBufferVT added in v0.1.19

func (m *ContentPart) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*ContentPart) MarshalToVT added in v0.1.19

func (m *ContentPart) MarshalToVT(dAtA []byte) (int, error)

func (*ContentPart) MarshalVT added in v0.1.19

func (m *ContentPart) MarshalVT() (dAtA []byte, err error)

func (*ContentPart) ProtoMessage added in v0.1.19

func (*ContentPart) ProtoMessage()

func (*ContentPart) Reset added in v0.1.19

func (x *ContentPart) Reset()

func (*ContentPart) SizeVT added in v0.1.19

func (m *ContentPart) SizeVT() (n int)

func (*ContentPart) String added in v0.1.19

func (x *ContentPart) String() string

func (*ContentPart) UnmarshalJSON added in v0.1.19

func (x *ContentPart) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ContentPart from JSON.

func (*ContentPart) UnmarshalProtoJSON added in v0.1.19

func (x *ContentPart) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ContentPart message from JSON.

func (*ContentPart) UnmarshalVT added in v0.1.19

func (m *ContentPart) UnmarshalVT(dAtA []byte) error

type ContentRequest added in v0.1.19

type ContentRequest struct {

	// session is the join code's secret.
	Session uint64 `protobuf:"fixed64,1,opt,name=session,proto3" json:"session,omitempty"`
	// contains filtered or unexported fields
}

ContentRequest names the session whose mods' content to stream.

func (*ContentRequest) CloneMessageVT added in v0.1.19

func (m *ContentRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*ContentRequest) CloneVT added in v0.1.19

func (m *ContentRequest) CloneVT() *ContentRequest

func (*ContentRequest) EqualMessageVT added in v0.1.19

func (this *ContentRequest) EqualMessageVT(thatMsg any) bool

func (*ContentRequest) EqualVT added in v0.1.19

func (this *ContentRequest) EqualVT(that *ContentRequest) bool

func (*ContentRequest) GetSession added in v0.1.19

func (x *ContentRequest) GetSession() uint64

func (*ContentRequest) MarshalJSON added in v0.1.19

func (x *ContentRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ContentRequest to JSON.

func (*ContentRequest) MarshalProtoJSON added in v0.1.19

func (x *ContentRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ContentRequest message to JSON.

func (*ContentRequest) MarshalProtoText added in v0.1.19

func (x *ContentRequest) MarshalProtoText() string

func (*ContentRequest) MarshalToSizedBufferVT added in v0.1.19

func (m *ContentRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*ContentRequest) MarshalToVT added in v0.1.19

func (m *ContentRequest) MarshalToVT(dAtA []byte) (int, error)

func (*ContentRequest) MarshalVT added in v0.1.19

func (m *ContentRequest) MarshalVT() (dAtA []byte, err error)

func (*ContentRequest) ProtoMessage added in v0.1.19

func (*ContentRequest) ProtoMessage()

func (*ContentRequest) Reset added in v0.1.19

func (x *ContentRequest) Reset()

func (*ContentRequest) SizeVT added in v0.1.19

func (m *ContentRequest) SizeVT() (n int)

func (*ContentRequest) String added in v0.1.19

func (x *ContentRequest) String() string

func (*ContentRequest) UnmarshalJSON added in v0.1.19

func (x *ContentRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ContentRequest from JSON.

func (*ContentRequest) UnmarshalProtoJSON added in v0.1.19

func (x *ContentRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ContentRequest message from JSON.

func (*ContentRequest) UnmarshalVT added in v0.1.19

func (m *ContentRequest) UnmarshalVT(dAtA []byte) error

type Echo

type Echo struct {
	// contains filtered or unexported fields
}

Echo answers probe streams from any peer to the local peer for as long as its controller runs on the bus.

func NewEcho

func NewEcho(local peer.ID) *Echo

NewEcho constructs the echo for the local peer.

func (*Echo) Close

func (e *Echo) Close() error

Close does nothing; each stream ends with its own context.

func (*Echo) Execute

func (e *Echo) Execute(context.Context) error

Execute does nothing; the echo answers streams as they arrive.

func (*Echo) GetControllerInfo

func (e *Echo) GetControllerInfo() *controller.Info

GetControllerInfo identifies the echo.

func (*Echo) HandleDirective

func (e *Echo) HandleDirective(_ context.Context, inst directive.Instance) ([]directive.Resolver, error)

HandleDirective accepts probe streams to the local peer.

func (*Echo) HandleMountedStream

func (e *Echo) HandleMountedStream(ctx context.Context, mounted link.MountedStream) error

HandleMountedStream returns each probe packet to its sender until the stream closes or the limit passes.

type GetPeerRequest

type GetPeerRequest struct {
	// contains filtered or unexported fields
}

GetPeerRequest asks for the daemon's peer.

func (*GetPeerRequest) CloneMessageVT

func (m *GetPeerRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*GetPeerRequest) CloneVT

func (m *GetPeerRequest) CloneVT() *GetPeerRequest

func (*GetPeerRequest) EqualMessageVT

func (this *GetPeerRequest) EqualMessageVT(thatMsg any) bool

func (*GetPeerRequest) EqualVT

func (this *GetPeerRequest) EqualVT(that *GetPeerRequest) bool

func (*GetPeerRequest) MarshalJSON

func (x *GetPeerRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the GetPeerRequest to JSON.

func (*GetPeerRequest) MarshalProtoJSON

func (x *GetPeerRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the GetPeerRequest message to JSON.

func (*GetPeerRequest) MarshalProtoText

func (x *GetPeerRequest) MarshalProtoText() string

func (*GetPeerRequest) MarshalToSizedBufferVT

func (m *GetPeerRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*GetPeerRequest) MarshalToVT

func (m *GetPeerRequest) MarshalToVT(dAtA []byte) (int, error)

func (*GetPeerRequest) MarshalVT

func (m *GetPeerRequest) MarshalVT() (dAtA []byte, err error)

func (*GetPeerRequest) ProtoMessage

func (*GetPeerRequest) ProtoMessage()

func (*GetPeerRequest) Reset

func (x *GetPeerRequest) Reset()

func (*GetPeerRequest) SizeVT

func (m *GetPeerRequest) SizeVT() (n int)

func (*GetPeerRequest) String

func (x *GetPeerRequest) String() string

func (*GetPeerRequest) UnmarshalJSON

func (x *GetPeerRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the GetPeerRequest from JSON.

func (*GetPeerRequest) UnmarshalProtoJSON

func (x *GetPeerRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the GetPeerRequest message from JSON.

func (*GetPeerRequest) UnmarshalVT

func (m *GetPeerRequest) UnmarshalVT(dAtA []byte) error

type GetPeerResponse

type GetPeerResponse struct {

	// peer_id is the PC's peer on the network.
	PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peerId,omitempty"`
	// origin is the signaling service, such as https://hyperline.gg.
	Origin string `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"`
	// admission is the peer's standing with that service.
	Admission AdmissionState `protobuf:"varint,3,opt,name=admission,proto3" json:"admission,omitempty"`
	// account is the signed-in name, when a sign-in is saved.
	Account string `protobuf:"bytes,4,opt,name=account,proto3" json:"account,omitempty"`
	// error says why the last admission attempt failed while connecting.
	Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

GetPeerResponse describes the daemon's peer.

func (*GetPeerResponse) CloneMessageVT

func (m *GetPeerResponse) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*GetPeerResponse) CloneVT

func (m *GetPeerResponse) CloneVT() *GetPeerResponse

func (*GetPeerResponse) EqualMessageVT

func (this *GetPeerResponse) EqualMessageVT(thatMsg any) bool

func (*GetPeerResponse) EqualVT

func (this *GetPeerResponse) EqualVT(that *GetPeerResponse) bool

func (*GetPeerResponse) GetAccount

func (x *GetPeerResponse) GetAccount() string

func (*GetPeerResponse) GetAdmission

func (x *GetPeerResponse) GetAdmission() AdmissionState

func (*GetPeerResponse) GetError

func (x *GetPeerResponse) GetError() string

func (*GetPeerResponse) GetOrigin

func (x *GetPeerResponse) GetOrigin() string

func (*GetPeerResponse) GetPeerId

func (x *GetPeerResponse) GetPeerId() string

func (*GetPeerResponse) MarshalJSON

func (x *GetPeerResponse) MarshalJSON() ([]byte, error)

MarshalJSON marshals the GetPeerResponse to JSON.

func (*GetPeerResponse) MarshalProtoJSON

func (x *GetPeerResponse) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the GetPeerResponse message to JSON.

func (*GetPeerResponse) MarshalProtoText

func (x *GetPeerResponse) MarshalProtoText() string

func (*GetPeerResponse) MarshalToSizedBufferVT

func (m *GetPeerResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*GetPeerResponse) MarshalToVT

func (m *GetPeerResponse) MarshalToVT(dAtA []byte) (int, error)

func (*GetPeerResponse) MarshalVT

func (m *GetPeerResponse) MarshalVT() (dAtA []byte, err error)

func (*GetPeerResponse) ProtoMessage

func (*GetPeerResponse) ProtoMessage()

func (*GetPeerResponse) Reset

func (x *GetPeerResponse) Reset()

func (*GetPeerResponse) SizeVT

func (m *GetPeerResponse) SizeVT() (n int)

func (*GetPeerResponse) String

func (x *GetPeerResponse) String() string

func (*GetPeerResponse) UnmarshalJSON

func (x *GetPeerResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the GetPeerResponse from JSON.

func (*GetPeerResponse) UnmarshalProtoJSON

func (x *GetPeerResponse) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the GetPeerResponse message from JSON.

func (*GetPeerResponse) UnmarshalVT

func (m *GetPeerResponse) UnmarshalVT(dAtA []byte) error

type HostEvent

type HostEvent struct {

	// Types that are assignable to Body:
	//	*HostEvent_JoinCode
	//	*HostEvent_Joined
	//	*HostEvent_Left
	//	*HostEvent_Lobby
	Body isHostEvent_Body `protobuf_oneof:"body"`
	// contains filtered or unexported fields
}

HostEvent is one change to a hosted session.

func (*HostEvent) CloneMessageVT

func (m *HostEvent) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*HostEvent) CloneVT

func (m *HostEvent) CloneVT() *HostEvent

func (*HostEvent) EqualMessageVT

func (this *HostEvent) EqualMessageVT(thatMsg any) bool

func (*HostEvent) EqualVT

func (this *HostEvent) EqualVT(that *HostEvent) bool

func (*HostEvent) GetBody

func (m *HostEvent) GetBody() isHostEvent_Body

func (*HostEvent) GetJoinCode

func (x *HostEvent) GetJoinCode() string

func (*HostEvent) GetJoined

func (x *HostEvent) GetJoined() string

func (*HostEvent) GetLeft

func (x *HostEvent) GetLeft() string

func (*HostEvent) GetLobby added in v0.1.14

func (x *HostEvent) GetLobby() *LobbyState

func (*HostEvent) MarshalJSON

func (x *HostEvent) MarshalJSON() ([]byte, error)

MarshalJSON marshals the HostEvent to JSON.

func (*HostEvent) MarshalProtoJSON

func (x *HostEvent) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the HostEvent message to JSON.

func (*HostEvent) MarshalProtoText

func (x *HostEvent) MarshalProtoText() string

func (*HostEvent) MarshalToSizedBufferVT

func (m *HostEvent) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostEvent) MarshalToVT

func (m *HostEvent) MarshalToVT(dAtA []byte) (int, error)

func (*HostEvent) MarshalVT

func (m *HostEvent) MarshalVT() (dAtA []byte, err error)

func (*HostEvent) ProtoMessage

func (*HostEvent) ProtoMessage()

func (*HostEvent) Reset

func (x *HostEvent) Reset()

func (*HostEvent) SizeVT

func (m *HostEvent) SizeVT() (n int)

func (*HostEvent) String

func (x *HostEvent) String() string

func (*HostEvent) UnmarshalJSON

func (x *HostEvent) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the HostEvent from JSON.

func (*HostEvent) UnmarshalProtoJSON

func (x *HostEvent) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the HostEvent message from JSON.

func (*HostEvent) UnmarshalVT

func (m *HostEvent) UnmarshalVT(dAtA []byte) error

type HostEvent_JoinCode

type HostEvent_JoinCode struct {
	// join_code is the code a guest passes to modlock join. It names the
	// host's peer and the session, and comes first.
	JoinCode string `protobuf:"bytes,1,opt,name=join_code,json=joinCode,proto3,oneof"`
}

func (*HostEvent_JoinCode) CloneOneofVT

func (m *HostEvent_JoinCode) CloneOneofVT() isHostEvent_Body

func (*HostEvent_JoinCode) CloneVT

func (m *HostEvent_JoinCode) CloneVT() *HostEvent_JoinCode

func (*HostEvent_JoinCode) EqualVT

func (this *HostEvent_JoinCode) EqualVT(thatIface isHostEvent_Body) bool

func (*HostEvent_JoinCode) MarshalToSizedBufferVT

func (m *HostEvent_JoinCode) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostEvent_JoinCode) MarshalToVT

func (m *HostEvent_JoinCode) MarshalToVT(dAtA []byte) (int, error)

func (*HostEvent_JoinCode) SizeVT

func (m *HostEvent_JoinCode) SizeVT() (n int)

type HostEvent_Joined

type HostEvent_Joined struct {
	// joined is the peer of a guest whose game stream the host accepted.
	Joined string `protobuf:"bytes,2,opt,name=joined,proto3,oneof"`
}

func (*HostEvent_Joined) CloneOneofVT

func (m *HostEvent_Joined) CloneOneofVT() isHostEvent_Body

func (*HostEvent_Joined) CloneVT

func (m *HostEvent_Joined) CloneVT() *HostEvent_Joined

func (*HostEvent_Joined) EqualVT

func (this *HostEvent_Joined) EqualVT(thatIface isHostEvent_Body) bool

func (*HostEvent_Joined) MarshalToSizedBufferVT

func (m *HostEvent_Joined) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostEvent_Joined) MarshalToVT

func (m *HostEvent_Joined) MarshalToVT(dAtA []byte) (int, error)

func (*HostEvent_Joined) SizeVT

func (m *HostEvent_Joined) SizeVT() (n int)

type HostEvent_Left

type HostEvent_Left struct {
	// left is the peer of a guest whose game stream ended.
	Left string `protobuf:"bytes,3,opt,name=left,proto3,oneof"`
}

func (*HostEvent_Left) CloneOneofVT

func (m *HostEvent_Left) CloneOneofVT() isHostEvent_Body

func (*HostEvent_Left) CloneVT

func (m *HostEvent_Left) CloneVT() *HostEvent_Left

func (*HostEvent_Left) EqualVT

func (this *HostEvent_Left) EqualVT(thatIface isHostEvent_Body) bool

func (*HostEvent_Left) MarshalToSizedBufferVT

func (m *HostEvent_Left) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostEvent_Left) MarshalToVT

func (m *HostEvent_Left) MarshalToVT(dAtA []byte) (int, error)

func (*HostEvent_Left) SizeVT

func (m *HostEvent_Left) SizeVT() (n int)

type HostEvent_Lobby added in v0.1.14

type HostEvent_Lobby struct {
	// lobby is where the dev lobby stands, after join_code and on each
	// change, when start asked for one.
	Lobby *LobbyState `protobuf:"bytes,4,opt,name=lobby,proto3,oneof"`
}

func (*HostEvent_Lobby) CloneOneofVT added in v0.1.14

func (m *HostEvent_Lobby) CloneOneofVT() isHostEvent_Body

func (*HostEvent_Lobby) CloneVT added in v0.1.14

func (m *HostEvent_Lobby) CloneVT() *HostEvent_Lobby

func (*HostEvent_Lobby) EqualVT added in v0.1.14

func (this *HostEvent_Lobby) EqualVT(thatIface isHostEvent_Body) bool

func (*HostEvent_Lobby) MarshalToSizedBufferVT added in v0.1.14

func (m *HostEvent_Lobby) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostEvent_Lobby) MarshalToVT added in v0.1.14

func (m *HostEvent_Lobby) MarshalToVT(dAtA []byte) (int, error)

func (*HostEvent_Lobby) SizeVT added in v0.1.14

func (m *HostEvent_Lobby) SizeVT() (n int)

type HostInput added in v0.1.13

type HostInput struct {

	// Types that are assignable to Body:
	//	*HostInput_Start
	//	*HostInput_Server
	Body isHostInput_Body `protobuf_oneof:"body"`
	// contains filtered or unexported fields
}

HostInput is one message of a Host call.

func (*HostInput) CloneMessageVT added in v0.1.13

func (m *HostInput) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*HostInput) CloneVT added in v0.1.13

func (m *HostInput) CloneVT() *HostInput

func (*HostInput) EqualMessageVT added in v0.1.13

func (this *HostInput) EqualMessageVT(thatMsg any) bool

func (*HostInput) EqualVT added in v0.1.13

func (this *HostInput) EqualVT(that *HostInput) bool

func (*HostInput) GetBody added in v0.1.13

func (m *HostInput) GetBody() isHostInput_Body

func (*HostInput) GetServer added in v0.1.13

func (x *HostInput) GetServer() *control.HostEvent

func (*HostInput) GetStart added in v0.1.13

func (x *HostInput) GetStart() *HostRequest

func (*HostInput) MarshalJSON added in v0.1.13

func (x *HostInput) MarshalJSON() ([]byte, error)

MarshalJSON marshals the HostInput to JSON.

func (*HostInput) MarshalProtoJSON added in v0.1.13

func (x *HostInput) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the HostInput message to JSON.

func (*HostInput) MarshalProtoText added in v0.1.13

func (x *HostInput) MarshalProtoText() string

func (*HostInput) MarshalToSizedBufferVT added in v0.1.13

func (m *HostInput) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostInput) MarshalToVT added in v0.1.13

func (m *HostInput) MarshalToVT(dAtA []byte) (int, error)

func (*HostInput) MarshalVT added in v0.1.13

func (m *HostInput) MarshalVT() (dAtA []byte, err error)

func (*HostInput) ProtoMessage added in v0.1.13

func (*HostInput) ProtoMessage()

func (*HostInput) Reset added in v0.1.13

func (x *HostInput) Reset()

func (*HostInput) SizeVT added in v0.1.13

func (m *HostInput) SizeVT() (n int)

func (*HostInput) String added in v0.1.13

func (x *HostInput) String() string

func (*HostInput) UnmarshalJSON added in v0.1.13

func (x *HostInput) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the HostInput from JSON.

func (*HostInput) UnmarshalProtoJSON added in v0.1.13

func (x *HostInput) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the HostInput message from JSON.

func (*HostInput) UnmarshalVT added in v0.1.13

func (m *HostInput) UnmarshalVT(dAtA []byte) error

type HostInput_Server added in v0.1.13

type HostInput_Server struct {
	// server is a change to the server's players or interfaces: a join, a
	// leave or an interface change. The first ones after start bring the
	// daemon to the server's state.
	Server *control.HostEvent `protobuf:"bytes,2,opt,name=server,proto3,oneof"`
}

func (*HostInput_Server) CloneOneofVT added in v0.1.13

func (m *HostInput_Server) CloneOneofVT() isHostInput_Body

func (*HostInput_Server) CloneVT added in v0.1.13

func (m *HostInput_Server) CloneVT() *HostInput_Server

func (*HostInput_Server) EqualVT added in v0.1.13

func (this *HostInput_Server) EqualVT(thatIface isHostInput_Body) bool

func (*HostInput_Server) MarshalToSizedBufferVT added in v0.1.13

func (m *HostInput_Server) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostInput_Server) MarshalToVT added in v0.1.13

func (m *HostInput_Server) MarshalToVT(dAtA []byte) (int, error)

func (*HostInput_Server) SizeVT added in v0.1.13

func (m *HostInput_Server) SizeVT() (n int)

type HostInput_Start added in v0.1.13

type HostInput_Start struct {
	// start names the server, and comes first.
	Start *HostRequest `protobuf:"bytes,1,opt,name=start,proto3,oneof"`
}

func (*HostInput_Start) CloneOneofVT added in v0.1.13

func (m *HostInput_Start) CloneOneofVT() isHostInput_Body

func (*HostInput_Start) CloneVT added in v0.1.13

func (m *HostInput_Start) CloneVT() *HostInput_Start

func (*HostInput_Start) EqualVT added in v0.1.13

func (this *HostInput_Start) EqualVT(thatIface isHostInput_Body) bool

func (*HostInput_Start) MarshalToSizedBufferVT added in v0.1.13

func (m *HostInput_Start) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostInput_Start) MarshalToVT added in v0.1.13

func (m *HostInput_Start) MarshalToVT(dAtA []byte) (int, error)

func (*HostInput_Start) SizeVT added in v0.1.13

func (m *HostInput_Start) SizeVT() (n int)

type HostRequest

type HostRequest struct {

	// port is the server's UDP game port on loopback.
	Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
	// lobby asks the signaling service for a dev lobby running the session's
	// mod, which the creator's friends join; unset hosts by join code alone.
	Lobby *LobbyRequest `protobuf:"bytes,2,opt,name=lobby,proto3" json:"lobby,omitempty"`
	// mods are the directories of the built mods the server runs, on this PC,
	// whose content addons the daemon serves to guests.
	Mods []string `protobuf:"bytes,3,rep,name=mods,proto3" json:"mods,omitempty"`
	// contains filtered or unexported fields
}

HostRequest names the game server to serve.

func (*HostRequest) CloneMessageVT

func (m *HostRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*HostRequest) CloneVT

func (m *HostRequest) CloneVT() *HostRequest

func (*HostRequest) EqualMessageVT

func (this *HostRequest) EqualMessageVT(thatMsg any) bool

func (*HostRequest) EqualVT

func (this *HostRequest) EqualVT(that *HostRequest) bool

func (*HostRequest) GetLobby added in v0.1.14

func (x *HostRequest) GetLobby() *LobbyRequest

func (*HostRequest) GetMods added in v0.1.19

func (x *HostRequest) GetMods() []string

func (*HostRequest) GetPort

func (x *HostRequest) GetPort() uint32

func (*HostRequest) MarshalJSON

func (x *HostRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the HostRequest to JSON.

func (*HostRequest) MarshalProtoJSON

func (x *HostRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the HostRequest message to JSON.

func (*HostRequest) MarshalProtoText

func (x *HostRequest) MarshalProtoText() string

func (*HostRequest) MarshalToSizedBufferVT

func (m *HostRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*HostRequest) MarshalToVT

func (m *HostRequest) MarshalToVT(dAtA []byte) (int, error)

func (*HostRequest) MarshalVT

func (m *HostRequest) MarshalVT() (dAtA []byte, err error)

func (*HostRequest) ProtoMessage

func (*HostRequest) ProtoMessage()

func (*HostRequest) Reset

func (x *HostRequest) Reset()

func (*HostRequest) SizeVT

func (m *HostRequest) SizeVT() (n int)

func (*HostRequest) String

func (x *HostRequest) String() string

func (*HostRequest) UnmarshalJSON

func (x *HostRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the HostRequest from JSON.

func (*HostRequest) UnmarshalProtoJSON

func (x *HostRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the HostRequest message from JSON.

func (*HostRequest) UnmarshalVT

func (m *HostRequest) UnmarshalVT(dAtA []byte) error

type JoinCode

type JoinCode struct {
	// Host is the hosting PC's peer.
	Host peer.ID
	// Session is the session's nonzero secret.
	Session uint64
}

JoinCode names a hosted session: the host's peer and the session's secret.

func ParseJoinCode

func ParseJoinCode(code string) (JoinCode, error)

ParseJoinCode reads a code that JoinCode.String formatted.

func (JoinCode) String

func (c JoinCode) String() string

String formats the code as the peer, a dash and the session in hex. Peer IDs are base58, which has no dash.

type JoinEvent

type JoinEvent struct {

	// Types that are assignable to Body:
	//	*JoinEvent_Address
	//	*JoinEvent_Arrived
	//	*JoinEvent_Screen
	//	*JoinEvent_Chat
	//	*JoinEvent_Content
	Body isJoinEvent_Body `protobuf_oneof:"body"`
	// contains filtered or unexported fields
}

JoinEvent is one step of joining a hosted session.

func (*JoinEvent) CloneMessageVT

func (m *JoinEvent) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*JoinEvent) CloneVT

func (m *JoinEvent) CloneVT() *JoinEvent

func (*JoinEvent) EqualMessageVT

func (this *JoinEvent) EqualMessageVT(thatMsg any) bool

func (*JoinEvent) EqualVT

func (this *JoinEvent) EqualVT(that *JoinEvent) bool

func (*JoinEvent) GetAddress

func (x *JoinEvent) GetAddress() string

func (*JoinEvent) GetArrived

func (x *JoinEvent) GetArrived() bool

func (*JoinEvent) GetBody

func (m *JoinEvent) GetBody() isJoinEvent_Body

func (*JoinEvent) GetChat added in v0.1.13

func (x *JoinEvent) GetChat() *control.PlayerChat

func (*JoinEvent) GetContent added in v0.1.19

func (x *JoinEvent) GetContent() *ContentPart

func (*JoinEvent) GetScreen added in v0.1.13

func (x *JoinEvent) GetScreen() *ScreenFrame

func (*JoinEvent) MarshalJSON

func (x *JoinEvent) MarshalJSON() ([]byte, error)

MarshalJSON marshals the JoinEvent to JSON.

func (*JoinEvent) MarshalProtoJSON

func (x *JoinEvent) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the JoinEvent message to JSON.

func (*JoinEvent) MarshalProtoText

func (x *JoinEvent) MarshalProtoText() string

func (*JoinEvent) MarshalToSizedBufferVT

func (m *JoinEvent) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent) MarshalToVT

func (m *JoinEvent) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent) MarshalVT

func (m *JoinEvent) MarshalVT() (dAtA []byte, err error)

func (*JoinEvent) ProtoMessage

func (*JoinEvent) ProtoMessage()

func (*JoinEvent) Reset

func (x *JoinEvent) Reset()

func (*JoinEvent) SizeVT

func (m *JoinEvent) SizeVT() (n int)

func (*JoinEvent) String

func (x *JoinEvent) String() string

func (*JoinEvent) UnmarshalJSON

func (x *JoinEvent) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the JoinEvent from JSON.

func (*JoinEvent) UnmarshalProtoJSON

func (x *JoinEvent) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the JoinEvent message from JSON.

func (*JoinEvent) UnmarshalVT

func (m *JoinEvent) UnmarshalVT(dAtA []byte) error

type JoinEvent_Address

type JoinEvent_Address struct {
	// address is the loopback endpoint the local game connects to, sent once
	// the host accepted the guest.
	Address string `protobuf:"bytes,1,opt,name=address,proto3,oneof"`
}

func (*JoinEvent_Address) CloneOneofVT

func (m *JoinEvent_Address) CloneOneofVT() isJoinEvent_Body

func (*JoinEvent_Address) CloneVT

func (m *JoinEvent_Address) CloneVT() *JoinEvent_Address

func (*JoinEvent_Address) EqualVT

func (this *JoinEvent_Address) EqualVT(thatIface isJoinEvent_Body) bool

func (*JoinEvent_Address) MarshalToSizedBufferVT

func (m *JoinEvent_Address) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent_Address) MarshalToVT

func (m *JoinEvent_Address) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent_Address) SizeVT

func (m *JoinEvent_Address) SizeVT() (n int)

type JoinEvent_Arrived

type JoinEvent_Arrived struct {
	// arrived reports the game's first packet through address.
	Arrived bool `protobuf:"varint,2,opt,name=arrived,proto3,oneof"`
}

func (*JoinEvent_Arrived) CloneOneofVT

func (m *JoinEvent_Arrived) CloneOneofVT() isJoinEvent_Body

func (*JoinEvent_Arrived) CloneVT

func (m *JoinEvent_Arrived) CloneVT() *JoinEvent_Arrived

func (*JoinEvent_Arrived) EqualVT

func (this *JoinEvent_Arrived) EqualVT(thatIface isJoinEvent_Body) bool

func (*JoinEvent_Arrived) MarshalToSizedBufferVT

func (m *JoinEvent_Arrived) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent_Arrived) MarshalToVT

func (m *JoinEvent_Arrived) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent_Arrived) SizeVT

func (m *JoinEvent_Arrived) SizeVT() (n int)

type JoinEvent_Chat added in v0.1.13

type JoinEvent_Chat struct {
	// chat is a line a player said in the game.
	Chat *control.PlayerChat `protobuf:"bytes,4,opt,name=chat,proto3,oneof"`
}

func (*JoinEvent_Chat) CloneOneofVT added in v0.1.13

func (m *JoinEvent_Chat) CloneOneofVT() isJoinEvent_Body

func (*JoinEvent_Chat) CloneVT added in v0.1.13

func (m *JoinEvent_Chat) CloneVT() *JoinEvent_Chat

func (*JoinEvent_Chat) EqualVT added in v0.1.13

func (this *JoinEvent_Chat) EqualVT(thatIface isJoinEvent_Body) bool

func (*JoinEvent_Chat) MarshalToSizedBufferVT added in v0.1.13

func (m *JoinEvent_Chat) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent_Chat) MarshalToVT added in v0.1.13

func (m *JoinEvent_Chat) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent_Chat) SizeVT added in v0.1.13

func (m *JoinEvent_Chat) SizeVT() (n int)

type JoinEvent_Content added in v0.1.19

type JoinEvent_Content struct {
	// content is part of the hosted mods' content, all of it sent before
	// address so the game mounts it before it starts.
	Content *ContentPart `protobuf:"bytes,5,opt,name=content,proto3,oneof"`
}

func (*JoinEvent_Content) CloneOneofVT added in v0.1.19

func (m *JoinEvent_Content) CloneOneofVT() isJoinEvent_Body

func (*JoinEvent_Content) CloneVT added in v0.1.19

func (m *JoinEvent_Content) CloneVT() *JoinEvent_Content

func (*JoinEvent_Content) EqualVT added in v0.1.19

func (this *JoinEvent_Content) EqualVT(thatIface isJoinEvent_Body) bool

func (*JoinEvent_Content) MarshalToSizedBufferVT added in v0.1.19

func (m *JoinEvent_Content) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent_Content) MarshalToVT added in v0.1.19

func (m *JoinEvent_Content) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent_Content) SizeVT added in v0.1.19

func (m *JoinEvent_Content) SizeVT() (n int)

type JoinEvent_Screen added in v0.1.13

type JoinEvent_Screen struct {
	// screen changes what the mods show the guest. A reset frame carries
	// the whole screen.
	Screen *ScreenFrame `protobuf:"bytes,3,opt,name=screen,proto3,oneof"`
}

func (*JoinEvent_Screen) CloneOneofVT added in v0.1.13

func (m *JoinEvent_Screen) CloneOneofVT() isJoinEvent_Body

func (*JoinEvent_Screen) CloneVT added in v0.1.13

func (m *JoinEvent_Screen) CloneVT() *JoinEvent_Screen

func (*JoinEvent_Screen) EqualVT added in v0.1.13

func (this *JoinEvent_Screen) EqualVT(thatIface isJoinEvent_Body) bool

func (*JoinEvent_Screen) MarshalToSizedBufferVT added in v0.1.13

func (m *JoinEvent_Screen) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinEvent_Screen) MarshalToVT added in v0.1.13

func (m *JoinEvent_Screen) MarshalToVT(dAtA []byte) (int, error)

func (*JoinEvent_Screen) SizeVT added in v0.1.13

func (m *JoinEvent_Screen) SizeVT() (n int)

type JoinRequest

type JoinRequest struct {

	// code is the host's join code.
	Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	// steam_id is the guest's Steam ID, whose screen the guest is sent; zero
	// sends no screen.
	SteamId uint64 `protobuf:"fixed64,2,opt,name=steam_id,json=steamId,proto3" json:"steamId,omitempty"`
	// contains filtered or unexported fields
}

JoinRequest names the session to join.

func (*JoinRequest) CloneMessageVT

func (m *JoinRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*JoinRequest) CloneVT

func (m *JoinRequest) CloneVT() *JoinRequest

func (*JoinRequest) EqualMessageVT

func (this *JoinRequest) EqualMessageVT(thatMsg any) bool

func (*JoinRequest) EqualVT

func (this *JoinRequest) EqualVT(that *JoinRequest) bool

func (*JoinRequest) GetCode

func (x *JoinRequest) GetCode() string

func (*JoinRequest) GetSteamId added in v0.1.13

func (x *JoinRequest) GetSteamId() uint64

func (*JoinRequest) MarshalJSON

func (x *JoinRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the JoinRequest to JSON.

func (*JoinRequest) MarshalProtoJSON

func (x *JoinRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the JoinRequest message to JSON.

func (*JoinRequest) MarshalProtoText

func (x *JoinRequest) MarshalProtoText() string

func (*JoinRequest) MarshalToSizedBufferVT

func (m *JoinRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*JoinRequest) MarshalToVT

func (m *JoinRequest) MarshalToVT(dAtA []byte) (int, error)

func (*JoinRequest) MarshalVT

func (m *JoinRequest) MarshalVT() (dAtA []byte, err error)

func (*JoinRequest) ProtoMessage

func (*JoinRequest) ProtoMessage()

func (*JoinRequest) Reset

func (x *JoinRequest) Reset()

func (*JoinRequest) SizeVT

func (m *JoinRequest) SizeVT() (n int)

func (*JoinRequest) String

func (x *JoinRequest) String() string

func (*JoinRequest) UnmarshalJSON

func (x *JoinRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the JoinRequest from JSON.

func (*JoinRequest) UnmarshalProtoJSON

func (x *JoinRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the JoinRequest message from JSON.

func (*JoinRequest) UnmarshalVT

func (m *JoinRequest) UnmarshalVT(dAtA []byte) error

type LobbyRequest added in v0.1.14

type LobbyRequest struct {

	// mod_name is the mod's display name.
	ModName string `protobuf:"bytes,1,opt,name=mod_name,json=modName,proto3" json:"modName,omitempty"`
	// version is the build's version label.
	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	// contains filtered or unexported fields
}

LobbyRequest names the mod a dev lobby runs.

func (*LobbyRequest) CloneMessageVT added in v0.1.14

func (m *LobbyRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*LobbyRequest) CloneVT added in v0.1.14

func (m *LobbyRequest) CloneVT() *LobbyRequest

func (*LobbyRequest) EqualMessageVT added in v0.1.14

func (this *LobbyRequest) EqualMessageVT(thatMsg any) bool

func (*LobbyRequest) EqualVT added in v0.1.14

func (this *LobbyRequest) EqualVT(that *LobbyRequest) bool

func (*LobbyRequest) GetModName added in v0.1.14

func (x *LobbyRequest) GetModName() string

func (*LobbyRequest) GetVersion added in v0.1.14

func (x *LobbyRequest) GetVersion() string

func (*LobbyRequest) MarshalJSON added in v0.1.14

func (x *LobbyRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the LobbyRequest to JSON.

func (*LobbyRequest) MarshalProtoJSON added in v0.1.14

func (x *LobbyRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the LobbyRequest message to JSON.

func (*LobbyRequest) MarshalProtoText added in v0.1.14

func (x *LobbyRequest) MarshalProtoText() string

func (*LobbyRequest) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyRequest) MarshalToVT added in v0.1.14

func (m *LobbyRequest) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyRequest) MarshalVT added in v0.1.14

func (m *LobbyRequest) MarshalVT() (dAtA []byte, err error)

func (*LobbyRequest) ProtoMessage added in v0.1.14

func (*LobbyRequest) ProtoMessage()

func (*LobbyRequest) Reset added in v0.1.14

func (x *LobbyRequest) Reset()

func (*LobbyRequest) SizeVT added in v0.1.14

func (m *LobbyRequest) SizeVT() (n int)

func (*LobbyRequest) String added in v0.1.14

func (x *LobbyRequest) String() string

func (*LobbyRequest) UnmarshalJSON added in v0.1.14

func (x *LobbyRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the LobbyRequest from JSON.

func (*LobbyRequest) UnmarshalProtoJSON added in v0.1.14

func (x *LobbyRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the LobbyRequest message from JSON.

func (*LobbyRequest) UnmarshalVT added in v0.1.14

func (m *LobbyRequest) UnmarshalVT(dAtA []byte) error

type LobbyState added in v0.1.14

type LobbyState struct {

	// Types that are assignable to State:
	//	*LobbyState_Url
	//	*LobbyState_Refused
	//	*LobbyState_SignedOut
	//	*LobbyState_Reconnecting
	State isLobbyState_State `protobuf_oneof:"state"`
	// contains filtered or unexported fields
}

LobbyState is where a hosted session's dev lobby stands.

func (*LobbyState) CloneMessageVT added in v0.1.14

func (m *LobbyState) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*LobbyState) CloneVT added in v0.1.14

func (m *LobbyState) CloneVT() *LobbyState

func (*LobbyState) EqualMessageVT added in v0.1.14

func (this *LobbyState) EqualMessageVT(thatMsg any) bool

func (*LobbyState) EqualVT added in v0.1.14

func (this *LobbyState) EqualVT(that *LobbyState) bool

func (*LobbyState) GetReconnecting added in v0.1.14

func (x *LobbyState) GetReconnecting() string

func (*LobbyState) GetRefused added in v0.1.14

func (x *LobbyState) GetRefused() string

func (*LobbyState) GetSignedOut added in v0.1.14

func (x *LobbyState) GetSignedOut() bool

func (*LobbyState) GetState added in v0.1.14

func (m *LobbyState) GetState() isLobbyState_State

func (*LobbyState) GetUrl added in v0.1.14

func (x *LobbyState) GetUrl() string

func (*LobbyState) MarshalJSON added in v0.1.14

func (x *LobbyState) MarshalJSON() ([]byte, error)

MarshalJSON marshals the LobbyState to JSON.

func (*LobbyState) MarshalProtoJSON added in v0.1.14

func (x *LobbyState) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the LobbyState message to JSON.

func (*LobbyState) MarshalProtoText added in v0.1.14

func (x *LobbyState) MarshalProtoText() string

func (*LobbyState) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyState) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyState) MarshalToVT added in v0.1.14

func (m *LobbyState) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyState) MarshalVT added in v0.1.14

func (m *LobbyState) MarshalVT() (dAtA []byte, err error)

func (*LobbyState) ProtoMessage added in v0.1.14

func (*LobbyState) ProtoMessage()

func (*LobbyState) Reset added in v0.1.14

func (x *LobbyState) Reset()

func (*LobbyState) SizeVT added in v0.1.14

func (m *LobbyState) SizeVT() (n int)

func (*LobbyState) String added in v0.1.14

func (x *LobbyState) String() string

func (*LobbyState) UnmarshalJSON added in v0.1.14

func (x *LobbyState) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the LobbyState from JSON.

func (*LobbyState) UnmarshalProtoJSON added in v0.1.14

func (x *LobbyState) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the LobbyState message from JSON.

func (*LobbyState) UnmarshalVT added in v0.1.14

func (m *LobbyState) UnmarshalVT(dAtA []byte) error

type LobbyState_Reconnecting added in v0.1.14

type LobbyState_Reconnecting struct {
	// reconnecting says why the socket that holds the lobby dropped. The
	// lobby stays open for a minute while the daemon opens it again.
	Reconnecting string `protobuf:"bytes,4,opt,name=reconnecting,proto3,oneof"`
}

func (*LobbyState_Reconnecting) CloneOneofVT added in v0.1.14

func (m *LobbyState_Reconnecting) CloneOneofVT() isLobbyState_State

func (*LobbyState_Reconnecting) CloneVT added in v0.1.14

func (*LobbyState_Reconnecting) EqualVT added in v0.1.14

func (this *LobbyState_Reconnecting) EqualVT(thatIface isLobbyState_State) bool

func (*LobbyState_Reconnecting) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyState_Reconnecting) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyState_Reconnecting) MarshalToVT added in v0.1.14

func (m *LobbyState_Reconnecting) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyState_Reconnecting) SizeVT added in v0.1.14

func (m *LobbyState_Reconnecting) SizeVT() (n int)

type LobbyState_Refused added in v0.1.14

type LobbyState_Refused struct {
	// refused says why the service opened no lobby; the session runs
	// without one.
	Refused string `protobuf:"bytes,2,opt,name=refused,proto3,oneof"`
}

func (*LobbyState_Refused) CloneOneofVT added in v0.1.14

func (m *LobbyState_Refused) CloneOneofVT() isLobbyState_State

func (*LobbyState_Refused) CloneVT added in v0.1.14

func (m *LobbyState_Refused) CloneVT() *LobbyState_Refused

func (*LobbyState_Refused) EqualVT added in v0.1.14

func (this *LobbyState_Refused) EqualVT(thatIface isLobbyState_State) bool

func (*LobbyState_Refused) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyState_Refused) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyState_Refused) MarshalToVT added in v0.1.14

func (m *LobbyState_Refused) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyState_Refused) SizeVT added in v0.1.14

func (m *LobbyState_Refused) SizeVT() (n int)

type LobbyState_SignedOut added in v0.1.14

type LobbyState_SignedOut struct {
	// signed_out means there is no saved sign-in, so there is no lobby.
	SignedOut bool `protobuf:"varint,3,opt,name=signed_out,json=signedOut,proto3,oneof"`
}

func (*LobbyState_SignedOut) CloneOneofVT added in v0.1.14

func (m *LobbyState_SignedOut) CloneOneofVT() isLobbyState_State

func (*LobbyState_SignedOut) CloneVT added in v0.1.14

func (*LobbyState_SignedOut) EqualVT added in v0.1.14

func (this *LobbyState_SignedOut) EqualVT(thatIface isLobbyState_State) bool

func (*LobbyState_SignedOut) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyState_SignedOut) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyState_SignedOut) MarshalToVT added in v0.1.14

func (m *LobbyState_SignedOut) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyState_SignedOut) SizeVT added in v0.1.14

func (m *LobbyState_SignedOut) SizeVT() (n int)

type LobbyState_Url added in v0.1.14

type LobbyState_Url struct {
	// url is the open lobby's page. A url that differs from the one before
	// is a new lobby, after the service closed the earlier one.
	Url string `protobuf:"bytes,1,opt,name=url,proto3,oneof"`
}

func (*LobbyState_Url) CloneOneofVT added in v0.1.14

func (m *LobbyState_Url) CloneOneofVT() isLobbyState_State

func (*LobbyState_Url) CloneVT added in v0.1.14

func (m *LobbyState_Url) CloneVT() *LobbyState_Url

func (*LobbyState_Url) EqualVT added in v0.1.14

func (this *LobbyState_Url) EqualVT(thatIface isLobbyState_State) bool

func (*LobbyState_Url) MarshalToSizedBufferVT added in v0.1.14

func (m *LobbyState_Url) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*LobbyState_Url) MarshalToVT added in v0.1.14

func (m *LobbyState_Url) MarshalToVT(dAtA []byte) (int, error)

func (*LobbyState_Url) SizeVT added in v0.1.14

func (m *LobbyState_Url) SizeVT() (n int)

type Node

type Node struct {
	// contains filtered or unexported fields
}

Node is a running peer: the bus that dials and serves peer streams under the node's peer ID.

func (*Node) GetBus

func (n *Node) GetBus() bus.Bus

GetBus returns the bus that dials and serves peer streams.

func (*Node) GetPeerId

func (n *Node) GetPeerId() peer.ID

GetPeerId returns the node's peer ID, derived from its key.

type ProbeRequest

type ProbeRequest struct {

	// peer_id is the other PC's peer.
	PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peerId,omitempty"`
	// contains filtered or unexported fields
}

ProbeRequest names the peer to measure.

func (*ProbeRequest) CloneMessageVT

func (m *ProbeRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*ProbeRequest) CloneVT

func (m *ProbeRequest) CloneVT() *ProbeRequest

func (*ProbeRequest) EqualMessageVT

func (this *ProbeRequest) EqualMessageVT(thatMsg any) bool

func (*ProbeRequest) EqualVT

func (this *ProbeRequest) EqualVT(that *ProbeRequest) bool

func (*ProbeRequest) GetPeerId

func (x *ProbeRequest) GetPeerId() string

func (*ProbeRequest) MarshalJSON

func (x *ProbeRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ProbeRequest to JSON.

func (*ProbeRequest) MarshalProtoJSON

func (x *ProbeRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ProbeRequest message to JSON.

func (*ProbeRequest) MarshalProtoText

func (x *ProbeRequest) MarshalProtoText() string

func (*ProbeRequest) MarshalToSizedBufferVT

func (m *ProbeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*ProbeRequest) MarshalToVT

func (m *ProbeRequest) MarshalToVT(dAtA []byte) (int, error)

func (*ProbeRequest) MarshalVT

func (m *ProbeRequest) MarshalVT() (dAtA []byte, err error)

func (*ProbeRequest) ProtoMessage

func (*ProbeRequest) ProtoMessage()

func (*ProbeRequest) Reset

func (x *ProbeRequest) Reset()

func (*ProbeRequest) SizeVT

func (m *ProbeRequest) SizeVT() (n int)

func (*ProbeRequest) String

func (x *ProbeRequest) String() string

func (*ProbeRequest) UnmarshalJSON

func (x *ProbeRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ProbeRequest from JSON.

func (*ProbeRequest) UnmarshalProtoJSON

func (x *ProbeRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ProbeRequest message from JSON.

func (*ProbeRequest) UnmarshalVT

func (m *ProbeRequest) UnmarshalVT(dAtA []byte) error

type ProbeResponse

type ProbeResponse struct {

	// rtt_us is the shortest round trip of the probe's packets, in
	// microseconds.
	RttUs uint32 `protobuf:"varint,1,opt,name=rtt_us,json=rttUs,proto3" json:"rttUs,omitempty"`
	// contains filtered or unexported fields
}

ProbeResponse reports one measured link.

func Probe

func Probe(ctx context.Context, b bus.Bus, local, remote peer.ID) (*ProbeResponse, error)

Probe opens a probe stream from local to remote on b and returns the shortest round trip of its packets.

func (*ProbeResponse) CloneMessageVT

func (m *ProbeResponse) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*ProbeResponse) CloneVT

func (m *ProbeResponse) CloneVT() *ProbeResponse

func (*ProbeResponse) EqualMessageVT

func (this *ProbeResponse) EqualMessageVT(thatMsg any) bool

func (*ProbeResponse) EqualVT

func (this *ProbeResponse) EqualVT(that *ProbeResponse) bool

func (*ProbeResponse) GetRttUs

func (x *ProbeResponse) GetRttUs() uint32

func (*ProbeResponse) MarshalJSON

func (x *ProbeResponse) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ProbeResponse to JSON.

func (*ProbeResponse) MarshalProtoJSON

func (x *ProbeResponse) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ProbeResponse message to JSON.

func (*ProbeResponse) MarshalProtoText

func (x *ProbeResponse) MarshalProtoText() string

func (*ProbeResponse) MarshalToSizedBufferVT

func (m *ProbeResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*ProbeResponse) MarshalToVT

func (m *ProbeResponse) MarshalToVT(dAtA []byte) (int, error)

func (*ProbeResponse) MarshalVT

func (m *ProbeResponse) MarshalVT() (dAtA []byte, err error)

func (*ProbeResponse) ProtoMessage

func (*ProbeResponse) ProtoMessage()

func (*ProbeResponse) Reset

func (x *ProbeResponse) Reset()

func (*ProbeResponse) SizeVT

func (m *ProbeResponse) SizeVT() (n int)

func (*ProbeResponse) String

func (x *ProbeResponse) String() string

func (*ProbeResponse) UnmarshalJSON

func (x *ProbeResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ProbeResponse from JSON.

func (*ProbeResponse) UnmarshalProtoJSON

func (x *ProbeResponse) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ProbeResponse message from JSON.

func (*ProbeResponse) UnmarshalVT

func (m *ProbeResponse) UnmarshalVT(dAtA []byte) error

type Relay

type Relay struct {
	// contains filtered or unexported fields
}

Relay offers the service's TURN servers to one local peer's new links while the peer hosts a dev lobby, for the PCs that cannot link directly. One relay on the host's side is enough for a guest behind any router. Without a lobby a link tries the direct path alone.

func NewRelay

func NewRelay(local peer.ID) *Relay

NewRelay constructs the relay for local's links, holding no servers.

func (*Relay) Close

func (r *Relay) Close() error

Close does nothing.

func (*Relay) Execute

func (r *Relay) Execute(context.Context) error

Execute does nothing; each new link reads the relay it holds then.

func (*Relay) GetControllerInfo

func (r *Relay) GetControllerInfo() *controller.Info

GetControllerInfo identifies the relay.

func (*Relay) HandleDirective

func (r *Relay) HandleDirective(_ context.Context, inst directive.Instance) ([]directive.Resolver, error)

HandleDirective supplies the configuration to the local peer only.

func (*Relay) Hold added in v0.1.15

func (r *Relay) Hold(relay *publish.Relay)

Hold sets the relay new links use; nil drops it.

func (*Relay) ICEConfig

func (r *Relay) ICEConfig(context.Context) (*webrtc.WebRtcConfig, error)

ICEConfig offers the direct path first, then the relay's TURN servers while their credentials last.

type SRPCPeerNetClient

type SRPCPeerNetClient interface {
	// SRPCClient returns the underlying SRPC client.
	SRPCClient() srpc.Client

	// GetPeer returns the daemon's peer and its admission to signaling.
	GetPeer(ctx context.Context, in *GetPeerRequest) (*GetPeerResponse, error)
	// Probe opens a stream to another peer and measures its round trip.
	Probe(ctx context.Context, in *ProbeRequest) (*ProbeResponse, error)
	// Host serves the local game server to guests holding the join code it
	// sends first, for as long as the call stays open. The caller sends the
	// server first, then the server's players and interfaces.
	Host(ctx context.Context) (SRPCPeerNet_HostClient, error)
	// Join links to a hosted game server and serves it to the local game on a
	// loopback port until the game leaves or the call ends.
	Join(ctx context.Context, in *JoinRequest) (SRPCPeerNet_JoinClient, error)
}

func NewSRPCPeerNetClient

func NewSRPCPeerNetClient(cc srpc.Client) SRPCPeerNetClient

func NewSRPCPeerNetClientWithServiceID

func NewSRPCPeerNetClientWithServiceID(cc srpc.Client, serviceID string) SRPCPeerNetClient

type SRPCPeerNetHandler

type SRPCPeerNetHandler struct {
	// contains filtered or unexported fields
}

func (SRPCPeerNetHandler) GetMethodIDs

func (SRPCPeerNetHandler) GetMethodIDs() []string

func (*SRPCPeerNetHandler) GetServiceID

func (d *SRPCPeerNetHandler) GetServiceID() string

func (*SRPCPeerNetHandler) InvokeMethod

func (d *SRPCPeerNetHandler) InvokeMethod(
	serviceID, methodID string,
	strm srpc.Stream,
) (bool, error)

func (SRPCPeerNetHandler) InvokeMethod_GetPeer

func (SRPCPeerNetHandler) InvokeMethod_GetPeer(impl SRPCPeerNetServer, strm srpc.Stream) error

func (SRPCPeerNetHandler) InvokeMethod_Host

func (SRPCPeerNetHandler) InvokeMethod_Host(impl SRPCPeerNetServer, strm srpc.Stream) error

func (SRPCPeerNetHandler) InvokeMethod_Join

func (SRPCPeerNetHandler) InvokeMethod_Join(impl SRPCPeerNetServer, strm srpc.Stream) error

func (SRPCPeerNetHandler) InvokeMethod_Probe

func (SRPCPeerNetHandler) InvokeMethod_Probe(impl SRPCPeerNetServer, strm srpc.Stream) error

type SRPCPeerNetServer

type SRPCPeerNetServer interface {
	// GetPeer returns the daemon's peer and its admission to signaling.
	GetPeer(context.Context, *GetPeerRequest) (*GetPeerResponse, error)
	// Probe opens a stream to another peer and measures its round trip.
	Probe(context.Context, *ProbeRequest) (*ProbeResponse, error)
	// Host serves the local game server to guests holding the join code it
	// sends first, for as long as the call stays open. The caller sends the
	// server first, then the server's players and interfaces.
	Host(SRPCPeerNet_HostStream) error
	// Join links to a hosted game server and serves it to the local game on a
	// loopback port until the game leaves or the call ends.
	Join(*JoinRequest, SRPCPeerNet_JoinStream) error
}

type SRPCPeerNet_GetPeerStream

type SRPCPeerNet_GetPeerStream interface {
	srpc.Stream
}

type SRPCPeerNet_HostClient

type SRPCPeerNet_HostClient interface {
	srpc.Stream
	Send(*HostInput) error
	Recv() (*HostEvent, error)
	RecvTo(*HostEvent) error
}

type SRPCPeerNet_HostStream

type SRPCPeerNet_HostStream interface {
	srpc.Stream
	Send(*HostEvent) error
	SendAndClose(*HostEvent) error
	Recv() (*HostInput, error)
	RecvTo(*HostInput) error
}

type SRPCPeerNet_JoinClient

type SRPCPeerNet_JoinClient interface {
	srpc.Stream
	Recv() (*JoinEvent, error)
	RecvTo(*JoinEvent) error
}

type SRPCPeerNet_JoinStream

type SRPCPeerNet_JoinStream interface {
	srpc.Stream
	Send(*JoinEvent) error
	SendAndClose(*JoinEvent) error
}

type SRPCPeerNet_ProbeStream

type SRPCPeerNet_ProbeStream interface {
	srpc.Stream
}

type SRPCSessionClient added in v0.1.13

type SRPCSessionClient interface {
	// SRPCClient returns the underlying SRPC client.
	SRPCClient() srpc.Client

	// Watch streams what the guest sees: what the mods show them, the whole
	// screen first and then only what changed, and each chat line said from
	// the call on.
	Watch(ctx context.Context, in *WatchRequest) (SRPCSession_WatchClient, error)
	// Content streams the content addons of the hosted mods, which the guest
	// mounts before its game starts so it draws the mods' models, materials,
	// particles and layouts.
	Content(ctx context.Context, in *ContentRequest) (SRPCSession_ContentClient, error)
}

func NewSRPCSessionClient added in v0.1.13

func NewSRPCSessionClient(cc srpc.Client) SRPCSessionClient

func NewSRPCSessionClientWithServiceID added in v0.1.13

func NewSRPCSessionClientWithServiceID(cc srpc.Client, serviceID string) SRPCSessionClient

type SRPCSessionHandler added in v0.1.13

type SRPCSessionHandler struct {
	// contains filtered or unexported fields
}

func (SRPCSessionHandler) GetMethodIDs added in v0.1.13

func (SRPCSessionHandler) GetMethodIDs() []string

func (*SRPCSessionHandler) GetServiceID added in v0.1.13

func (d *SRPCSessionHandler) GetServiceID() string

func (*SRPCSessionHandler) InvokeMethod added in v0.1.13

func (d *SRPCSessionHandler) InvokeMethod(
	serviceID, methodID string,
	strm srpc.Stream,
) (bool, error)

func (SRPCSessionHandler) InvokeMethod_Content added in v0.1.19

func (SRPCSessionHandler) InvokeMethod_Content(impl SRPCSessionServer, strm srpc.Stream) error

func (SRPCSessionHandler) InvokeMethod_Watch added in v0.1.13

func (SRPCSessionHandler) InvokeMethod_Watch(impl SRPCSessionServer, strm srpc.Stream) error

type SRPCSessionServer added in v0.1.13

type SRPCSessionServer interface {
	// Watch streams what the guest sees: what the mods show them, the whole
	// screen first and then only what changed, and each chat line said from
	// the call on.
	Watch(*WatchRequest, SRPCSession_WatchStream) error
	// Content streams the content addons of the hosted mods, which the guest
	// mounts before its game starts so it draws the mods' models, materials,
	// particles and layouts.
	Content(*ContentRequest, SRPCSession_ContentStream) error
}

type SRPCSession_ContentClient added in v0.1.19

type SRPCSession_ContentClient interface {
	srpc.Stream
	Recv() (*ContentPart, error)
	RecvTo(*ContentPart) error
}

type SRPCSession_ContentStream added in v0.1.19

type SRPCSession_ContentStream interface {
	srpc.Stream
	Send(*ContentPart) error
	SendAndClose(*ContentPart) error
}

type SRPCSession_WatchClient added in v0.1.13

type SRPCSession_WatchClient interface {
	srpc.Stream
	Recv() (*SessionEvent, error)
	RecvTo(*SessionEvent) error
}

type SRPCSession_WatchStream added in v0.1.13

type SRPCSession_WatchStream interface {
	srpc.Stream
	Send(*SessionEvent) error
	SendAndClose(*SessionEvent) error
}

type ScreenFrame added in v0.1.13

type ScreenFrame struct {

	// changes holds each changed mod's change to its tree, by mod name.
	Changes map[string]*ui.Change `` /* 155-byte string literal not displayed */
	// reset starts the screen over before the changes, as the first frame of
	// each watch does.
	Reset_ bool `protobuf:"varint,2,opt,name=reset,proto3" json:"reset,omitempty"`
	// contains filtered or unexported fields
}

ScreenFrame is one change to a player's screen.

func (*ScreenFrame) CloneMessageVT added in v0.1.13

func (m *ScreenFrame) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*ScreenFrame) CloneVT added in v0.1.13

func (m *ScreenFrame) CloneVT() *ScreenFrame

func (*ScreenFrame) EqualMessageVT added in v0.1.13

func (this *ScreenFrame) EqualMessageVT(thatMsg any) bool

func (*ScreenFrame) EqualVT added in v0.1.13

func (this *ScreenFrame) EqualVT(that *ScreenFrame) bool

func (*ScreenFrame) GetChanges added in v0.1.13

func (x *ScreenFrame) GetChanges() map[string]*ui.Change

func (*ScreenFrame) GetReset_ added in v0.1.13

func (x *ScreenFrame) GetReset_() bool

func (*ScreenFrame) MarshalJSON added in v0.1.13

func (x *ScreenFrame) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ScreenFrame to JSON.

func (*ScreenFrame) MarshalProtoJSON added in v0.1.13

func (x *ScreenFrame) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ScreenFrame message to JSON.

func (*ScreenFrame) MarshalProtoText added in v0.1.13

func (x *ScreenFrame) MarshalProtoText() string

func (*ScreenFrame) MarshalToSizedBufferVT added in v0.1.13

func (m *ScreenFrame) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*ScreenFrame) MarshalToVT added in v0.1.13

func (m *ScreenFrame) MarshalToVT(dAtA []byte) (int, error)

func (*ScreenFrame) MarshalVT added in v0.1.13

func (m *ScreenFrame) MarshalVT() (dAtA []byte, err error)

func (*ScreenFrame) ProtoMessage added in v0.1.13

func (*ScreenFrame) ProtoMessage()

func (*ScreenFrame) Reset added in v0.1.13

func (x *ScreenFrame) Reset()

func (*ScreenFrame) SizeVT added in v0.1.13

func (m *ScreenFrame) SizeVT() (n int)

func (*ScreenFrame) String added in v0.1.13

func (x *ScreenFrame) String() string

func (*ScreenFrame) UnmarshalJSON added in v0.1.13

func (x *ScreenFrame) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ScreenFrame from JSON.

func (*ScreenFrame) UnmarshalProtoJSON added in v0.1.13

func (x *ScreenFrame) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ScreenFrame message from JSON.

func (*ScreenFrame) UnmarshalVT added in v0.1.13

func (m *ScreenFrame) UnmarshalVT(dAtA []byte) error

type ScreenFrame_ChangesEntry added in v0.1.13

type ScreenFrame_ChangesEntry struct {
	Key   string     `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value *ui.Change `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*ScreenFrame_ChangesEntry) GetKey added in v0.1.13

func (x *ScreenFrame_ChangesEntry) GetKey() string

func (*ScreenFrame_ChangesEntry) GetValue added in v0.1.13

func (x *ScreenFrame_ChangesEntry) GetValue() *ui.Change

func (*ScreenFrame_ChangesEntry) MarshalJSON added in v0.1.13

func (x *ScreenFrame_ChangesEntry) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ScreenFrame_ChangesEntry to JSON.

func (*ScreenFrame_ChangesEntry) MarshalProtoJSON added in v0.1.13

func (x *ScreenFrame_ChangesEntry) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the ScreenFrame_ChangesEntry message to JSON.

func (*ScreenFrame_ChangesEntry) MarshalProtoText added in v0.1.13

func (x *ScreenFrame_ChangesEntry) MarshalProtoText() string

func (*ScreenFrame_ChangesEntry) ProtoMessage added in v0.1.13

func (*ScreenFrame_ChangesEntry) ProtoMessage()

func (*ScreenFrame_ChangesEntry) Reset added in v0.1.13

func (x *ScreenFrame_ChangesEntry) Reset()

func (*ScreenFrame_ChangesEntry) String added in v0.1.13

func (x *ScreenFrame_ChangesEntry) String() string

func (*ScreenFrame_ChangesEntry) UnmarshalJSON added in v0.1.13

func (x *ScreenFrame_ChangesEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the ScreenFrame_ChangesEntry from JSON.

func (*ScreenFrame_ChangesEntry) UnmarshalProtoJSON added in v0.1.13

func (x *ScreenFrame_ChangesEntry) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the ScreenFrame_ChangesEntry message from JSON.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service runs a PC's peer with its admission and its hosted lobby's relay, and serves the PeerNet service for it. Its calls wait for Run to load the key, so a daemon can register the service before it holds its state directory.

func NewService

func NewService(origin, keyPath string, signIn func() SignIn) *Service

NewService constructs the peer whose key lives at keyPath, signaling at origin.

func (*Service) GetPeer

func (s *Service) GetPeer(ctx context.Context, _ *GetPeerRequest) (*GetPeerResponse, error)

GetPeer returns the peer and its admission. A call also asks the admission to read the sign-in again, since a client may have just signed in.

func (*Service) Host

func (s *Service) Host(strm SRPCPeerNet_HostStream) error

Host serves the local game server to guests holding the join code it sends first, until the call ends. The caller names the server, then sends its players and interfaces, which the host streams to each guest as their own screen. When the caller asks for a dev lobby, the host holds it open at the signaling service and reports where it stands; the call ending closes it.

func (*Service) Join

func (s *Service) Join(req *JoinRequest, strm SRPCPeerNet_JoinStream) error

Join links to the session the code names and serves it to the local game on a loopback port until the game leaves or the call ends.

func (*Service) Probe

func (s *Service) Probe(ctx context.Context, req *ProbeRequest) (*ProbeResponse, error)

Probe measures the link to another peer once the local peer is ready.

func (*Service) Register

func (s *Service) Register(mux srpc.Mux) error

Register serves the PeerNet service on mux.

func (*Service) Run

func (s *Service) Run(ctx context.Context, le *logrus.Entry) error

Run loads the key, creating it on first use, and runs the peer, its admission and its probe echo until ctx ends. Only one process may run a service for a key file at a time.

type SessionEvent added in v0.1.13

type SessionEvent struct {

	// Types that are assignable to Body:
	//	*SessionEvent_Screen
	//	*SessionEvent_Chat
	Body isSessionEvent_Body `protobuf_oneof:"body"`
	// contains filtered or unexported fields
}

SessionEvent is one thing a guest sees in a hosted session.

func (*SessionEvent) CloneMessageVT added in v0.1.13

func (m *SessionEvent) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*SessionEvent) CloneVT added in v0.1.13

func (m *SessionEvent) CloneVT() *SessionEvent

func (*SessionEvent) EqualMessageVT added in v0.1.13

func (this *SessionEvent) EqualMessageVT(thatMsg any) bool

func (*SessionEvent) EqualVT added in v0.1.13

func (this *SessionEvent) EqualVT(that *SessionEvent) bool

func (*SessionEvent) GetBody added in v0.1.13

func (m *SessionEvent) GetBody() isSessionEvent_Body

func (*SessionEvent) GetChat added in v0.1.13

func (x *SessionEvent) GetChat() *control.PlayerChat

func (*SessionEvent) GetScreen added in v0.1.13

func (x *SessionEvent) GetScreen() *ScreenFrame

func (*SessionEvent) MarshalJSON added in v0.1.13

func (x *SessionEvent) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SessionEvent to JSON.

func (*SessionEvent) MarshalProtoJSON added in v0.1.13

func (x *SessionEvent) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SessionEvent message to JSON.

func (*SessionEvent) MarshalProtoText added in v0.1.13

func (x *SessionEvent) MarshalProtoText() string

func (*SessionEvent) MarshalToSizedBufferVT added in v0.1.13

func (m *SessionEvent) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SessionEvent) MarshalToVT added in v0.1.13

func (m *SessionEvent) MarshalToVT(dAtA []byte) (int, error)

func (*SessionEvent) MarshalVT added in v0.1.13

func (m *SessionEvent) MarshalVT() (dAtA []byte, err error)

func (*SessionEvent) ProtoMessage added in v0.1.13

func (*SessionEvent) ProtoMessage()

func (*SessionEvent) Reset added in v0.1.13

func (x *SessionEvent) Reset()

func (*SessionEvent) SizeVT added in v0.1.13

func (m *SessionEvent) SizeVT() (n int)

func (*SessionEvent) String added in v0.1.13

func (x *SessionEvent) String() string

func (*SessionEvent) UnmarshalJSON added in v0.1.13

func (x *SessionEvent) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SessionEvent from JSON.

func (*SessionEvent) UnmarshalProtoJSON added in v0.1.13

func (x *SessionEvent) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SessionEvent message from JSON.

func (*SessionEvent) UnmarshalVT added in v0.1.13

func (m *SessionEvent) UnmarshalVT(dAtA []byte) error

type SessionEvent_Chat added in v0.1.13

type SessionEvent_Chat struct {
	// chat is a line a player said in the game.
	Chat *control.PlayerChat `protobuf:"bytes,2,opt,name=chat,proto3,oneof"`
}

func (*SessionEvent_Chat) CloneOneofVT added in v0.1.13

func (m *SessionEvent_Chat) CloneOneofVT() isSessionEvent_Body

func (*SessionEvent_Chat) CloneVT added in v0.1.13

func (m *SessionEvent_Chat) CloneVT() *SessionEvent_Chat

func (*SessionEvent_Chat) EqualVT added in v0.1.13

func (this *SessionEvent_Chat) EqualVT(thatIface isSessionEvent_Body) bool

func (*SessionEvent_Chat) MarshalToSizedBufferVT added in v0.1.13

func (m *SessionEvent_Chat) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SessionEvent_Chat) MarshalToVT added in v0.1.13

func (m *SessionEvent_Chat) MarshalToVT(dAtA []byte) (int, error)

func (*SessionEvent_Chat) SizeVT added in v0.1.13

func (m *SessionEvent_Chat) SizeVT() (n int)

type SessionEvent_Screen added in v0.1.13

type SessionEvent_Screen struct {
	// screen changes what the mods show the guest.
	Screen *ScreenFrame `protobuf:"bytes,1,opt,name=screen,proto3,oneof"`
}

func (*SessionEvent_Screen) CloneOneofVT added in v0.1.13

func (m *SessionEvent_Screen) CloneOneofVT() isSessionEvent_Body

func (*SessionEvent_Screen) CloneVT added in v0.1.13

func (*SessionEvent_Screen) EqualVT added in v0.1.13

func (this *SessionEvent_Screen) EqualVT(thatIface isSessionEvent_Body) bool

func (*SessionEvent_Screen) MarshalToSizedBufferVT added in v0.1.13

func (m *SessionEvent_Screen) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SessionEvent_Screen) MarshalToVT added in v0.1.13

func (m *SessionEvent_Screen) MarshalToVT(dAtA []byte) (int, error)

func (*SessionEvent_Screen) SizeVT added in v0.1.13

func (m *SessionEvent_Screen) SizeVT() (n int)

type SignIn

type SignIn struct {
	// Token is the bearer credential.
	Token string
	// Account is the signed-in name.
	Account string
}

SignIn is the creator's saved sign-in with the service. An empty Token means signed out.

type WatchRequest added in v0.1.13

type WatchRequest struct {

	// session is the join code's secret.
	Session uint64 `protobuf:"fixed64,1,opt,name=session,proto3" json:"session,omitempty"`
	// steam_id is the guest's Steam ID.
	SteamId uint64 `protobuf:"fixed64,2,opt,name=steam_id,json=steamId,proto3" json:"steamId,omitempty"`
	// contains filtered or unexported fields
}

WatchRequest names the guest whose session to stream.

func (*WatchRequest) CloneMessageVT added in v0.1.13

func (m *WatchRequest) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*WatchRequest) CloneVT added in v0.1.13

func (m *WatchRequest) CloneVT() *WatchRequest

func (*WatchRequest) EqualMessageVT added in v0.1.13

func (this *WatchRequest) EqualMessageVT(thatMsg any) bool

func (*WatchRequest) EqualVT added in v0.1.13

func (this *WatchRequest) EqualVT(that *WatchRequest) bool

func (*WatchRequest) GetSession added in v0.1.13

func (x *WatchRequest) GetSession() uint64

func (*WatchRequest) GetSteamId added in v0.1.13

func (x *WatchRequest) GetSteamId() uint64

func (*WatchRequest) MarshalJSON added in v0.1.13

func (x *WatchRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the WatchRequest to JSON.

func (*WatchRequest) MarshalProtoJSON added in v0.1.13

func (x *WatchRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the WatchRequest message to JSON.

func (*WatchRequest) MarshalProtoText added in v0.1.13

func (x *WatchRequest) MarshalProtoText() string

func (*WatchRequest) MarshalToSizedBufferVT added in v0.1.13

func (m *WatchRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*WatchRequest) MarshalToVT added in v0.1.13

func (m *WatchRequest) MarshalToVT(dAtA []byte) (int, error)

func (*WatchRequest) MarshalVT added in v0.1.13

func (m *WatchRequest) MarshalVT() (dAtA []byte, err error)

func (*WatchRequest) ProtoMessage added in v0.1.13

func (*WatchRequest) ProtoMessage()

func (*WatchRequest) Reset added in v0.1.13

func (x *WatchRequest) Reset()

func (*WatchRequest) SizeVT added in v0.1.13

func (m *WatchRequest) SizeVT() (n int)

func (*WatchRequest) String added in v0.1.13

func (x *WatchRequest) String() string

func (*WatchRequest) UnmarshalJSON added in v0.1.13

func (x *WatchRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the WatchRequest from JSON.

func (*WatchRequest) UnmarshalProtoJSON added in v0.1.13

func (x *WatchRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the WatchRequest message from JSON.

func (*WatchRequest) UnmarshalVT added in v0.1.13

func (m *WatchRequest) UnmarshalVT(dAtA []byte) error

Jump to

Keyboard shortcuts

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