blob: e351afc1783cb68ae6d959ff6f4859428c7e2bf2 [file] [log] [blame]
// Copyright 2016 The Upspin Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package unassigned implements a store server that errors out all its requests.
package unassigned // import "upspin.io/store/unassigned"
import (
"upspin.io/bind"
"upspin.io/errors"
"upspin.io/upspin"
)
// Server implements upspin.StoreServer.
type Server struct {
endpoint upspin.Endpoint
}
var _ upspin.StoreServer = Server{}
var unassignedErr = errors.Str("request to unassigned service")
// Get implements upspin.StoreServer.Get.
func (Server) Get(ref upspin.Reference) ([]byte, *upspin.Refdata, []upspin.Location, error) {
const op errors.Op = "store/Server.Get"
return nil, nil, nil, errors.E(op, errors.Invalid, unassignedErr)
}
// Put implements upspin.StoreServer.Put.
func (Server) Put(data []byte) (*upspin.Refdata, error) {
const op errors.Op = "store/Server.Put"
return nil, errors.E(op, errors.Invalid, unassignedErr)
}
// Delete implements upspin.StoreServer.Delete.
func (Server) Delete(ref upspin.Reference) error {
const op errors.Op = "store/Server.Delete"
return errors.E(op, errors.Invalid, unassignedErr)
}
// Endpoint implements upspin.Service.
func (u Server) Endpoint() upspin.Endpoint {
return u.endpoint
}
// Close implements upspin.Service.
func (Server) Close() {
}
// Dial implements upspin.Service.
func (Server) Dial(config upspin.Config, e upspin.Endpoint) (upspin.Service, error) {
const op errors.Op = "store/Server.Dial"
if e.Transport != upspin.Unassigned {
return nil, errors.E(op, errors.Invalid, "unrecognized transport")
}
return Server{e}, nil
}
const transport = upspin.Unassigned
func init() {
bind.RegisterStoreServer(transport, Server{})
}