plan

package module
v0.0.0-...-a1287bd Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2020 License: GPL-3.0 Imports: 19 Imported by: 0

README

plan-redwood-go

Documentation

Index

Constants

View Source
const (
	NodeURIsKey     = "links"
	BlockRawKey     = "blockRaw"
	NodeTagsKey     = "tags"
	NodeModifiedKey = "modified"
	NodeTypeIDKey   = "type"
	NodeGlyphKey    = "glyph"
	NodeNameKey     = "name"
	NodeValueKey    = "val"
	NodeTransform   = "trans"
	NodeX1Key       = "x1"
	NodeX2Key       = "x2"
	NodeX3Key       = "x3"
	NodeTKey        = "t"
	NodeTSpanKey    = "tSpan"
)

Key values used to map plan.Node fields to redwood node fields

View Source
const (
	SpaceTypeKey    = "spaceType"
	SpaceT0AsUTCKey = "t0utc"
	SpaceX1UnitType = "x1UnitType"
	SpaceX2UnitType = "x2UnitType"
	SpaceX3UnitType = "x3UnitType"
)

Key values used to map plan.Node layer-related fields to redwood node fields

Variables

View Source
var (
	FetchFlags_name = map[int32]string{
		0:  "NONE",
		1:  "FIELDS",
		2:  "LINKS",
		4:  "LINKS_RESOLVED",
		8:  "BLOCK",
		16: "BLOCK_DECODED",
	}
	FetchFlags_value = map[string]int32{
		"NONE":           0,
		"FIELDS":         1,
		"LINKS":          2,
		"LINKS_RESOLVED": 4,
		"BLOCK":          8,
		"BLOCK_DECODED":  16,
	}
)

Enum value maps for FetchFlags.

View Source
var (
	FilterFlags_name = map[int32]string{
		0: "NO_SEARCH",
		1: "LAYERS_ONLY",
		2: "EXCLUDE_LAYERS",
	}
	FilterFlags_value = map[string]int32{
		"NO_SEARCH":      0,
		"LAYERS_ONLY":    1,
		"EXCLUDE_LAYERS": 2,
	}
)

Enum value maps for FilterFlags.

Functions

func RegisterRPCServer

func RegisterRPCServer(s *grpc.Server, srv RPCServer)

Types

type Block

type Block struct {

	// Label is the name / field-name of this Block.
	// Any UTF8 string is available and only 0x00 (NUL) is disallowed (such as in Go).
	Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"`
	// ContentType self-describes the nature of a Block's data and what form it takes.
	// Anyone handed this Block instance can accurately interpret / process / deserialize its content.
	// In effect, this field is a MIME type or more generally any multicodec pathname (e.g. "text/html", "image/png", "audio/mp3")
	ContentType string `protobuf:"bytes,2,opt,name=ContentType,proto3" json:"ContentType,omitempty"`
	// Codec supplements the role of ContentType or can be used for efficiency and ease.
	// For example, 100,000 Blocks could all repeat a ContentType string over and over, ar an inline int can be used instead.
	// For example, see: https://github.com/multiformats/multicodec
	Codec uint32 `protobuf:"varint,3,opt,name=Codec,proto3" json:"Codec,omitempty"`
	// Timestamps associated with this Block's content (in seconds UTC).
	TimeCreated  int64 `protobuf:"varint,4,opt,name=TimeCreated,proto3" json:"TimeCreated,omitempty"`
	TimeModified int64 `protobuf:"varint,5,opt,name=TimeModified,proto3" json:"TimeModified,omitempty"`
	// Subs are optionally nested sub items that can be interpreted or employed in any way a client or protocol sees fit.
	Subs []*Block `protobuf:"bytes,10,rep,name=Subs,proto3" json:"Subs,omitempty"`
	// Content/payload data -- structured in accordance with Block.ContentType and/or Block.Codec.
	// The variety of data-types here allow an architect to package raw data free of overhead penalties, courtesy of protobufs.
	DataVeci []int64   `protobuf:"varint,20,rep,packed,name=DataVeci,proto3" json:"DataVeci,omitempty"`
	DataVecf []float32 `protobuf:"fixed32,21,rep,packed,name=DataVecf,proto3" json:"DataVecf,omitempty"`
	DataVecd []float64 `protobuf:"fixed64,22,rep,packed,name=DataVecd,proto3" json:"DataVecd,omitempty"`
	DataVecs []string  `protobuf:"bytes,23,rep,name=DataVecs,proto3" json:"DataVecs,omitempty"`
	DataARGB uint32    `protobuf:"fixed32,30,opt,name=DataARGB,proto3" json:"DataARGB,omitempty"`
	DataBuf  []byte    `protobuf:"bytes,31,opt,name=DataBuf,proto3" json:"DataBuf,omitempty"`
	DataStr  string    `protobuf:"bytes,32,opt,name=DataStr,proto3" json:"DataStr,omitempty"`
	DataInt  int64     `protobuf:"varint,33,opt,name=DataInt,proto3" json:"DataInt,omitempty"`
	DataX1   float32   `protobuf:"fixed32,41,opt,name=DataX1,proto3" json:"DataX1,omitempty"`
	DataX2   float32   `protobuf:"fixed32,42,opt,name=DataX2,proto3" json:"DataX2,omitempty"`
	DataX3   float32   `protobuf:"fixed32,43,opt,name=DataX3,proto3" json:"DataX3,omitempty"`
	// contains filtered or unexported fields
}

