Example #1
0
// 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
}
Example #2
0
// 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
}