public virtual bool SetOption <T>(ChannelOption <T> option, T value) { this.Validate(option, value); if (ChannelOption.ConnectTimeout.Equals(option)) { this.ConnectTimeout = (TimeSpan)(object)value; } else if (ChannelOption.WriteSpinCount.Equals(option)) { this.WriteSpinCount = (int)(object)value; } else if (ChannelOption.Allocator.Equals(option)) { this.Allocator = (IByteBufferAllocator)value; } else if (ChannelOption.RcvbufAllocator.Equals(option)) { this.RecvByteBufAllocator = (IRecvByteBufAllocator)value; } else if (ChannelOption.AutoRead.Equals(option)) { this.AutoRead = (bool)(object)value; } else if (ChannelOption.WriteBufferHighWaterMark.Equals(option)) { this.writeBufferHighWaterMark = (int)(object)value; } else if (ChannelOption.WriteBufferLowWaterMark.Equals(option)) { this.WriteBufferLowWaterMark = (int)(object)value; } else if (ChannelOption.MessageSizeEstimator.Equals(option)) { this.MessageSizeEstimator = (IMessageSizeEstimator)value; } else { return(false); } return(true); }
public virtual T GetOption <T>(ChannelOption <T> option) { Contract.Requires(option != null); if (ChannelOption.ConnectTimeout.Equals(option)) { return((T)(object)this.ConnectTimeout); // no boxing will happen, compiler optimizes away such casts } if (ChannelOption.WriteSpinCount.Equals(option)) { return((T)(object)this.WriteSpinCount); } if (ChannelOption.Allocator.Equals(option)) { return((T)this.Allocator); } if (ChannelOption.RcvbufAllocator.Equals(option)) { return((T)this.RecvByteBufAllocator); } if (ChannelOption.AutoRead.Equals(option)) { return((T)(object)this.AutoRead); } if (ChannelOption.WriteBufferHighWaterMark.Equals(option)) { return((T)(object)this.WriteBufferHighWaterMark); } if (ChannelOption.WriteBufferLowWaterMark.Equals(option)) { return((T)(object)this.WriteBufferLowWaterMark); } if (ChannelOption.MessageSizeEstimator.Equals(option)) { return((T)this.MessageSizeEstimator); } return(default(T)); }
public bool SetOption(ChannelOption option, object value) => option.Set(this, value);
protected virtual void Validate <T>(ChannelOption <T> option, T value) { Contract.Requires(option != null); option.Validate(value); }