blob: 1a0db15949d1d8f69c70e022dceaf12a46aeeba6 [file] [log] [blame]
ejonaba71ee92014-08-14 14:17:13 -07001package com.google.net.stubby;
2
ejona34aede32014-08-18 14:30:24 -07003import com.google.net.stubby.ServerMethodDefinition;
4import com.google.net.stubby.ServerServiceDefinition;
ejonaba71ee92014-08-14 14:17:13 -07005
6import javax.annotation.Nullable;
7import javax.annotation.concurrent.ThreadSafe;
8
9/** Registry of services and their methods for dispatching incoming calls. */
10@ThreadSafe
11public abstract class HandlerRegistry {
12 /** Lookup full method name, starting with '/'. Returns {@code null} if method not found. */
13 @Nullable
14 public abstract Method lookupMethod(String methodName);
15
16 /** A method definition and its parent's service definition. */
17 public static final class Method {
ejona34aede32014-08-18 14:30:24 -070018 private final ServerServiceDefinition serviceDef;
19 private final ServerMethodDefinition methodDef;
ejonaba71ee92014-08-14 14:17:13 -070020
ejona34aede32014-08-18 14:30:24 -070021 public Method(ServerServiceDefinition serviceDef, ServerMethodDefinition methodDef) {
ejonaba71ee92014-08-14 14:17:13 -070022 this.serviceDef = serviceDef;
23 this.methodDef = methodDef;
24 }
25
ejona34aede32014-08-18 14:30:24 -070026 public ServerServiceDefinition getServiceDefinition() {
ejonaba71ee92014-08-14 14:17:13 -070027 return serviceDef;
28 }
29
ejona34aede32014-08-18 14:30:24 -070030 public ServerMethodDefinition getMethodDefinition() {
ejonaba71ee92014-08-14 14:17:13 -070031 return methodDef;
32 }
33 }
34}