• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The Pigweed Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 
15 package dev.pigweed.pw_rpc;
16 
17 import com.google.auto.value.AutoValue;
18 import java.util.Locale;
19 
20 /**
21  * Represents a potential RPC invocation: channel ID, service, and method.
22  */
23 @AutoValue
24 public abstract class RpcKey {
create(int channelId, Method method)25   static RpcKey create(int channelId, Method method) {
26     return new AutoValue_RpcKey(channelId, method);
27   }
28 
channelId()29   public abstract int channelId();
30 
service()31   public final Service service() {
32     return method().service();
33   }
34 
method()35   public abstract Method method();
36 
37   @Override
toString()38   public final String toString() {
39     return String.format(Locale.ENGLISH, "RpcKey[%s|channel=%d]", method(), channelId());
40   }
41 }
42