mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-18 19:08:56 +00:00
@@ -25,7 +25,7 @@ let package = Package(
|
||||
],
|
||||
dependencies: [
|
||||
.package(path: "../../swift"),
|
||||
.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0-alpha.19"),
|
||||
.package(url: "https://github.com/grpc/grpc-swift.git", .exact("1.0.0-alpha.24")),
|
||||
],
|
||||
targets: [
|
||||
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
|
||||
|
||||
@@ -24,31 +24,84 @@ public extension GRPCFlatBufPayload {
|
||||
extension Message: GRPCFlatBufPayload {}
|
||||
|
||||
/// Usage: instantiate GreeterServiceClient, then call methods of this protocol to make API calls.
|
||||
public protocol GreeterService {
|
||||
func SayHello(_ request: Message<HelloRequest>, callOptions: CallOptions?) -> UnaryCall<Message<HelloRequest>,Message<HelloReply>>
|
||||
func SayManyHellos(_ request: Message<ManyHellosRequest>, callOptions: CallOptions?, handler: @escaping (Message<HelloReply>) -> Void) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>>
|
||||
public protocol GreeterClientProtocol: GRPCClient {
|
||||
|
||||
var serviceName: String { get }
|
||||
|
||||
var interceptors: GreeterClientInterceptorFactoryProtocol? { get }
|
||||
|
||||
func SayHello(
|
||||
_ request: Message<HelloRequest>
|
||||
, callOptions: CallOptions?
|
||||
) -> UnaryCall<Message<HelloRequest>, Message<HelloReply>>
|
||||
|
||||
func SayManyHellos(
|
||||
_ request: Message<ManyHellosRequest>
|
||||
, callOptions: CallOptions?,
|
||||
handler: @escaping (Message<HelloReply>) -> Void
|
||||
) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>>
|
||||
|
||||
}
|
||||
|
||||
public final class GreeterServiceClient: GRPCClient, GreeterService {
|
||||
extension GreeterClientProtocol {
|
||||
|
||||
public var serviceName: String { "Greeter" }
|
||||
|
||||
public func SayHello(
|
||||
_ request: Message<HelloRequest>
|
||||
, callOptions: CallOptions? = nil
|
||||
) -> UnaryCall<Message<HelloRequest>, Message<HelloReply>> {
|
||||
return self.makeUnaryCall(
|
||||
path: "/Greeter/SayHello",
|
||||
request: request,
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeSayHelloInterceptors() ?? []
|
||||
)
|
||||
}
|
||||
|
||||
public func SayManyHellos(
|
||||
_ request: Message<ManyHellosRequest>
|
||||
, callOptions: CallOptions? = nil,
|
||||
handler: @escaping (Message<HelloReply>) -> Void
|
||||
) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>> {
|
||||
return self.makeServerStreamingCall(
|
||||
path: "/Greeter/SayManyHellos",
|
||||
request: request,
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeSayManyHellosInterceptors() ?? [],
|
||||
handler: handler
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public protocol GreeterClientInterceptorFactoryProtocol {
|
||||
/// - Returns: Interceptors to use when invoking 'SayHello'.
|
||||
func makeSayHelloInterceptors() -> [ClientInterceptor<Message<HelloRequest>, Message<HelloReply>>]
|
||||
|
||||
/// - Returns: Interceptors to use when invoking 'SayManyHellos'.
|
||||
func makeSayManyHellosInterceptors() -> [ClientInterceptor<Message<ManyHellosRequest>, Message<HelloReply>>]
|
||||
|
||||
}
|
||||
|
||||
public final class GreeterServiceClient: GreeterClientProtocol {
|
||||
public let channel: GRPCChannel
|
||||
public var defaultCallOptions: CallOptions
|
||||
public var interceptors: GreeterClientInterceptorFactoryProtocol?
|
||||
|
||||
public init(channel: GRPCChannel, defaultCallOptions: CallOptions = CallOptions()) {
|
||||
public init(
|
||||
channel: GRPCChannel,
|
||||
defaultCallOptions: CallOptions = CallOptions(),
|
||||
interceptors: GreeterClientInterceptorFactoryProtocol? = nil
|
||||
) {
|
||||
self.channel = channel
|
||||
self.defaultCallOptions = defaultCallOptions
|
||||
}
|
||||
|
||||
public func SayHello(_ request: Message<HelloRequest>, callOptions: CallOptions? = nil) -> UnaryCall<Message<HelloRequest>,Message<HelloReply>> {
|
||||
return self.makeUnaryCall(path: "/Greeter/SayHello", request: request, callOptions: callOptions ?? self.defaultCallOptions)
|
||||
}
|
||||
|
||||
public func SayManyHellos(_ request: Message<ManyHellosRequest>, callOptions: CallOptions? = nil, handler: @escaping (Message<HelloReply>) -> Void) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>> {
|
||||
return self.makeServerStreamingCall(path: "/Greeter/SayManyHellos", request: request, callOptions: callOptions ?? self.defaultCallOptions, handler: handler)
|
||||
self.interceptors = interceptors
|
||||
}
|
||||
}
|
||||
|
||||
public protocol GreeterProvider: CallHandlerProvider {
|
||||
func SayHello(_ request: Message<HelloRequest>, context: StatusOnlyCallContext) -> EventLoopFuture<Message<HelloReply>>
|
||||
var interceptors: GreeterServerInterceptorFactoryProtocol? { get }
|
||||
func SayHello(request: Message<HelloRequest>, context: StatusOnlyCallContext) -> EventLoopFuture<Message<HelloReply>>
|
||||
func SayManyHellos(request: Message<ManyHellosRequest>, context: StreamingResponseCallContext<Message<HelloReply>>) -> EventLoopFuture<GRPCStatus>
|
||||
}
|
||||
|
||||
@@ -56,22 +109,37 @@ public extension GreeterProvider {
|
||||
|
||||
var serviceName: Substring { return "Greeter" }
|
||||
|
||||
func handleMethod(_ methodName: Substring, callHandlerContext: CallHandlerContext) -> GRPCCallHandler? {
|
||||
switch methodName {
|
||||
func handle(method name: Substring, context: CallHandlerContext) -> GRPCServerHandlerProtocol? {
|
||||
switch name {
|
||||
case "SayHello":
|
||||
return CallHandlerFactory.makeUnary(callHandlerContext: callHandlerContext) { context in
|
||||
return { request in
|
||||
self.SayHello(request, context: context)
|
||||
}
|
||||
}
|
||||
return UnaryServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<HelloRequest>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<HelloReply>>(),
|
||||
interceptors: self.interceptors?.makeSayHelloInterceptors() ?? [],
|
||||
userFunction: self.SayHello(request:context:))
|
||||
|
||||
case "SayManyHellos":
|
||||
return CallHandlerFactory.makeServerStreaming(callHandlerContext: callHandlerContext) { context in
|
||||
return { request in
|
||||
self.SayManyHellos(request: request, context: context)
|
||||
}
|
||||
}
|
||||
return ServerStreamingServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<ManyHellosRequest>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<HelloReply>>(),
|
||||
interceptors: self.interceptors?.makeSayManyHellosInterceptors() ?? [],
|
||||
userFunction: self.SayManyHellos(request:context:))
|
||||
|
||||
default: return nil;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public protocol GreeterServerInterceptorFactoryProtocol {
|
||||
/// - Returns: Interceptors to use when handling 'SayHello'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeSayHelloInterceptors() -> [ServerInterceptor<Message<HelloRequest>, Message<HelloReply>>]
|
||||
|
||||
/// - Returns: Interceptors to use when handling 'SayManyHellos'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeSayManyHellosInterceptors() -> [ServerInterceptor<Message<ManyHellosRequest>, Message<HelloReply>>]
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ import NIO
|
||||
|
||||
class Greeter: GreeterProvider {
|
||||
|
||||
var interceptors: GreeterServerInterceptorFactoryProtocol?
|
||||
|
||||
var hellos: [Message<HelloReply>] = []
|
||||
|
||||
init() {
|
||||
@@ -36,7 +38,7 @@ class Greeter: GreeterProvider {
|
||||
}
|
||||
|
||||
func SayHello(
|
||||
_ request: Message<HelloRequest>,
|
||||
request: Message<HelloRequest>,
|
||||
context: StatusOnlyCallContext) -> EventLoopFuture<Message<HelloReply>>
|
||||
{
|
||||
let recipient = request.object.name ?? "Stranger"
|
||||
|
||||
@@ -25,7 +25,7 @@ let package = Package(
|
||||
],
|
||||
dependencies: [
|
||||
.package(path: "../../swift/"),
|
||||
.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0-alpha.19"),
|
||||
.package(url: "https://github.com/grpc/grpc-swift.git", .exact("1.0.0-alpha.24")),
|
||||
],
|
||||
targets: [
|
||||
.target(name: "SwiftFlatBuffers"),
|
||||
|
||||
@@ -24,41 +24,121 @@ public extension GRPCFlatBufPayload {
|
||||
extension Message: GRPCFlatBufPayload {}
|
||||
|
||||
/// Usage: instantiate MyGame_Example_MonsterStorageServiceClient, then call methods of this protocol to make API calls.
|
||||
public protocol MyGame_Example_MonsterStorageService {
|
||||
func Store(_ request: Message<MyGame_Example_Monster>, callOptions: CallOptions?) -> UnaryCall<Message<MyGame_Example_Monster>,Message<MyGame_Example_Stat>>
|
||||
func Retrieve(_ request: Message<MyGame_Example_Stat>, callOptions: CallOptions?, handler: @escaping (Message<MyGame_Example_Monster>) -> Void) -> ServerStreamingCall<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>>
|
||||
func GetMaxHitPoint(callOptions: CallOptions?) -> ClientStreamingCall<Message<MyGame_Example_Monster>,Message<MyGame_Example_Stat>>
|
||||
func GetMinMaxHitPoints(callOptions: CallOptions?, handler: @escaping (Message<MyGame_Example_Stat>) -> Void) -> BidirectionalStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>
|
||||
public protocol MyGame_Example_MonsterStorageClientProtocol: GRPCClient {
|
||||
|
||||
var serviceName: String { get }
|
||||
|
||||
var interceptors: MyGame_Example_MonsterStorageClientInterceptorFactoryProtocol? { get }
|
||||
|
||||
func Store(
|
||||
_ request: Message<MyGame_Example_Monster>
|
||||
, callOptions: CallOptions?
|
||||
) -> UnaryCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>
|
||||
|
||||
func Retrieve(
|
||||
_ request: Message<MyGame_Example_Stat>
|
||||
, callOptions: CallOptions?,
|
||||
handler: @escaping (Message<MyGame_Example_Monster>) -> Void
|
||||
) -> ServerStreamingCall<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>>
|
||||
|
||||
func GetMaxHitPoint(
|
||||
callOptions: CallOptions?
|
||||
) -> ClientStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>
|
||||
|
||||
func GetMinMaxHitPoints(
|
||||
callOptions: CallOptions?,
|
||||
handler: @escaping (Message<MyGame_Example_Stat> ) -> Void
|
||||
) -> BidirectionalStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>
|
||||
|
||||
}
|
||||
|
||||
public final class MyGame_Example_MonsterStorageServiceClient: GRPCClient, MyGame_Example_MonsterStorageService {
|
||||
extension MyGame_Example_MonsterStorageClientProtocol {
|
||||
|
||||
public var serviceName: String { "MyGame.Example.MonsterStorage" }
|
||||
|
||||
public func Store(
|
||||
_ request: Message<MyGame_Example_Monster>
|
||||
, callOptions: CallOptions? = nil
|
||||
) -> UnaryCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>> {
|
||||
return self.makeUnaryCall(
|
||||
path: "/MyGame.Example.MonsterStorage/Store",
|
||||
request: request,
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeStoreInterceptors() ?? []
|
||||
)
|
||||
}
|
||||
|
||||
public func Retrieve(
|
||||
_ request: Message<MyGame_Example_Stat>
|
||||
, callOptions: CallOptions? = nil,
|
||||
handler: @escaping (Message<MyGame_Example_Monster>) -> Void
|
||||
) -> ServerStreamingCall<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>> {
|
||||
return self.makeServerStreamingCall(
|
||||
path: "/MyGame.Example.MonsterStorage/Retrieve",
|
||||
request: request,
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeRetrieveInterceptors() ?? [],
|
||||
handler: handler
|
||||
)
|
||||
}
|
||||
|
||||
public func GetMaxHitPoint(
|
||||
callOptions: CallOptions? = nil
|
||||
) -> ClientStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>> {
|
||||
return self.makeClientStreamingCall(
|
||||
path: "/MyGame.Example.MonsterStorage/GetMaxHitPoint",
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeGetMaxHitPointInterceptors() ?? []
|
||||
)
|
||||
}
|
||||
|
||||
public func GetMinMaxHitPoints(
|
||||
callOptions: CallOptions? = nil,
|
||||
handler: @escaping (Message<MyGame_Example_Stat> ) -> Void
|
||||
) -> BidirectionalStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>> {
|
||||
return self.makeBidirectionalStreamingCall(
|
||||
path: "/MyGame.Example.MonsterStorage/GetMinMaxHitPoints",
|
||||
callOptions: callOptions ?? self.defaultCallOptions,
|
||||
interceptors: self.interceptors?.makeGetMinMaxHitPointsInterceptors() ?? [],
|
||||
handler: handler
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public protocol MyGame_Example_MonsterStorageClientInterceptorFactoryProtocol {
|
||||
/// - Returns: Interceptors to use when invoking 'Store'.
|
||||
func makeStoreInterceptors() -> [ClientInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
/// - Returns: Interceptors to use when invoking 'Retrieve'.
|
||||
func makeRetrieveInterceptors() -> [ClientInterceptor<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>>]
|
||||
|
||||
/// - Returns: Interceptors to use when invoking 'GetMaxHitPoint'.
|
||||
func makeGetMaxHitPointInterceptors() -> [ClientInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
/// - Returns: Interceptors to use when invoking 'GetMinMaxHitPoints'.
|
||||
func makeGetMinMaxHitPointsInterceptors() -> [ClientInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
}
|
||||
|
||||
public final class MyGame_Example_MonsterStorageServiceClient: MyGame_Example_MonsterStorageClientProtocol {
|
||||
public let channel: GRPCChannel
|
||||
public var defaultCallOptions: CallOptions
|
||||
public var interceptors: MyGame_Example_MonsterStorageClientInterceptorFactoryProtocol?
|
||||
|
||||
public init(channel: GRPCChannel, defaultCallOptions: CallOptions = CallOptions()) {
|
||||
public init(
|
||||
channel: GRPCChannel,
|
||||
defaultCallOptions: CallOptions = CallOptions(),
|
||||
interceptors: MyGame_Example_MonsterStorageClientInterceptorFactoryProtocol? = nil
|
||||
) {
|
||||
self.channel = channel
|
||||
self.defaultCallOptions = defaultCallOptions
|
||||
}
|
||||
|
||||
public func Store(_ request: Message<MyGame_Example_Monster>, callOptions: CallOptions? = nil) -> UnaryCall<Message<MyGame_Example_Monster>,Message<MyGame_Example_Stat>> {
|
||||
return self.makeUnaryCall(path: "/MyGame.Example.MonsterStorage/Store", request: request, callOptions: callOptions ?? self.defaultCallOptions)
|
||||
}
|
||||
|
||||
public func Retrieve(_ request: Message<MyGame_Example_Stat>, callOptions: CallOptions? = nil, handler: @escaping (Message<MyGame_Example_Monster>) -> Void) -> ServerStreamingCall<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>> {
|
||||
return self.makeServerStreamingCall(path: "/MyGame.Example.MonsterStorage/Retrieve", request: request, callOptions: callOptions ?? self.defaultCallOptions, handler: handler)
|
||||
}
|
||||
|
||||
public func GetMaxHitPoint(callOptions: CallOptions? = nil) -> ClientStreamingCall<Message<MyGame_Example_Monster>,Message<MyGame_Example_Stat>> {
|
||||
return self.makeClientStreamingCall(path: "/MyGame.Example.MonsterStorage/GetMaxHitPoint", callOptions: callOptions ?? self.defaultCallOptions)
|
||||
}
|
||||
|
||||
public func GetMinMaxHitPoints(callOptions: CallOptions? = nil, handler: @escaping (Message<MyGame_Example_Stat>) -> Void) -> BidirectionalStreamingCall<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>> {
|
||||
return self.makeBidirectionalStreamingCall(path: "/MyGame.Example.MonsterStorage/GetMinMaxHitPoints", callOptions: callOptions ?? self.defaultCallOptions, handler: handler)
|
||||
self.interceptors = interceptors
|
||||
}
|
||||
}
|
||||
|
||||
public protocol MyGame_Example_MonsterStorageProvider: CallHandlerProvider {
|
||||
func Store(_ request: Message<MyGame_Example_Monster>, context: StatusOnlyCallContext) -> EventLoopFuture<Message<MyGame_Example_Stat>>
|
||||
var interceptors: MyGame_Example_MonsterStorageServerInterceptorFactoryProtocol? { get }
|
||||
func Store(request: Message<MyGame_Example_Monster>, context: StatusOnlyCallContext) -> EventLoopFuture<Message<MyGame_Example_Stat>>
|
||||
func Retrieve(request: Message<MyGame_Example_Stat>, context: StreamingResponseCallContext<Message<MyGame_Example_Monster>>) -> EventLoopFuture<GRPCStatus>
|
||||
func GetMaxHitPoint(context: UnaryResponseCallContext<Message<MyGame_Example_Stat>>) -> EventLoopFuture<(StreamEvent<Message<MyGame_Example_Monster>>) -> Void>
|
||||
func GetMinMaxHitPoints(context: StreamingResponseCallContext<Message<MyGame_Example_Stat>>) -> EventLoopFuture<(StreamEvent<Message<MyGame_Example_Monster>>) -> Void>
|
||||
@@ -68,30 +148,61 @@ public extension MyGame_Example_MonsterStorageProvider {
|
||||
|
||||
var serviceName: Substring { return "MyGame.Example.MonsterStorage" }
|
||||
|
||||
func handleMethod(_ methodName: Substring, callHandlerContext: CallHandlerContext) -> GRPCCallHandler? {
|
||||
switch methodName {
|
||||
func handle(method name: Substring, context: CallHandlerContext) -> GRPCServerHandlerProtocol? {
|
||||
switch name {
|
||||
case "Store":
|
||||
return CallHandlerFactory.makeUnary(callHandlerContext: callHandlerContext) { context in
|
||||
return { request in
|
||||
self.Store(request, context: context)
|
||||
}
|
||||
}
|
||||
return UnaryServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<MyGame_Example_Monster>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<MyGame_Example_Stat>>(),
|
||||
interceptors: self.interceptors?.makeStoreInterceptors() ?? [],
|
||||
userFunction: self.Store(request:context:))
|
||||
|
||||
case "Retrieve":
|
||||
return CallHandlerFactory.makeServerStreaming(callHandlerContext: callHandlerContext) { context in
|
||||
return { request in
|
||||
self.Retrieve(request: request, context: context)
|
||||
}
|
||||
}
|
||||
return ServerStreamingServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<MyGame_Example_Stat>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<MyGame_Example_Monster>>(),
|
||||
interceptors: self.interceptors?.makeRetrieveInterceptors() ?? [],
|
||||
userFunction: self.Retrieve(request:context:))
|
||||
|
||||
case "GetMaxHitPoint":
|
||||
return CallHandlerFactory.makeClientStreaming(callHandlerContext: callHandlerContext) { context in
|
||||
self.GetMaxHitPoint(context: context)
|
||||
}
|
||||
return ClientStreamingServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<MyGame_Example_Monster>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<MyGame_Example_Stat>>(),
|
||||
interceptors: self.interceptors?.makeGetMaxHitPointInterceptors() ?? [],
|
||||
observerFactory: self.GetMaxHitPoint(context:))
|
||||
|
||||
case "GetMinMaxHitPoints":
|
||||
return CallHandlerFactory.makeBidirectionalStreaming(callHandlerContext: callHandlerContext) { context in
|
||||
self.GetMinMaxHitPoints(context: context)
|
||||
}
|
||||
return BidirectionalStreamingServerHandler(
|
||||
context: context,
|
||||
requestDeserializer: GRPCPayloadDeserializer<Message<MyGame_Example_Monster>>(),
|
||||
responseSerializer: GRPCPayloadSerializer<Message<MyGame_Example_Stat>>(),
|
||||
interceptors: self.interceptors?.makeGetMinMaxHitPointsInterceptors() ?? [],
|
||||
observerFactory: self.GetMinMaxHitPoints(context:))
|
||||
|
||||
default: return nil;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public protocol MyGame_Example_MonsterStorageServerInterceptorFactoryProtocol {
|
||||
/// - Returns: Interceptors to use when handling 'Store'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeStoreInterceptors() -> [ServerInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
/// - Returns: Interceptors to use when handling 'Retrieve'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeRetrieveInterceptors() -> [ServerInterceptor<Message<MyGame_Example_Stat>, Message<MyGame_Example_Monster>>]
|
||||
|
||||
/// - Returns: Interceptors to use when handling 'GetMaxHitPoint'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeGetMaxHitPointInterceptors() -> [ServerInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
/// - Returns: Interceptors to use when handling 'GetMinMaxHitPoints'.
|
||||
/// Defaults to calling `self.makeInterceptors()`.
|
||||
func makeGetMinMaxHitPointsInterceptors() -> [ServerInterceptor<Message<MyGame_Example_Monster>, Message<MyGame_Example_Stat>>]
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user