/// <summary> /// Initializes a new instance of the <see cref="ByteBlasterClient" /> class. /// </summary> /// <param name="email">The email.</param> /// <param name="observer">The observer to subscribe.</param> public ByteBlasterClient(string email, IObserver <QuickBlockTransferSegment> observer = null) { _channelBootstrap = ByteBlasterChannelFactory.CreateBootstrap() .Handler(new ByteBlasterChannelInitializer(email, new ChannelEventHandler <QuickBlockTransferSegment>((ctx, segment) => NotifySubscribers(segment)), new ChannelEventHandler <ByteBlasterServerList>((ctx, serverList) => UpdateServerList(serverList)) )); if (observer != null) { Subscribe(observer); } }
/// <summary> /// Shutdowns the executor threads gracefully. /// </summary> /// <returns>System.Threading.Tasks.Task.</returns> public static Task ShutdownGracefullyAsync() => ByteBlasterChannelFactory.ShutdownGracefullyAsync();