Skip to content
Snippets Groups Projects
metadata.go 1.79 KiB
Newer Older
// Copyright 2022 Matrix Origin
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package metadata

import (
)

// IsEmpty return true if is a empty DNShard
func (m DNShard) IsEmpty() bool {
	return m.ShardID == 0
}

// Equal returns true if DNShard is same
func (m DNShard) Equal(dn DNShard) bool {
	return m.ShardID == dn.ShardID && m.ReplicaID == dn.ReplicaID
}

// DebugString returns debug string
func (m DNShard) DebugString() string {
fagongzi's avatar
fagongzi committed
	return fmt.Sprintf("%d-%d-%d-%s", m.ShardID, m.ReplicaID, m.LogShardID, m.Address)

// DebugString returns debug string
func (m DNStore) DebugString() string {
	n := len(m.Shards)
	var buf bytes.Buffer
	buf.WriteString(m.UUID)
	buf.WriteString("/")
	buf.WriteString(fmt.Sprintf("%d", len(m.Shards)))
	buf.WriteString(" DNShards[")
	for idx, shard := range m.Shards {
		buf.WriteString(shard.DebugString())
		if idx < n-1 {
			buf.WriteString(", ")
		}
	}
	buf.WriteString("]")
	return buf.String()
}

// DebugString returns debug string
func (m CNStore) DebugString() string {
	return fmt.Sprintf("%s/%s", m.UUID, m.Role.String())
}

// MustParseCNRole parse CN Role from role string
func MustParseCNRole(role string) CNRole {
	if v, ok := CNRole_value[strings.ToUpper(role)]; ok {
		return CNRole(v)
	}
	panic(fmt.Sprintf("invalid CN Role %s", role))
}