Block is a self-describing, flexible, and nestable information / content container. All fields are optional and are understood to conform to the context / protocol / codec that a Block appears in.

func (*Block) Descriptor deprecated

func (*Block) Descriptor() ([]byte, []int)

Deprecated: Use Block.ProtoReflect.Descriptor instead.

func (*Block) GetCodec

func (x *Block) GetCodec() uint32

func (*Block) GetContentType

func (x *Block) GetContentType() string

func (*Block) GetDataARGB

func (x *Block) GetDataARGB() uint32

func (*Block) GetDataBuf

func (x *Block) GetDataBuf() []byte

func (*Block) GetDataInt

func (x *Block) GetDataInt() int64

func (*Block) GetDataStr

func (x *Block) GetDataStr() string

func (*Block) GetDataVecd

func (x *Block) GetDataVecd() []float64

func (*Block) GetDataVecf

func (x *Block) GetDataVecf() []float32

func (*Block) GetDataVeci

func (x *Block) GetDataVeci() []int64

func (*Block) GetDataVecs

func (x *Block) GetDataVecs() []string

func (*Block) GetDataX1

func (x *Block) GetDataX1() float32

func (*Block) GetDataX2

func (x *Block) GetDataX2() float32

func (*Block) GetDataX3

func (x *Block) GetDataX3() float32

func (*Block) GetLabel

func (x *Block) GetLabel() string

func (*Block) GetSubs

func (x *Block) GetSubs() []*Block

func (*Block) GetTimeCreated

func (x *Block) GetTimeCreated() int64

func (*Block) GetTimeModified

func (x *Block) GetTimeModified() int64

func (*Block) ProtoMessage

func (*Block) ProtoMessage()

func (*Block) ProtoReflect

func (x *Block) ProtoReflect() protoreflect.Message

func (*Block) Reset

func (x *Block) Reset()

func (*Block) String

func (x *Block) String() string

type ChangeUserPermsReq

type ChangeUserPermsReq struct {
	ChURI              string `protobuf:"bytes,1,opt,name=ChURI,proto3" json:"ChURI,omitempty"`
	Address            string `protobuf:"bytes,2,opt,name=Address,proto3" json:"Address,omitempty"`
	WriteKeypathsRegex string `protobuf:"bytes,3,opt,name=WriteKeypathsRegex,proto3" json:"WriteKeypathsRegex,omitempty"`
	CanWrite           bool   `protobuf:"varint,4,opt,name=CanWrite,proto3" json:"CanWrite,omitempty"`
	// contains filtered or unexported fields
}

func (*ChangeUserPermsReq) Descriptor deprecated

func (*ChangeUserPermsReq) Descriptor() ([]byte, []int)

Deprecated: Use ChangeUserPermsReq.ProtoReflect.Descriptor instead.

func (*ChangeUserPermsReq) GetAddress

func (x *ChangeUserPermsReq) GetAddress() string

func (*ChangeUserPermsReq) GetCanWrite

func (x *ChangeUserPermsReq) GetCanWrite() bool

func (*ChangeUserPermsReq) GetChURI

func (x *ChangeUserPermsReq) GetChURI() string

func (*ChangeUserPermsReq) GetWriteKeypathsRegex

func (x *ChangeUserPermsReq) GetWriteKeypathsRegex() string

func (*ChangeUserPermsReq) ProtoMessage

func (*ChangeUserPermsReq) ProtoMessage()

func (*ChangeUserPermsReq) ProtoReflect

