PeerCastStation.PCP.PCPYellowPageClient.Announce C# (CSharp) Method

Announce() public method

public Announce ( Channel channel ) : IAnnouncingChannel
channel Channel
return IAnnouncingChannel
    public IAnnouncingChannel Announce(Channel channel)
    {
      if (!IsValidUri(AnnounceUri)) return null;
      AnnouncingChannel announcing = null;
      lock (announcingChannels) {
        announcing = announcingChannels.FirstOrDefault(a => a.Channel==channel);
        if (announcing!=null) return announcing;
      }
      Logger.Debug("Start announce channel {0} to {1}", channel.ChannelID.ToString("N"), AnnounceUri);
      channel.ChannelInfoChanged  += OnChannelPropertyChanged;
      channel.ChannelTrackChanged += OnChannelPropertyChanged;
      channel.Closed              += OnChannelClosed;
      announcing = new AnnouncingChannel { Channel=channel, Owner=this, IsStopped=false };
      lock (announcingChannels) {
        announcingChannels.Add(announcing);
        if (announceThread==null || !announceThread.IsAlive) {
          isStopped = false;
          restartEvent.Reset();
          announceThread = new Thread(AnnounceThreadProc);
          announceThread.Name = String.Format("PCPYP {0} Announce", AnnounceUri);
          announceThread.Start();
        }
      }
      return announcing;
    }