// Copyright 2015 The Vanadium 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 manager

// These messages are constructed so as to avoid embedding a component/method name
// and are thus more suitable for inclusion in other verrors.
// This practice of omitting {1}{2} should be used throughout the flow implementations
// since all of their errors are intended to be used as arguments to higher level errors.
// TODO(suharshs,toddw): Allow skipping of {1}{2} in vdl generated errors.
error (
  UnknownProtocol(protocol string) {"en":"unknown protocol{:protocol}"}
  ManagerClosed() {"en": "manager is already closed"}
  AcceptFailed(err error) {"en": "accept failed{:err}"}
  CacheClosed() {"en":"cache is closed"}
  ConnKilledToFreeResources() {"en": "Connection killed to free resources."}
  InvalidProxyResponse(typ string) {"en": "Invalid proxy response{:typ}"}
  ManagerDialingSelf() {"en": "manager cannot be used to dial itself"}
  ListeningWithNullRid() {"en": "manager cannot listen when created with NullRoutingID"}
)