func (x *ChangeUserPermsReq) ProtoReflect() protoreflect.Message

func (*ChangeUserPermsReq) Reset

func (x *ChangeUserPermsReq) Reset()

func (*ChangeUserPermsReq) String

func (x *ChangeUserPermsReq) String() string

type ChannelGenesisReq

type ChannelGenesisReq struct {
	ChRoot *Node `protobuf:"bytes,1,opt,name=ChRoot,proto3" json:"ChRoot,omitempty"`
	// contains filtered or unexported fields
}

func (*ChannelGenesisReq) Descriptor deprecated

func (*ChannelGenesisReq) Descriptor() ([]byte, []int)

Deprecated: Use ChannelGenesisReq.ProtoReflect.Descriptor instead.

func (*ChannelGenesisReq) GetChRoot

func (x *ChannelGenesisReq) GetChRoot() *Node

func (*ChannelGenesisReq) ProtoMessage

func (*ChannelGenesisReq) ProtoMessage()

func (*ChannelGenesisReq) ProtoReflect

func (x *ChannelGenesisReq) ProtoReflect() protoreflect.Message

func (*ChannelGenesisReq) Reset

func (x *ChannelGenesisReq) Reset()

func (*ChannelGenesisReq) String

func (x *ChannelGenesisReq) String() string

type FetchFlags

type FetchFlags int32

FetchFlags specifies what parts of a Node are loaded and returned during a NodeScan. Note these are bit-ORed together (and is not a normal enum)

const (
	FetchFlags_NONE           FetchFlags = 0
	FetchFlags_FIELDS         FetchFlags = 1
	FetchFlags_LINKS          FetchFlags = 2
	FetchFlags_LINKS_RESOLVED FetchFlags = 4
	FetchFlags_BLOCK          FetchFlags = 8
	FetchFlags_BLOCK_DECODED  FetchFlags = 16
)

func (FetchFlags) Descriptor

func (FetchFlags) Descriptor() protoreflect.EnumDescriptor

func (FetchFlags) Enum

func (x FetchFlags) Enum() *FetchFlags

func (FetchFlags) EnumDescriptor deprecated

func (FetchFlags) EnumDescriptor() ([]byte, []int)

Deprecated: Use FetchFlags.Descriptor instead.

func (FetchFlags) Number

func (x FetchFlags) Number() protoreflect.EnumNumber

func (FetchFlags) String

func (x FetchFlags) String() string

func (FetchFlags) Type

type FilterFlags

type FilterFlags int32

FilterFlags specifies various options for NodeScan.

const (
	FilterFlags_NO_SEARCH      FilterFlags = 0
	FilterFlags_LAYERS_ONLY    FilterFlags = 1
	FilterFlags_EXCLUDE_LAYERS FilterFlags = 2
)

func (FilterFlags) Descriptor

func (FilterFlags) Enum

func (x FilterFlags) Enum() *FilterFlags

func (FilterFlags) EnumDescriptor deprecated

func (FilterFlags) EnumDescriptor() ([]byte, []int)

Deprecated: Use FilterFlags.Descriptor instead.

func (FilterFlags) Number

func (x FilterFlags) Number() protoreflect.EnumNumber

func (FilterFlags) String

func (x FilterFlags) String() string

func (FilterFlags) Type

type GRPCServer

type GRPCServer struct {
	*ctx.Context
	// contains filtered or unexported fields
}

GRPCServer is the GRPC implementation of plan.proto

func NewGRPCServer

func NewGRPCServer(host rw.Host, listenNetwork string, listenAddr string) *GRPCServer

NewGRPCServer creates a new GRPCServer

func (*GRPCServer) AddNodesAsPatches

func (s *GRPCServer) AddNodesAsPatches(nodesToPut []*Node, tx *rw.Tx) error

AddNodesAsPatches steps through the given sets of nodes and encodes it as a rw Patch, and appends that patch to tx.Patches.

If tx.ChURI is not yet set, it will be set by the first Node that has ChURI set.

If tx.ChURI is set, any subsequent Node with a different ChURI will cause an error.

func (*GRPCServer) ChangeUserPerms

func (s *GRPCServer) ChangeUserPerms(ctx context.Context, req *ChangeUserPermsReq) (*TxInfo, error)

func (*GRPCServer) ChannelGenesis

func (s *GRPCServer) ChannelGenesis(ctx context.Context, req *ChannelGenesisReq) (*TxInfo, error)

func (*GRPCServer) NodeGet

