pkg discovery, func NewAdId() (AdId, error)
pkg discovery, func ParseAdId(string) (AdId, error)
pkg discovery, method (*AdId) VDLRead(vdl.Decoder) error
pkg discovery, method (*Advertisement) VDLRead(vdl.Decoder) error
pkg discovery, method (*Attachments) VDLRead(vdl.Decoder) error
pkg discovery, method (*Attributes) VDLRead(vdl.Decoder) error
pkg discovery, method (AdId) IsValid() bool
pkg discovery, method (AdId) String() string
pkg discovery, method (AdId) VDLIsZero() bool
pkg discovery, method (AdId) VDLWrite(vdl.Encoder) error
pkg discovery, method (Advertisement) VDLIsZero() bool
pkg discovery, method (Advertisement) VDLWrite(vdl.Encoder) error
pkg discovery, method (Attachments) VDLIsZero() bool
pkg discovery, method (Attachments) VDLWrite(vdl.Encoder) error
pkg discovery, method (Attributes) VDLIsZero() bool
pkg discovery, method (Attributes) VDLWrite(vdl.Encoder) error
pkg discovery, type AdId [16]byte
pkg discovery, type Advertisement struct
pkg discovery, type Advertisement struct, Addresses []string
pkg discovery, type Advertisement struct, Attachments Attachments
pkg discovery, type Advertisement struct, Attributes Attributes
pkg discovery, type Advertisement struct, Id AdId
pkg discovery, type Advertisement struct, InterfaceName string
pkg discovery, type Attachments map[string][]byte
pkg discovery, type Attributes map[string]string
pkg discovery, type DataOrError struct
pkg discovery, type DataOrError struct, Data []byte
pkg discovery, type DataOrError struct, Error error
pkg discovery, type T interface { Advertise, Scan }
pkg discovery, type T interface, Advertise(*context.T, *Advertisement, []security.BlessingPattern) (<-chan struct{}, error)
pkg discovery, type T interface, Scan(*context.T, string) (<-chan Update, error)
pkg discovery, type Update interface { Addresses, Advertisement, Attachment, Attribute, Id, InterfaceName, IsLost }
pkg discovery, type Update interface, Addresses() []string
pkg discovery, type Update interface, Advertisement() Advertisement
pkg discovery, type Update interface, Attachment(*context.T, string) <-chan DataOrError
pkg discovery, type Update interface, Attribute(string) string
pkg discovery, type Update interface, Id() AdId
pkg discovery, type Update interface, InterfaceName() string
pkg discovery, type Update interface, IsLost() bool
