| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | /* * EliasDB * * Copyright 2016 Matthias Ladkau. All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */package managerimport (	"errors"	"fmt"	"log")// Logging// =======/*Logger is a function which processes log messages from the cluster*/type Logger func(v ...interface{})/*LogInfo is called if an info message is logged in the cluster code*/var LogInfo = Logger(log.Print)/*LogDebug is called if a debug message is logged in the cluster code(by default disabled)*/var LogDebug = Logger(LogNull)/*LogNull is a discarding logger to be used for disabling loggers*/var LogNull = func(v ...interface{}) {}// Errors// ======/*Error is a cluster related error*/type Error struct {	Type   error  // Error type (to be used for equal checks)	Detail string // Details of this error}/*Error returns a human-readable string representation of this error.*/func (ge *Error) Error() string {	if ge.Detail != "" {		return fmt.Sprintf("ClusterError: %v (%v)", ge.Type, ge.Detail)	}	return fmt.Sprintf("ClusterError: %v", ge.Type)}/*Cluster related error types*/var (	ErrMemberComm    = errors.New("Network error")	ErrMemberError   = errors.New("Member error")	ErrClusterConfig = errors.New("Cluster configuration error")	ErrClusterState  = errors.New("Cluster state error")	ErrUnknownPeer   = errors.New("Unknown peer member")	ErrUnknownTarget = errors.New("Unknown target member")	ErrInvalidToken  = errors.New("Invalid member token")	ErrNotMember     = errors.New("Client is not a cluster member")	ErrLockTaken     = errors.New("Requested lock is already taken")	ErrLockNotOwned  = errors.New("Requested lock not owned"))
 |