blob: f4c1c8b689474b7d08df8f63ffd2b34c6e393727 [file] [log] [blame]
Scott Bakereee8dd82019-09-24 12:52:34 -07001/*
2 *
3 * Copyright 2014 gRPC authors.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18
19// Package naming defines the naming API and related data structures for gRPC.
Scott Bakereee8dd82019-09-24 12:52:34 -070020//
Scott Baker611f6bd2019-10-18 13:45:19 -070021// This package is deprecated: please use package resolver instead.
Scott Bakereee8dd82019-09-24 12:52:34 -070022package naming
23
24// Operation defines the corresponding operations for a name resolution change.
25//
26// Deprecated: please use package resolver.
27type Operation uint8
28
29const (
30 // Add indicates a new address is added.
31 Add Operation = iota
32 // Delete indicates an existing address is deleted.
33 Delete
34)
35
36// Update defines a name resolution update. Notice that it is not valid having both
37// empty string Addr and nil Metadata in an Update.
38//
39// Deprecated: please use package resolver.
40type Update struct {
41 // Op indicates the operation of the update.
42 Op Operation
43 // Addr is the updated address. It is empty string if there is no address update.
44 Addr string
45 // Metadata is the updated metadata. It is nil if there is no metadata update.
46 // Metadata is not required for a custom naming implementation.
47 Metadata interface{}
48}
49
50// Resolver creates a Watcher for a target to track its resolution changes.
51//
52// Deprecated: please use package resolver.
53type Resolver interface {
54 // Resolve creates a Watcher for target.
55 Resolve(target string) (Watcher, error)
56}
57
58// Watcher watches for the updates on the specified target.
59//
60// Deprecated: please use package resolver.
61type Watcher interface {
62 // Next blocks until an update or error happens. It may return one or more
63 // updates. The first call should get the full set of the results. It should
64 // return an error if and only if Watcher cannot recover.
65 Next() ([]*Update, error)
66 // Close closes the Watcher.
67 Close()
68}