func (s *GRPCServer) NodeGet(ctx context.Context, req *NodeGetReq) (*Node, error)

func (*GRPCServer) NodePut

func (s *GRPCServer) NodePut(ctx context.Context, req *NodePutReq) (*TxInfo, error)

func (*GRPCServer) NodeScan

func (s *GRPCServer) NodeScan(req *NodeScanReq, server RPC_NodeScanServer) error

func (*GRPCServer) SendTx

func (s *GRPCServer) SendTx(ctx context.Context, tx *rw.Tx) (*TxInfo, error)

SendTx sends a Tx that is ready to go into the 'wood.

func (*GRPCServer) Start

func (s *GRPCServer) Start() error

func (*GRPCServer) StreamServerInterceptor

func (s *GRPCServer) StreamServerInterceptor() grpc.StreamServerInterceptor

func (*GRPCServer) UnaryServerInterceptor

func (s *GRPCServer) UnaryServerInterceptor() grpc.UnaryServerInterceptor

type Node

type Node struct {

	// ID is required and uniquely identifies a node.
	// An ID can be any UTF8 string longer than 1 character, BUT CANNOT contain a forward slash ('/') or contain any whitespace characters.
	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	// Layer, if non-nil, means this node can contain other nodes -- it is also dubbed a "node space"
	// For nodes that have this Layer as the parent, their coordinates are relative to the coordinate space of this Node.
	// Nested NodeLayers allow Node placements to occur with pluggable transformations.
	Layer *NodeLayer `protobuf:"bytes,2,opt,name=Layer,proto3" json:"Layer,omitempty"`
	// Tags is a collection of UTF8 identifying strings delimited by a comma (',').
	// This offers a flexible and lightweight system to filter hits during NodeScan()
	Tags string `protobuf:"bytes,4,opt,name=Tags,proto3" json:"Tags,omitempty"`
	// LastModified is a timestamp of when this node was last altered (in UTC seconds).
	// By default, this field is auto-updated during NodePut().
	LastModified int64 `protobuf:"varint,7,opt,name=LastModified,proto3" json:"LastModified,omitempty"`
	// Optional values that can express commonly needed fields or allow this Node to be self-describing.
	TypeID string `protobuf:"bytes,10,opt,name=TypeID,proto3" json:"TypeID,omitempty"`
	Glyph  string `protobuf:"bytes,11,opt,name=Glyph,proto3" json:"Glyph,omitempty"`
	Name   string `protobuf:"bytes,12,opt,name=Name,proto3" json:"Name,omitempty"`
	Value  string `protobuf:"bytes,13,opt,name=Value,proto3" json:"Value,omitempty"`
	// X1,.. are coordinates expressed in the parent's coordinate space.
	// Shoutout to the 3 domains that reflect all theoretical completeness: alpha (finite), omega (unending), and the inaccessible cardinal(s).
	// Special thanks to Michael at Vsauce: https://www.youtube.com/watch?v=SrU9YDoXE88
	X1 float64 `protobuf:"fixed64,21,opt,name=X1,proto3" json:"X1,omitempty"`
	X2 float64 `protobuf:"fixed64,22,opt,name=X2,proto3" json:"X2,omitempty"`
	X3 float64 `protobuf:"fixed64,23,opt,name=X3,proto3" json:"X3,omitempty"`
	// Transform means this Node and its sub nodes should be scaled by [0] (or [0,1,2]) and rotated according to thw quaternion stored in [1,2,3,4] (or [3,4,5,6])
	// If omitted, implied scale is 1 and there no rotation is applied.
	Transform []float32 `protobuf:"fixed32,25,rep,packed,name=Transform,proto3" json:"Transform,omitempty"`
	// T is a time offset expressed in seconds.
	// A Node's parent layer defines how T=0 maps onto UTC, offering greater of precision (where precision would otherwise be "burned up" by expressing large time value).
	T float64 `protobuf:"fixed64,28,opt,name=T,proto3" json:"T,omitempty"`
	// TSpan is a time duration or period expressed in seconds.
	TSpan float64 `protobuf:"fixed64,29,opt,name=TSpan,proto3" json:"TSpan,omitempty"`
	// Links are URIs to other linked nodes.
	// [<ChURI>[<ParentLayerID>/]]<NodeID>
	Links []string `protobuf:"bytes,40,rep,name=Links,proto3" json:"Links,omitempty"`
	// Nodes are corresponding elements of .Links (above) resolved/expanded.
	// This is only used for a server to return this.Links in their resolved form.
	// See use of LinksFetchFlags in NodeScanReq.
	LinksResolved []*Node `protobuf:"bytes,41,rep,name=LinksResolved,proto3" json:"LinksResolved,omitempty"`
	// Block is any client data payload (and is generally not accessed by redwood).
	// When non-nil, it is assumed to be the output of this.BlockRaw.Unmarshal()
	Block *Block `protobuf:"bytes,50,opt,name=Block,proto3" json:"Block,omitempty"`
	// BlockRaw is the protobufs serialization of this.Block.
	// When non-nil, it is assumed to be the output of this.Block.Marshal()
	BlockRaw []byte `protobuf:"bytes,51,opt,name=BlockRaw,proto3" json:"BlockRaw,omitempty"`
	// ParentID is the ID of the Node layer that this Node entry appears in (and whose fields are transformed through that layer).
	// If this field is empty or nil, the identity/default layer ID and is assumed (and is denoted as '!')
	// This field is NOT stored directly (as it is exists implicitly):
	//      - when set by a server (by request via FetchFlags), it is recovered from internal server db info.
	//      - when set by a client, the client is specifying which parent this node resides in.
	ParentID string `protobuf:"bytes,60,opt,name=ParentID,proto3" json:"ParentID,omitempty"`
	// ChURI is the channel state URI for this node.
	// This is only used during RPC.ChannelGenesis() and RPC.PutNode() to express a destination ChURI.
	ChURI string `protobuf:"bytes,61,opt,name=ChURI,proto3" json:"ChURI,omitempty"`
	// contains filtered or unexported fields
}

