cubefs

Форк
0
56 строк · 2.1 Кб
1
/*
2
 *
3
 * Copyright 2016 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 tap defines the function handles which are executed on the transport
20
// layer of gRPC-Go and related information.
21
//
22
// Experimental
23
//
24
// Notice: This API is EXPERIMENTAL and may be changed or removed in a
25
// later release.
26
package tap
27

28
import (
29
	"context"
30
)
31

32
// Info defines the relevant information needed by the handles.
33
type Info struct {
34
	// FullMethodName is the string of grpc method (in the format of
35
	// /package.service/method).
36
	FullMethodName string
37
	// TODO: More to be added.
38
}
39

40
// ServerInHandle defines the function which runs before a new stream is created
41
// on the server side. If it returns a non-nil error, the stream will not be
42
// created and a RST_STREAM will be sent back to the client with REFUSED_STREAM.
43
// The client will receive an RPC error "code = Unavailable, desc = stream
44
// terminated by RST_STREAM with error code: REFUSED_STREAM".
45
//
46
// It's intended to be used in situations where you don't want to waste the
47
// resources to accept the new stream (e.g. rate-limiting). And the content of
48
// the error will be ignored and won't be sent back to the client. For other
49
// general usages, please use interceptors.
50
//
51
// Note that it is executed in the per-connection I/O goroutine(s) instead of
52
// per-RPC goroutine. Therefore, users should NOT have any
53
// blocking/time-consuming work in this handle. Otherwise all the RPCs would
54
// slow down. Also, for the same reason, this handle won't be called
55
// concurrently by gRPC.
56
type ServerInHandle func(ctx context.Context, info *Info) (context.Context, error)
57

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.