// RemoveDevAddrPrefix removes a DevAddrPrefix from the current component func (c *DefaultClient) RemoveDevAddrPrefix(prefix types.DevAddrPrefix) error { _, err := c.client.DeleteMetadata(c.getContext(""), &MetadataRequest{ ServiceName: c.self.ServiceName, Id: c.self.Id, Metadata: &Metadata{Metadata: &Metadata_DevAddrPrefix{ DevAddrPrefix: prefix.Bytes(), }}, }) return err }
// DevAddrPrefixes that are handled by this component func (a *Announcement) DevAddrPrefixes() (prefixes []types.DevAddrPrefix) { for _, meta := range a.Metadata { if prefixBytes := meta.GetDevAddrPrefix(); prefixBytes != nil { prefix := new(types.DevAddrPrefix) if err := prefix.Unmarshal(prefixBytes); err != nil { continue } prefixes = append(prefixes, *prefix) } } return }