public static SuperSocketHostBuilder <TReceivePackage> ConfigureSuperSocket <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Action <ServerOptions> configurator) { return((hostBuilder as ISuperSocketHostBuilder) .ConfigureSuperSocket(configurator) .AsSuperSocketBuilder <TReceivePackage>()); }
public static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageHandler <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <IAppSession, TReceivePackage, ValueTask> packageHandler) where TReceivePackage : class { return(hostBuilder.UsePackageHandler(packageHandler)); }
public static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageDecoder <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, IPackageDecoder <TReceivePackage> packageDecoder) where TReceivePackage : class { return(hostBuilder.UsePackageDecoder(packageDecoder)); }
private static SuperSocketHostBuilder <TReceivePackage> ConfigureErrorHandler <TReceivePackage>(SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <IAppSession, PackageHandlingException <TReceivePackage>, ValueTask <bool> > errorHandler) where TReceivePackage : class { return(hostBuilder.ConfigureServices( (hostCtx, services) => { services.AddSingleton <Func <IAppSession, PackageHandlingException <TReceivePackage>, ValueTask <bool> > >(errorHandler); } ) as SuperSocketHostBuilder <TReceivePackage>); }
public static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageHandler <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <IAppSession, TReceivePackage, ValueTask> packageHandler, Func <IAppSession, PackageHandlingException <TReceivePackage>, ValueTask <bool> > errorHandler = null) where TReceivePackage : class { return(hostBuilder.UsePackageHandler(packageHandler, errorHandler: errorHandler)); }
public static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageHandler <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <IAppSession, TReceivePackage, Task> packageHandler) where TReceivePackage : class { return(ConfigurePackageHandlerCore <TReceivePackage>(hostBuilder, packageHandler) as SuperSocketHostBuilder <TReceivePackage>); }
private static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageHandlerCore <TReceivePackage>(SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <IAppSession, TReceivePackage, Task> packageHandler, Func <IAppSession, PackageHandlingException <TReceivePackage>, ValueTask <bool> > errorHandler = null) where TReceivePackage : class { if (packageHandler == null) { return(hostBuilder); } return(hostBuilder.ConfigureServices( (hostCtx, services) => { services.AddSingleton <IPackageHandler <TReceivePackage> >(new DelegatePackageHandler <TReceivePackage>(packageHandler)); if (errorHandler != null) { services.AddSingleton <Func <IAppSession, PackageHandlingException <TReceivePackage>, ValueTask <bool> > >(errorHandler); } } ) as SuperSocketHostBuilder <TReceivePackage>); }
public static SuperSocketHostBuilder <TReceivePackage> UsePipelineFilterFactory <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Func <object, IPipelineFilter <TReceivePackage> > filterFactory) where TReceivePackage : class { var builder = hostBuilder.ConfigureServices( (hostCtx, services) => { services.AddSingleton <Func <object, IPipelineFilter <TReceivePackage> > >(filterFactory); } ) as SuperSocketHostBuilder <TReceivePackage>; return(builder.UsePipelineFilterFactory <DelegatePipelineFilterFactory <TReceivePackage> >()); }
public static SuperSocketHostBuilder <TReceivePackage> ConfigureSuperSocket <TReceivePackage>(this SuperSocketHostBuilder <TReceivePackage> hostBuilder, Action <ServerOptions> configurator) where TReceivePackage : class { return(hostBuilder.ConfigureServices( (hostCtx, services) => { services.Configure <ServerOptions>(configurator); } ) as SuperSocketHostBuilder <TReceivePackage>); }
private static SuperSocketHostBuilder <TReceivePackage> ConfigurePackageDecoderCore <TReceivePackage>(SuperSocketHostBuilder <TReceivePackage> hostBuilder, IPackageDecoder <TReceivePackage> packageDecoder) where TReceivePackage : class { return(hostBuilder.ConfigureServices( (hostCtx, services) => { services.AddSingleton <IPackageDecoder <TReceivePackage> >(packageDecoder); } ) as SuperSocketHostBuilder <TReceivePackage>); }