Documentation ¶
Index ¶
- Variables
- func RegisterBackendServer(s grpc.ServiceRegistrar, srv BackendServer)
- func RegisterForkResolverServer(s grpc.ServiceRegistrar, srv ForkResolverServer)
- func RegisterRouterServer(s grpc.ServiceRegistrar, srv RouterServer)
- type BackendClient
- type BackendRequest
- func (*BackendRequest) Descriptor() ([]byte, []int)deprecated
- func (x *BackendRequest) GetDescending() bool
- func (x *BackendRequest) GetHighBlockNum() uint64
- func (x *BackendRequest) GetLiveMarkerInterval() uint64
- func (x *BackendRequest) GetLowBlockNum() uint64
- func (x *BackendRequest) GetNavigateFromBlockID() string
- func (x *BackendRequest) GetNavigateFromBlockNum() uint64
- func (x *BackendRequest) GetQuery() string
- func (x *BackendRequest) GetStopAtVirtualHead() bool
- func (x *BackendRequest) GetWithReversible() bool
- func (*BackendRequest) ProtoMessage()
- func (x *BackendRequest) ProtoReflect() protoreflect.Message
- func (x *BackendRequest) Reset()
- func (x *BackendRequest) String() string
- type BackendServer
- type Backend_StreamMatchesClient
- type Backend_StreamMatchesServer
- type BlockRef
- type ForkResolveRequest
- func (*ForkResolveRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ForkResolveRequest) GetForkedBlockRefs() []*BlockRef
- func (x *ForkResolveRequest) GetQuery() string
- func (*ForkResolveRequest) ProtoMessage()
- func (x *ForkResolveRequest) ProtoReflect() protoreflect.Message
- func (x *ForkResolveRequest) Reset()
- func (x *ForkResolveRequest) String() string
- type ForkResolverClient
- type ForkResolverServer
- type ForkResolver_StreamUndoMatchesClient
- type ForkResolver_StreamUndoMatchesServer
- type RouterClient
- type RouterRequest
- func (*RouterRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RouterRequest) GetBlockCount() uint64
- func (x *RouterRequest) GetCursor() string
- func (x *RouterRequest) GetDescending() bool
- func (x *RouterRequest) GetHighBlockNum() int64
- func (x *RouterRequest) GetHighBlockUnbounded() bool
- func (x *RouterRequest) GetLimit() int64
- func (x *RouterRequest) GetLiveMarkerInterval() uint64
- func (x *RouterRequest) GetLowBlockNum() int64
- func (x *RouterRequest) GetLowBlockUnbounded() bool
- func (x *RouterRequest) GetMode() RouterRequest_Mode
- func (x *RouterRequest) GetQuery() string
- func (x *RouterRequest) GetStartBlock() uint64
- func (x *RouterRequest) GetUseLegacyBoundaries() bool
- func (x *RouterRequest) GetWithReversible() bool
- func (*RouterRequest) ProtoMessage()
- func (x *RouterRequest) ProtoReflect() protoreflect.Message
- func (x *RouterRequest) Reset()
- func (x *RouterRequest) String() string
- type RouterRequest_Mode
- func (RouterRequest_Mode) Descriptor() protoreflect.EnumDescriptor
- func (x RouterRequest_Mode) Enum() *RouterRequest_Mode
- func (RouterRequest_Mode) EnumDescriptor() ([]byte, []int)deprecated
- func (x RouterRequest_Mode) Number() protoreflect.EnumNumber
- func (x RouterRequest_Mode) String() string
- func (RouterRequest_Mode) Type() protoreflect.EnumType
- type RouterServer
- type Router_StreamMatchesClient
- type Router_StreamMatchesServer
- type SearchMatch
- func (*SearchMatch) Descriptor() ([]byte, []int)deprecated
- func (x *SearchMatch) GetBlockNum() uint64
- func (x *SearchMatch) GetChainSpecific() *anypb.Any
- func (x *SearchMatch) GetCursor() string
- func (x *SearchMatch) GetIndex() uint64
- func (x *SearchMatch) GetIrrBlockNum() uint64
- func (x *SearchMatch) GetTrxIdPrefix() string
- func (x *SearchMatch) GetUndo() bool
- func (*SearchMatch) ProtoMessage()
- func (x *SearchMatch) ProtoReflect() protoreflect.Message
- func (x *SearchMatch) Reset()
- func (x *SearchMatch) String() string
- type TestRouterClient
- type TestStreamMatchesClient
- type UnimplementedBackendServer
- type UnimplementedForkResolverServer
- type UnimplementedRouterServer
- type UnsafeBackendServer
- type UnsafeForkResolverServer
- type UnsafeRouterServer
Constants ¶
This section is empty.
Variables ¶
var ( RouterRequest_Mode_name = map[int32]string{ 0: "STREAMING", 1: "PAGINATED", } RouterRequest_Mode_value = map[string]int32{ "STREAMING": 0, "PAGINATED": 1, } )
Enum value maps for RouterRequest_Mode.
var Backend_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sf.search.v1.Backend", HandlerType: (*BackendServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "StreamMatches", Handler: _Backend_StreamMatches_Handler, ServerStreams: true, }, }, Metadata: "sf/search/v1/search.proto", }
Backend_ServiceDesc is the grpc.ServiceDesc for Backend service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_sf_search_v1_search_proto protoreflect.FileDescriptor
var ForkResolver_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sf.search.v1.ForkResolver", HandlerType: (*ForkResolverServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "StreamUndoMatches", Handler: _ForkResolver_StreamUndoMatches_Handler, ServerStreams: true, }, }, Metadata: "sf/search/v1/search.proto", }
ForkResolver_ServiceDesc is the grpc.ServiceDesc for ForkResolver service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var Router_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sf.search.v1.Router", HandlerType: (*RouterServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "StreamMatches", Handler: _Router_StreamMatches_Handler, ServerStreams: true, }, }, Metadata: "sf/search/v1/search.proto", }
Router_ServiceDesc is the grpc.ServiceDesc for Router service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterBackendServer ¶
func RegisterBackendServer(s grpc.ServiceRegistrar, srv BackendServer)
func RegisterForkResolverServer ¶
func RegisterForkResolverServer(s grpc.ServiceRegistrar, srv ForkResolverServer)
func RegisterRouterServer ¶
func RegisterRouterServer(s grpc.ServiceRegistrar, srv RouterServer)
Types ¶
type BackendClient ¶
type BackendClient interface {
StreamMatches(ctx context.Context, in *BackendRequest, opts ...grpc.CallOption) (Backend_StreamMatchesClient, error)
}
BackendClient is the client API for Backend service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewBackendClient ¶
func NewBackendClient(cc grpc.ClientConnInterface) BackendClient
type BackendRequest ¶
type BackendRequest struct { Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` LowBlockNum uint64 `protobuf:"varint,2,opt,name=lowBlockNum,proto3" json:"lowBlockNum,omitempty"` // Inclusive HighBlockNum uint64 `protobuf:"varint,3,opt,name=highBlockNum,proto3" json:"highBlockNum,omitempty"` // Inclusive Descending bool `protobuf:"varint,4,opt,name=descending,proto3" json:"descending,omitempty"` // More specific to the live / reversible backend WithReversible bool `protobuf:"varint,5,opt,name=withReversible,proto3" json:"withReversible,omitempty"` // Fails on Archive LiveMarkerInterval uint64 `protobuf:"varint,6,opt,name=liveMarkerInterval,proto3" json:"liveMarkerInterval,omitempty"` // in blocks StopAtVirtualHead bool `protobuf:"varint,7,opt,name=stopAtVirtualHead,proto3" json:"stopAtVirtualHead,omitempty"` // contains filtered or unexported fields }
func (*BackendRequest) Descriptor
deprecated
func (*BackendRequest) Descriptor() ([]byte, []int)
Deprecated: Use BackendRequest.ProtoReflect.Descriptor instead.
func (*BackendRequest) GetDescending ¶
func (x *BackendRequest) GetDescending() bool
func (*BackendRequest) GetHighBlockNum ¶
func (x *BackendRequest) GetHighBlockNum() uint64
func (*BackendRequest) GetLiveMarkerInterval ¶
func (x *BackendRequest) GetLiveMarkerInterval() uint64
func (*BackendRequest) GetLowBlockNum ¶
func (x *BackendRequest) GetLowBlockNum() uint64
func (*BackendRequest) GetNavigateFromBlockID ¶
func (x *BackendRequest) GetNavigateFromBlockID() string
func (*BackendRequest) GetNavigateFromBlockNum ¶
func (x *BackendRequest) GetNavigateFromBlockNum() uint64
func (*BackendRequest) GetQuery ¶
func (x *BackendRequest) GetQuery() string
func (*BackendRequest) GetStopAtVirtualHead ¶
func (x *BackendRequest) GetStopAtVirtualHead() bool
func (*BackendRequest) GetWithReversible ¶
func (x *BackendRequest) GetWithReversible() bool
func (*BackendRequest) ProtoMessage ¶
func (*BackendRequest) ProtoMessage()
func (*BackendRequest) ProtoReflect ¶
func (x *BackendRequest) ProtoReflect() protoreflect.Message
func (*BackendRequest) Reset ¶
func (x *BackendRequest) Reset()
func (*BackendRequest) String ¶
func (x *BackendRequest) String() string
type BackendServer ¶
type BackendServer interface {
StreamMatches(*BackendRequest, Backend_StreamMatchesServer) error
}
BackendServer is the server API for Backend service. All implementations should embed UnimplementedBackendServer for forward compatibility
type Backend_StreamMatchesClient ¶
type Backend_StreamMatchesClient interface { Recv() (*SearchMatch, error) grpc.ClientStream }
type Backend_StreamMatchesServer ¶
type Backend_StreamMatchesServer interface { Send(*SearchMatch) error grpc.ServerStream }
type BlockRef ¶
type BlockRef struct { BlockNum uint64 `protobuf:"varint,1,opt,name=blockNum,proto3" json:"blockNum,omitempty"` BlockID string `protobuf:"bytes,2,opt,name=blockID,proto3" json:"blockID,omitempty"` // contains filtered or unexported fields }
func (*BlockRef) Descriptor
deprecated
func (*BlockRef) GetBlockID ¶
func (*BlockRef) GetBlockNum ¶
func (*BlockRef) ProtoMessage ¶
func (*BlockRef) ProtoMessage()
func (*BlockRef) ProtoReflect ¶
func (x *BlockRef) ProtoReflect() protoreflect.Message
type ForkResolveRequest ¶
type ForkResolveRequest struct { Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` ForkedBlockRefs []*BlockRef `protobuf:"bytes,2,rep,name=forkedBlockRefs,proto3" json:"forkedBlockRefs,omitempty"` // contains filtered or unexported fields }
func (*ForkResolveRequest) Descriptor
deprecated
func (*ForkResolveRequest) Descriptor() ([]byte, []int)
Deprecated: Use ForkResolveRequest.ProtoReflect.Descriptor instead.
func (*ForkResolveRequest) GetForkedBlockRefs ¶
func (x *ForkResolveRequest) GetForkedBlockRefs() []*BlockRef
func (*ForkResolveRequest) GetQuery ¶
func (x *ForkResolveRequest) GetQuery() string
func (*ForkResolveRequest) ProtoMessage ¶
func (*ForkResolveRequest) ProtoMessage()
func (*ForkResolveRequest) ProtoReflect ¶
func (x *ForkResolveRequest) ProtoReflect() protoreflect.Message
func (*ForkResolveRequest) Reset ¶
func (x *ForkResolveRequest) Reset()
func (*ForkResolveRequest) String ¶
func (x *ForkResolveRequest) String() string
type ForkResolverClient ¶
type ForkResolverClient interface {
StreamUndoMatches(ctx context.Context, in *ForkResolveRequest, opts ...grpc.CallOption) (ForkResolver_StreamUndoMatchesClient, error)
}
ForkResolverClient is the client API for ForkResolver service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewForkResolverClient ¶
func NewForkResolverClient(cc grpc.ClientConnInterface) ForkResolverClient
type ForkResolverServer ¶
type ForkResolverServer interface {
StreamUndoMatches(*ForkResolveRequest, ForkResolver_StreamUndoMatchesServer) error
}
ForkResolverServer is the server API for ForkResolver service. All implementations should embed UnimplementedForkResolverServer for forward compatibility
type ForkResolver_StreamUndoMatchesClient ¶
type ForkResolver_StreamUndoMatchesClient interface { Recv() (*SearchMatch, error) grpc.ClientStream }
type ForkResolver_StreamUndoMatchesServer ¶
type ForkResolver_StreamUndoMatchesServer interface { Send(*SearchMatch) error grpc.ServerStream }
type RouterClient ¶
type RouterClient interface {
StreamMatches(ctx context.Context, in *RouterRequest, opts ...grpc.CallOption) (Router_StreamMatchesClient, error)
}
RouterClient is the client API for Router service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewRouterClient ¶
func NewRouterClient(cc grpc.ClientConnInterface) RouterClient
type RouterRequest ¶
type RouterRequest struct { Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` LowBlockNum int64 `protobuf:"varint,2,opt,name=lowBlockNum,proto3" json:"lowBlockNum,omitempty"` // Inclusive HighBlockNum int64 `protobuf:"varint,3,opt,name=highBlockNum,proto3" json:"highBlockNum,omitempty"` // Inclusive LowBlockUnbounded bool `protobuf:"varint,13,opt,name=lowBlockUnbounded,proto3" json:"lowBlockUnbounded,omitempty"` HighBlockUnbounded bool `protobuf:"varint,14,opt,name=highBlockUnbounded,proto3" json:"highBlockUnbounded,omitempty"` Descending bool `protobuf:"varint,4,opt,name=descending,proto3" json:"descending,omitempty"` Cursor string `protobuf:"bytes,5,opt,name=cursor,proto3" json:"cursor,omitempty"` Limit int64 `protobuf:"varint,6,opt,name=limit,proto3" json:"limit,omitempty"` WithReversible bool `protobuf:"varint,7,opt,name=withReversible,proto3" json:"withReversible,omitempty"` // Fails on Archive Mode RouterRequest_Mode `protobuf:"varint,8,opt,name=mode,proto3,enum=sf.search.v1.RouterRequest_Mode" json:"mode,omitempty"` // Legacy boundaries, overrides `lowBlockNum` and `highBlockNum`. UseLegacyBoundaries bool `protobuf:"varint,9,opt,name=useLegacyBoundaries,proto3" json:"useLegacyBoundaries,omitempty"` StartBlock uint64 `protobuf:"varint,10,opt,name=startBlock,proto3" json:"startBlock,omitempty"` BlockCount uint64 `protobuf:"varint,11,opt,name=blockCount,proto3" json:"blockCount,omitempty"` LiveMarkerInterval uint64 `protobuf:"varint,12,opt,name=liveMarkerInterval,proto3" json:"liveMarkerInterval,omitempty"` // in blocks // contains filtered or unexported fields }
func (*RouterRequest) Descriptor
deprecated
func (*RouterRequest) Descriptor() ([]byte, []int)
Deprecated: Use RouterRequest.ProtoReflect.Descriptor instead.
func (*RouterRequest) GetBlockCount ¶
func (x *RouterRequest) GetBlockCount() uint64
func (*RouterRequest) GetCursor ¶
func (x *RouterRequest) GetCursor() string
func (*RouterRequest) GetDescending ¶
func (x *RouterRequest) GetDescending() bool
func (*RouterRequest) GetHighBlockNum ¶
func (x *RouterRequest) GetHighBlockNum() int64
func (*RouterRequest) GetHighBlockUnbounded ¶
func (x *RouterRequest) GetHighBlockUnbounded() bool
func (*RouterRequest) GetLimit ¶
func (x *RouterRequest) GetLimit() int64
func (*RouterRequest) GetLiveMarkerInterval ¶
func (x *RouterRequest) GetLiveMarkerInterval() uint64
func (*RouterRequest) GetLowBlockNum ¶
func (x *RouterRequest) GetLowBlockNum() int64
func (*RouterRequest) GetLowBlockUnbounded ¶
func (x *RouterRequest) GetLowBlockUnbounded() bool
func (*RouterRequest) GetMode ¶
func (x *RouterRequest) GetMode() RouterRequest_Mode
func (*RouterRequest) GetQuery ¶
func (x *RouterRequest) GetQuery() string
func (*RouterRequest) GetStartBlock ¶
func (x *RouterRequest) GetStartBlock() uint64
func (*RouterRequest) GetUseLegacyBoundaries ¶
func (x *RouterRequest) GetUseLegacyBoundaries() bool
func (*RouterRequest) GetWithReversible ¶
func (x *RouterRequest) GetWithReversible() bool
func (*RouterRequest) ProtoMessage ¶
func (*RouterRequest) ProtoMessage()
func (*RouterRequest) ProtoReflect ¶
func (x *RouterRequest) ProtoReflect() protoreflect.Message
func (*RouterRequest) Reset ¶
func (x *RouterRequest) Reset()
func (*RouterRequest) String ¶
func (x *RouterRequest) String() string
type RouterRequest_Mode ¶
type RouterRequest_Mode int32
const ( RouterRequest_STREAMING RouterRequest_Mode = 0 RouterRequest_PAGINATED RouterRequest_Mode = 1 )
func (RouterRequest_Mode) Descriptor ¶
func (RouterRequest_Mode) Descriptor() protoreflect.EnumDescriptor
func (RouterRequest_Mode) Enum ¶
func (x RouterRequest_Mode) Enum() *RouterRequest_Mode
func (RouterRequest_Mode) EnumDescriptor
deprecated
func (RouterRequest_Mode) EnumDescriptor() ([]byte, []int)
Deprecated: Use RouterRequest_Mode.Descriptor instead.
func (RouterRequest_Mode) Number ¶
func (x RouterRequest_Mode) Number() protoreflect.EnumNumber
func (RouterRequest_Mode) String ¶
func (x RouterRequest_Mode) String() string
func (RouterRequest_Mode) Type ¶
func (RouterRequest_Mode) Type() protoreflect.EnumType
type RouterServer ¶
type RouterServer interface {
StreamMatches(*RouterRequest, Router_StreamMatchesServer) error
}
RouterServer is the server API for Router service. All implementations should embed UnimplementedRouterServer for forward compatibility
type Router_StreamMatchesClient ¶
type Router_StreamMatchesClient interface { Recv() (*SearchMatch, error) grpc.ClientStream }
type Router_StreamMatchesServer ¶
type Router_StreamMatchesServer interface { Send(*SearchMatch) error grpc.ServerStream }
type SearchMatch ¶
type SearchMatch struct { TrxIdPrefix string `protobuf:"bytes,1,opt,name=trxIdPrefix,proto3" json:"trxIdPrefix,omitempty"` BlockNum uint64 `protobuf:"varint,2,opt,name=blockNum,proto3" json:"blockNum,omitempty"` Index uint64 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"` // Holds chain specific Protobuf message, this usually contains informations about how the // document are indexed (for example at the action level on EOSIO). Check out chain specific // repository for exact possible message. ChainSpecific *anypb.Any `protobuf:"bytes,13,opt,name=chainSpecific,proto3" json:"chainSpecific,omitempty"` Undo bool `protobuf:"varint,25,opt,name=undo,proto3" json:"undo,omitempty"` IrrBlockNum uint64 `protobuf:"varint,26,opt,name=irrBlockNum,proto3" json:"irrBlockNum,omitempty"` // contains filtered or unexported fields }
func (*SearchMatch) Descriptor
deprecated
func (*SearchMatch) Descriptor() ([]byte, []int)
Deprecated: Use SearchMatch.ProtoReflect.Descriptor instead.
func (*SearchMatch) GetBlockNum ¶
func (x *SearchMatch) GetBlockNum() uint64
func (*SearchMatch) GetChainSpecific ¶
func (x *SearchMatch) GetChainSpecific() *anypb.Any
func (*SearchMatch) GetCursor ¶
func (x *SearchMatch) GetCursor() string
func (*SearchMatch) GetIndex ¶
func (x *SearchMatch) GetIndex() uint64
func (*SearchMatch) GetIrrBlockNum ¶
func (x *SearchMatch) GetIrrBlockNum() uint64
func (*SearchMatch) GetTrxIdPrefix ¶
func (x *SearchMatch) GetTrxIdPrefix() string
func (*SearchMatch) GetUndo ¶
func (x *SearchMatch) GetUndo() bool
func (*SearchMatch) ProtoMessage ¶
func (*SearchMatch) ProtoMessage()
func (*SearchMatch) ProtoReflect ¶
func (x *SearchMatch) ProtoReflect() protoreflect.Message
func (*SearchMatch) Reset ¶
func (x *SearchMatch) Reset()
func (*SearchMatch) String ¶
func (x *SearchMatch) String() string
type TestRouterClient ¶
type TestRouterClient struct {
// contains filtered or unexported fields
}
func NewTestRouterClient ¶
func NewTestRouterClient(elements []interface{}) *TestRouterClient
func (*TestRouterClient) StreamMatches ¶
func (c *TestRouterClient) StreamMatches(ctx context.Context, in *RouterRequest, opts ...grpc.CallOption) (Router_StreamMatchesClient, error)
type TestStreamMatchesClient ¶
type TestStreamMatchesClient struct { grpc.ClientStream // contains filtered or unexported fields }
func (*TestStreamMatchesClient) Recv ¶
func (c *TestStreamMatchesClient) Recv() (*SearchMatch, error)
type UnimplementedBackendServer ¶
type UnimplementedBackendServer struct { }
UnimplementedBackendServer should be embedded to have forward compatible implementations.
func (UnimplementedBackendServer) StreamMatches ¶
func (UnimplementedBackendServer) StreamMatches(*BackendRequest, Backend_StreamMatchesServer) error
type UnimplementedForkResolverServer ¶
type UnimplementedForkResolverServer struct { }
UnimplementedForkResolverServer should be embedded to have forward compatible implementations.
func (UnimplementedForkResolverServer) StreamUndoMatches ¶
func (UnimplementedForkResolverServer) StreamUndoMatches(*ForkResolveRequest, ForkResolver_StreamUndoMatchesServer) error
type UnimplementedRouterServer ¶
type UnimplementedRouterServer struct { }
UnimplementedRouterServer should be embedded to have forward compatible implementations.
func (UnimplementedRouterServer) StreamMatches ¶
func (UnimplementedRouterServer) StreamMatches(*RouterRequest, Router_StreamMatchesServer) error
type UnsafeBackendServer ¶
type UnsafeBackendServer interface {
// contains filtered or unexported methods
}
UnsafeBackendServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BackendServer will result in compilation errors.
type UnsafeForkResolverServer ¶
type UnsafeForkResolverServer interface {
// contains filtered or unexported methods
}
UnsafeForkResolverServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ForkResolverServer will result in compilation errors.
type UnsafeRouterServer ¶
type UnsafeRouterServer interface {
// contains filtered or unexported methods
}
UnsafeRouterServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RouterServer will result in compilation errors.