PeerCastStation.Core.AccessController.IsChannelRelayable C# (CSharp) Метод

IsChannelRelayable() публичный Метод

指定したチャンネルに新しいリレー接続ができるかどうかを取得します
public IsChannelRelayable ( Channel channel ) : bool
channel Channel リレー接続先のチャンネル
Результат bool
    public virtual bool IsChannelRelayable(Channel channel)
    {
      int channel_bitrate = channel.ChannelInfo.Bitrate;
      var total_upstream_rate = PeerCast.Channels.Sum(c => c.OutputStreams.Sum(o => o.IsLocal ? 0 : o.UpstreamRate));
      var channel_upstream_rate = channel.OutputStreams.Sum(o => o.IsLocal ? 0 : o.UpstreamRate);
      return
        (this.MaxRelays<=0 || this.MaxRelays>PeerCast.Channels.Sum(c => c.LocalRelays)) &&
        (this.MaxRelaysPerChannel<=0 || this.MaxRelaysPerChannel>channel.LocalRelays) &&
        (this.MaxUpstreamRate<0 || this.MaxUpstreamRate>=total_upstream_rate+channel_bitrate) &&
        (this.MaxUpstreamRatePerChannel<=0 || this.MaxUpstreamRatePerChannel>=channel_upstream_rate+channel_bitrate);
    }

Same methods

AccessController::IsChannelRelayable ( Channel channel, IOutputStream output_stream ) : bool