Node is a generic information schema that reflects a collection of abstract containers ("nodes") in relation to each other and nodes in other NodeSpace channels. Each node has a set of associated fields and attributes, including spatial coordinates and references (links) to other nodes.

func (*Node) Descriptor deprecated

func (*Node) Descriptor() ([]byte, []int)

Deprecated: Use Node.ProtoReflect.Descriptor instead.

func (*Node) GetBlock

func (x *Node) GetBlock() *Block

func (*Node) GetBlockRaw

func (x *Node) GetBlockRaw() []byte

func (*Node) GetChURI

func (x *Node) GetChURI() string

func (*Node) GetGlyph

func (x *Node) GetGlyph() string

func (*Node) GetID

func (x *Node) GetID() string

func (*Node) GetLastModified

func (x *Node) GetLastModified() int64

func (*Node) GetLayer

func (x *Node) GetLayer() *NodeLayer
func (x *Node) GetLinks() []string

func (*Node) GetLinksResolved

func (x *Node) GetLinksResolved() []*Node

func (*Node) GetName

func (x *Node) GetName() string

func (*Node) GetParentID

func (x *Node) GetParentID() string

func (*Node) GetT

func (x *Node) GetT() float64

func (*Node) GetTSpan

func (x *Node) GetTSpan() float64

func (*Node) GetTags

func (x *Node) GetTags() string

func (*Node) GetTransform

func (x *Node) GetTransform() []float32

func (*Node) GetTypeID

func (x *Node) GetTypeID() string

func (*Node) GetValue

func (x *Node) GetValue() string

func (*Node) GetX1

func (x *Node) GetX1() float64

func (*Node) GetX2

func (x *Node) GetX2() float64

func (*Node) GetX3

func (x *Node) GetX3() float64

func (*Node) ProtoMessage

func (*Node) ProtoMessage()

func (*Node) ProtoReflect

func (x *Node) ProtoReflect() protoreflect.Message

func (*Node) Reset

func (x *Node) Reset()

func (*Node) String

func (x *Node) String() string

type NodeGetReq

type NodeGetReq struct {
	ChURI    string `protobuf:"bytes,1,opt,name=ChURI,proto3" json:"ChURI,omitempty"`
	ParentID string `protobuf:"bytes,2,opt,name=ParentID,proto3" json:"ParentID,omitempty"`
	NodeID   string `protobuf:"bytes,3,opt,name=NodeID,proto3" json:"NodeID,omitempty"`
	// NodeFetchFlags specifies which fields are loaded and returned for each Node scan match/hit returned by NodeScan().
	NodeFetchFlags FetchFlags `protobuf:"varint,40,opt,name=NodeFetchFlags,proto3,enum=plan.FetchFlags" json:"NodeFetchFlags,omitempty"`
	// LinksFetchFlags specifies which fields are loaded and returned for linked nodes of each Node hit returned by a NodeScan().
	LinksFetchFlags FetchFlags `protobuf:"varint,41,opt,name=LinksFetchFlags,proto3,enum=plan.FetchFlags" json:"LinksFetchFlags,omitempty"`
	// contains filtered or unexported fields
}

