public virtual bool SetOption <T>(ChannelOption <T> option, T value) { Validate(option, value); if (ChannelOption.ConnectTimeout.Equals(option)) { ConnectTimeout = (TimeSpan)(object)value; } else if (ChannelOption.MaxMessagesPerRead.Equals(option)) { MaxMessagesPerRead = (int)(object)value; } else if (ChannelOption.WriteSpinCount.Equals(option)) { WriteSpinCount = (int)(object)value; } else if (ChannelOption.Allocator.Equals(option)) { Allocator = (IByteBufAllocator)value; } else if (ChannelOption.RcvbufAllocator.Equals(option)) { RecvByteBufAllocator = (IRecvByteBufAllocator)value; } else if (ChannelOption.AutoRead.Equals(option)) { AutoRead = (bool)(object)value; } else if (ChannelOption.WriteBufferHighWaterMark.Equals(option)) { _writeBufferHighWaterMark = (int)(object)value; } else if (ChannelOption.WriteBufferLowWaterMark.Equals(option)) { WriteBufferLowWaterMark = (int)(object)value; } else if (ChannelOption.MessageSizeEstimator.Equals(option)) { 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)ConnectTimeout); // no boxing will happen, compiler optimizes away such casts } if (ChannelOption.MaxMessagesPerRead.Equals(option)) { return((T)(object)MaxMessagesPerRead); } if (ChannelOption.WriteSpinCount.Equals(option)) { return((T)(object)WriteSpinCount); } if (ChannelOption.Allocator.Equals(option)) { return((T)Allocator); } if (ChannelOption.RcvbufAllocator.Equals(option)) { return((T)RecvByteBufAllocator); } if (ChannelOption.AutoRead.Equals(option)) { return((T)(object)AutoRead); } if (ChannelOption.WriteBufferHighWaterMark.Equals(option)) { return((T)(object)WriteBufferHighWaterMark); } if (ChannelOption.WriteBufferLowWaterMark.Equals(option)) { return((T)(object)WriteBufferLowWaterMark); } if (ChannelOption.MessageSizeEstimator.Equals(option)) { return((T)MessageSizeEstimator); } return(default(T)); }
public bool SetOption(ChannelOption option, object value) { return(option.Set(this, value)); }
protected virtual void Validate <T>(ChannelOption <T> option, T value) { Contract.Requires(option != null); option.Validate(value); }