/// <summary> /// Creates new RTP session. /// </summary> /// <param name="localEP">Local RTP end point.</param> /// <param name="clock">RTP media clock.</param> /// <returns>Returns created session.</returns> /// <exception cref="ObjectDisposedException">Is raised when this class is Disposed and this method is accessed.</exception> /// <exception cref="ArgumentNullException">Is raised when <b>localEP</b> or <b>clock</b> is null reference.</exception> public RTP_Session CreateSession(RTP_Address localEP, RTP_Clock clock) { if (m_IsDisposed) { throw new ObjectDisposedException(this.GetType().Name); } if (localEP == null) { throw new ArgumentNullException("localEP"); } if (clock == null) { throw new ArgumentNullException("clock"); } RTP_Session session = new RTP_Session(this, localEP, clock); session.Disposed += new EventHandler(delegate(object s, EventArgs e){ m_pSessions.Remove((RTP_Session)s); }); m_pSessions.Add(session); OnSessionCreated(session); return(session); }
/// <summary> /// Determines whether the specified Object is equal to the current Object. /// </summary> /// <param name="obj">The Object to compare with the current Object.</param> /// <returns>True if the specified Object is equal to the current Object; otherwise, false.</returns> public override bool Equals(object obj) { if (obj == null) { return(false); } if (obj is RTP_Address) { RTP_Address a = (RTP_Address)obj; if (a.IP.Equals(this.IP) && a.ControlPort == this.ControlPort && a.DataPort == this.DataPort) { return(true); } } return(false); }