• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018, gRPC Authors All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package io.grpc;
18 
19 import java.io.Closeable;
20 
21 /**
22  * A binary log that can be installed on a channel or server. {@link #close} must be called after
23  * all the servers and channels associated with the binary log are terminated.
24  */
25 @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017")
26 public abstract class BinaryLog implements Closeable {
27 
wrapMethodDefinition( ServerMethodDefinition<ReqT, RespT> oMethodDef)28   public abstract <ReqT, RespT> ServerMethodDefinition<?, ?> wrapMethodDefinition(
29       ServerMethodDefinition<ReqT, RespT> oMethodDef);
30 
wrapChannel(Channel channel)31   public abstract Channel wrapChannel(Channel channel);
32 
33   /**
34    * A CallId is two byte[] arrays both of size 8 that uniquely identifies the RPC. Users are
35    * free to use the byte arrays however they see fit.
36    */
37   public static final class CallId {
38     public final long hi;
39     public final long lo;
40 
41     /**
42      * Creates an instance.
43      */
CallId(long hi, long lo)44     public CallId(long hi, long lo) {
45       this.hi = hi;
46       this.lo = lo;
47     }
48   }
49 }
50