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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }