using System;
using System.Runtime.Remoting;
using System.Collections;
[Serializable]
public class SubmitEventArgs : EventArgs
{
private string _string = null;
private string _alias = null;
public SubmitEventArgs(string contribution, string contributor)
{
this._string = contribution;
this._alias = contributor;
}
public string Contribution
{
get
{
return _string;
}
}
public string Contributor
{
get
{
return _alias;
}
}
}
public delegate void SubmissionEventHandler(object sender, SubmitEventArgs submitArgs);
public class ChatCoordinator : MarshalByRefObject
{
public ChatCoordinator()
{
Console.WriteLine("ChatCoordinator created. Instance: "+
this.GetHashCode().ToString());
}
public override object InitializeLifetimeService()
{
return null;
}
public event SubmissionEventHandler Submission;
public void Submit(string contribution, string contributor)
{
Console.WriteLine("{0} sent: {1}.",contributor, contribution);
SubmitEventArgs e = new SubmitEventArgs(contribution, contributor);
if(Submission != null)
{
Console.WriteLine("Broadcasting...");
Submission(this, e);
}
}
}