public object CreateClient(INiftyClientChannel channel, Type clientType, ThriftClientMetadata clientMetadata, IEnumerable <ThriftClientEventHandler> clientHandlers, string clientDescription) { var fake = new Fake(clientDescription, clientMetadata, channel, ImmutableList.CreateRange(clientHandlers).ToImmutableList()); var instance = Creator.Create(clientType, fake); return(instance); }
public ThriftClientMetadata GetClientMetadata(Type clientType, String name = DefaultClientName) { this.ThrowIfDisposed(); Guard.ArgumentNotNull(clientType, nameof(clientType)); ThriftClientMetadata metadata = null; clientMetadataCache.TryGetValue(new TypeAndName(clientType, name), out metadata); return(metadata); }
public object CreateClient(INiftyClientChannel channel, Type clientType, String name, IEnumerable <ThriftClientEventHandler> eventHandlers) { this.ThrowIfDisposed(); Guard.ArgumentNotNull(channel, nameof(channel)); Guard.ArgumentNotNull(clientType, nameof(clientType)); Guard.ArgumentNullOrWhiteSpaceString(name, nameof(name)); if (!channel.NettyChannel.Active || channel.HasError) { throw new ThriftyTransportException($"fault to connect swifty server : {channel.NettyChannel.RemoteAddress}", ThriftyTransportException.ExceptionType.NotOpen); } eventHandlers = eventHandlers ?? Enumerable.Empty <ThriftClientEventHandler>(); ThriftClientMetadata clientMetadata = clientMetadataCache.GetOrAdd(new TypeAndName(clientType, name), this.Load); String clientDescription = $"{clientMetadata.Name} {channel.ToString()}"; var allHandlers = globalEventHandlers.Concat(eventHandlers).ToArray(); return(_thriftClientFactory.CreateClient(channel, clientType, clientMetadata, allHandlers, clientDescription)); }