NodeGetReq contains the parameters for a single Node to be fetched.

func (*NodeGetReq) Descriptor deprecated

func (*NodeGetReq) Descriptor() ([]byte, []int)

Deprecated: Use NodeGetReq.ProtoReflect.Descriptor instead.

func (*NodeGetReq) GetChURI

func (x *NodeGetReq) GetChURI() string

func (*NodeGetReq) GetLinksFetchFlags

func (x *NodeGetReq) GetLinksFetchFlags() FetchFlags

func (*NodeGetReq) GetNodeFetchFlags

func (x *NodeGetReq) GetNodeFetchFlags() FetchFlags

func (*NodeGetReq) GetNodeID

func (x *NodeGetReq) GetNodeID() string

func (*NodeGetReq) GetParentID

func (x *NodeGetReq) GetParentID() string

func (*NodeGetReq) ProtoMessage

func (*NodeGetReq) ProtoMessage()

func (*NodeGetReq) ProtoReflect

func (x *NodeGetReq) ProtoReflect() protoreflect.Message

func (*NodeGetReq) Reset

func (x *NodeGetReq) Reset()

func (*NodeGetReq) String

func (x *NodeGetReq) String() string

type NodeLayer

type NodeLayer struct {

	// T0AsUTC expresses the UTC time index (in seconds) of a Node at T = 0.
	// This means a NodeLayer can be anchored to any point on the UTC timeline with double precision accuracy.
	// This allows a time series of nodes to reside at any conceivable time scale: the planck scale or the timescale of the universe, 14 billion years.
	T0AsUTC float64 `protobuf:"fixed64,5,opt,name=T0AsUTC,proto3" json:"T0AsUTC,omitempty"`
	// SpaceType specifies the implicit geometry baked into coordinates of nodes in this layer.
	// It designates a particular of 1D, 2D, 3D topography or coordinate system.
	// e.g. "cartesian/xyz", "cylindrical/angle-r-z", "spherical/r-theta-phi", "geospace-earth/lat-long-alt"
	SpaceType string `protobuf:"bytes,10,opt,name=SpaceType,proto3" json:"SpaceType,omitempty"`
	// X1UnitType is a unit MIME type descriptor
	// e.g. "angle/degrees", "distance/meters", "mass/kilograms", "temperature/celsius", "charge/amp-hours", "energy/kw-hours", "wisdom/years"
	X1UnitType string `protobuf:"bytes,31,opt,name=X1UnitType,proto3" json:"X1UnitType,omitempty"`
	X2UnitType string `protobuf:"bytes,32,opt,name=X2UnitType,proto3" json:"X2UnitType,omitempty"`
	X3UnitType string `protobuf:"bytes,33,opt,name=X3UnitType,proto3" json:"X3UnitType,omitempty"`
	// contains filtered or unexported fields
}

NodeLayer is a container for Nodes and can be regarded as a "column" object (where Nodes in this layer can be considered rows). A node with this NodeLayer's Node.ID as its parent means its coordinates are defined according to the parent layer.

func (*NodeLayer) Descriptor deprecated

func (*NodeLayer) Descriptor() ([]byte, []int)

Deprecated: Use NodeLayer.ProtoReflect.Descriptor instead.

func (*NodeLayer) GetSpaceType

func (x *NodeLayer) GetSpaceType() string

func (*NodeLayer) GetT0AsUTC

func (x *NodeLayer) GetT0AsUTC() float64

func (*NodeLayer) GetX1UnitType

func (x *NodeLayer) GetX1UnitType() string

func (*NodeLayer) GetX2UnitType

func (x *NodeLayer) GetX2UnitType() string

func (*NodeLayer) GetX3UnitType

func (x *NodeLayer) GetX3UnitType() string

func (*NodeLayer) ProtoMessage

func (*NodeLayer) ProtoMessage()

func (*NodeLayer) ProtoReflect

func (x *NodeLayer) ProtoReflect() protoreflect.Message

func (*NodeLayer) Reset

func (x *NodeLayer) Reset()

func (*NodeLayer) String

func (x *NodeLayer) String() string

type NodePutReq

