internal StreamActivityListener(Contact c, StreamTubeChannel tube) : base(c, tube) { this.tube = tube; }
protected override void ProcessNewChannel(string object_path, uint initiator_handle, uint target_handle, ChannelDetails c) { string service_name = (string) c.Properties[Constants.CHANNEL_TYPE_STREAMTUBE + ".Service"]; Contact contact = Connection.Roster.GetContact (target_handle); StreamTubeChannel tube = null; Activity activity = null; try { tube = new StreamTubeChannel (this.Connection, object_path, initiator_handle, target_handle, service_name); if (initiator_handle == Connection.SelfHandle) { tube.ServerAddress = Connection.SupportedChannels.GetChannelInfo <StreamTubeChannelInfo> (service_name).Address; activity = new StreamActivityListener (contact, tube); } else { activity = new StreamActivity (contact, tube); } if (activity != null) { DispatchManager dm = Connection.DispatchManager; dm.Add (contact, activity.Service, activity); } } catch (Exception e) { Console.WriteLine (e.ToString ()); if (activity != null) { activity.Dispose (); } else if (tube != null) { tube.Dispose (); } } }