protected Endpoint(JabberGateway gateway, EndpointSettings settings, Session session)
{
Gateway = gateway;
Settings = settings;
Session = session;
Queue = Gateway.GetQueue(settings.Name);
Endpoint oldEndpoint = null;
if (gateway.Endpoints.TryGetValue(settings.Name, out oldEndpoint) && (oldEndpoint != null))
oldEndpoint.Dispose();
gateway.Endpoints[settings.Name] = this;
QueueTaskFuture = Program.Scheduler.Start(QueueTask(), TaskExecutionPolicy.RunAsBackgroundTask);
}