type NodePutReq struct {

	// Nodes is a list of Nodes to be put (in order).
	// NodePut() will first merge these Nodes in the order they appear (or will no-op if this list is nil or empty).
	// All values of Node.ChURI must be equal or an error is returned (excluding empty/omitted URIs which denotes deferring to another Node.ChURI)
	Nodes []*Node `protobuf:"bytes,5,rep,name=Nodes,proto3" json:"Nodes,omitempty"`
	// Node is a node to be put.
	// NodePut() will merge this Node (or will no-op if this Node is nil).
	// This field is offered as convenience and is equivalent to putting this node at the end of .Nodes[]
	Node *Node `protobuf:"bytes,6,opt,name=Node,proto3" json:"Node,omitempty"`
	// contains filtered or unexported fields
}

func (*NodePutReq) Descriptor deprecated

func (*NodePutReq) Descriptor() ([]byte, []int)

Deprecated: Use NodePutReq.ProtoReflect.Descriptor instead.

func (*NodePutReq) GetNode

func (x *NodePutReq) GetNode() *Node

func (*NodePutReq) GetNodes

func (x *NodePutReq) GetNodes() []*Node

func (*NodePutReq) ProtoMessage

func (*NodePutReq) ProtoMessage()

func (*NodePutReq) ProtoReflect

func (x *NodePutReq) ProtoReflect() protoreflect.Message

func (*NodePutReq) Reset

func (x *NodePutReq) Reset()

func (*NodePutReq) String

func (x *NodePutReq) String() string

type NodeScanReq

type NodeScanReq struct {
	ChURI string `protobuf:"bytes,1,opt,name=ChURI,proto3" json:"ChURI,omitempty"`
	// Note that "!" is used to denote ChURI's default (root) node ID.
	// FUTURE: should this instead just be any valid parent node ID pathname?
	RegexParentID string `protobuf:"bytes,3,opt,name=RegexParentID,proto3" json:"RegexParentID,omitempty"`
	// Filters to apply to each node candidate
	RegexNodeID string `protobuf:"bytes,10,opt,name=RegexNodeID,proto3" json:"RegexNodeID,omitempty"`
	RegexName   string `protobuf:"bytes,11,opt,name=RegexName,proto3" json:"RegexName,omitempty"`
	RegexTags   string `protobuf:"bytes,12,opt,name=RegexTags,proto3" json:"RegexTags,omitempty"`
	RegexTypeID string `protobuf:"bytes,13,opt,name=RegexTypeID,proto3" json:"RegexTypeID,omitempty"`
	// FilterFlags further selects which Nodes are eligible to be scan hits.
	FilterFlags FilterFlags `protobuf:"varint,14,opt,name=FilterFlags,proto3,enum=plan.FilterFlags" json:"FilterFlags,omitempty"`
	// Subscribe specifies if this scan should remain open and await additional hits that may appear as state is updated.
	Subscribe bool `protobuf:"varint,20,opt,name=Subscribe,proto3" json:"Subscribe,omitempty"`
	// Min/max time search params (no search if TMax > TMin)
	TMin float64 `protobuf:"fixed64,30,opt,name=TMin,proto3" json:"TMin,omitempty"`
	TMax float64 `protobuf:"fixed64,31,opt,name=TMax,proto3" json:"TMax,omitempty"`
	// See NodeGetReq
	NodeFetchFlags  FetchFlags `protobuf:"varint,40,opt,name=NodeFetchFlags,proto3,enum=plan.FetchFlags" json:"NodeFetchFlags,omitempty"`
	LinksFetchFlags FetchFlags `protobuf:"varint,41,opt,name=LinksFetchFlags,proto3,enum=plan.FetchFlags" json:"LinksFetchFlags,omitempty"`
	// contains filtered or unexported fields
}

func (*NodeScanReq) Descriptor deprecated

func (*NodeScanReq) Descriptor() ([]byte, []int)

Deprecated: Use NodeScanReq.ProtoReflect.Descriptor instead.

func (*NodeScanReq) GetChURI

func (x *NodeScanReq) GetChURI() string

func (*NodeScanReq) GetFilterFlags

func (x *NodeScanReq) GetFilterFlags() FilterFlags

func (*NodeScanReq) GetLinksFetchFlags

func (x *NodeScanReq) GetLinksFetchFlags() FetchFlags

func (*NodeScanReq) GetNodeFetchFlags

func (x *NodeScanReq) GetNodeFetchFlags() FetchFlags

func (*NodeScanReq) GetRegexName

func (x *NodeScanReq) GetRegexName() string

func (*NodeScanReq) GetRegexNodeID

func (x *NodeScanReq) GetRegexNodeID() string

func (*NodeScanReq) GetRegexParentID

func (x *NodeScanReq) GetRegexParentID() string

func (*NodeScanReq) GetRegexTags

func (x *NodeScanReq) GetRegexTags() string

func (*NodeScanReq) GetRegexTypeID

func (x *NodeScanReq) GetRegexTypeID() string

func (*NodeScanReq) GetSubscribe

func (x *NodeScanReq) GetSubscribe() bool

func (*NodeScanReq) GetTMax

func (x *NodeScanReq) GetTMax() float64

func (*NodeScanReq) GetTMin

func (x *NodeScanReq) GetTMin() float64

func (*NodeScanReq) ProtoMessage

func (*NodeScanReq) ProtoMessage()

func (*NodeScanReq) ProtoReflect

func (x *NodeScanReq) ProtoReflect() protoreflect.Message

func (*NodeScanReq) Reset

func (x *NodeScanReq) Reset()

func (*NodeScanReq) String

func (x *NodeScanReq) String() string

type RPCClient

type RPCClient interface {
	ChannelGenesis(ctx context.Context, in *ChannelGenesisReq, opts ...grpc.CallOption) (*TxInfo, error)
	ChangeUserPerms(ctx context.Context, in *ChangeUserPermsReq, opts ...grpc.CallOption) (*TxInfo, error)
	// NodeGet returns the node with the given ChURI, parent node ID, and node ID.
	// Assuming the given ChURI is valid for reading, an empty Node (Node.ID == nil) is returned if the parent or node ID does not exist.
	NodeGet(ctx context.Context, in *NodeGetReq, opts ...grpc.CallOption) (*Node, error)
	NodeScan(ctx context.Context, in *NodeScanReq, opts ...grpc.CallOption) (RPC_NodeScanClient, error)
	NodePut(ctx context.Context, in *NodePutReq, opts ...grpc.CallOption) (*TxInfo, error)
}

RPCClient is the client API for RPC service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewRPCClient

func NewRPCClient(cc grpc.ClientConnInterface) RPCClient

type RPCServer

type RPCServer interface {
	ChannelGenesis(context.Context, *ChannelGenesisReq) (*TxInfo, error)
	ChangeUserPerms(context.Context, *ChangeUserPermsReq) (*TxInfo, error)
	// NodeGet returns the node with the given ChURI, parent node ID, and node ID.
	// Assuming the given ChURI is valid for reading, an empty Node (Node.ID == nil) is returned if the parent or node ID does not exist.
	NodeGet(context.Context, *NodeGetReq) (*Node, error)
	NodeScan(*NodeScanReq, RPC_NodeScanServer) error
	NodePut(context.Context, *NodePutReq) (*TxInfo, error)
}

RPCServer is the server API for RPC service.

type RPC_NodeScanClient

type RPC_NodeScanClient interface {
	Recv() (*Node, error)
	grpc.ClientStream
}

type RPC_NodeScanServer

type RPC_NodeScanServer interface {
	Send(*Node) error
	grpc.ServerStream
}

type TxInfo

type TxInfo struct {
	StateURI string `protobuf:"bytes,1,opt,name=StateURI,proto3" json:"StateURI,omitempty"`
	TxID     []byte `protobuf:"bytes,2,opt,name=TxID,proto3" json:"TxID,omitempty"`
	// contains filtered or unexported fields
}

func (*TxInfo) Descriptor deprecated

func (*TxInfo) Descriptor() ([]byte, []int)

Deprecated: Use TxInfo.ProtoReflect.Descriptor instead.

func (*TxInfo) GetStateURI

func (x *TxInfo) GetStateURI() string

func (*TxInfo) GetTxID

func (x *TxInfo) GetTxID() []byte

func (*TxInfo) ProtoMessage

func (*TxInfo) ProtoMessage()

func (*TxInfo) ProtoReflect

func (x *TxInfo) ProtoReflect() protoreflect.Message

func (*TxInfo) Reset

func (x *TxInfo) Reset()

func (*TxInfo) String

func (x *TxInfo) String() string

type UnimplementedRPCServer

type UnimplementedRPCServer struct {
}

UnimplementedRPCServer can be embedded to have forward compatible implementations.

func (*UnimplementedRPCServer) ChangeUserPerms

func (*UnimplementedRPCServer) ChannelGenesis

func (*UnimplementedRPCServer) NodeGet

func (*UnimplementedRPCServer) NodePut

func (*UnimplementedRPCServer) NodeScan

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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