/// <summary> /// Konstruktor. /// </summary> /// <param name="name">Name des Komponentenhosts</param> /// <param name="tcpPort">TCP-Anschlussnummer</param> /// <param name="catalog">Komponenten-Katalog</param> public ZyanComponentHost(string name, int tcpPort, ComponentCatalog catalog) : this(name, new TcpBinaryServerProtocolSetup(tcpPort), new InProcSessionManager(), catalog) { }
/// <summary> /// Konstruktor. /// </summary> /// <param name="name">Name des Komponentenhosts</param> /// <param name="protocolSetup">Protokoll-Einstellungen</param> /// <param name="catalog">Komponenten-Katalog</param> public ZyanComponentHost(string name, IServerProtocolSetup protocolSetup, ComponentCatalog catalog) : this(name, protocolSetup, new InProcSessionManager(), catalog) { }
/// <summary> /// Konstruktor. /// </summary> /// <param name="name">Name des Komponentenhosts</param> /// <param name="protocolSetup">Protokoll-Einstellungen</param> /// <param name="sessionManager">Sitzungsverwaltung</param> /// <param name="catalog">Komponenten-Katalog</param> public ZyanComponentHost(string name, IServerProtocolSetup protocolSetup, ISessionManager sessionManager, ComponentCatalog catalog) { // Wenn kein Name angegeben wurde ... if (string.IsNullOrEmpty(name)) { // Ausnahme werfen throw new ArgumentException(LanguageResource.ArgumentException_ComponentHostNameMissing, "name"); } // Wenn keine Protokoll-Einstellungen angegeben wurde ... if (protocolSetup == null) { // Ausnahme werfen throw new ArgumentNullException("protocolSetup"); } // Wenn keine Sitzungsverwaltung übergeben wurde ... if (sessionManager == null) { // Ausnahme werfen throw new ArgumentNullException("sessionManager"); } // Wenn kein Komponenten-Katalog angegeben wurde ... if (catalog == null) { // Ausnahme werfen throw new ArgumentNullException("catalog"); } // Werte übernehmen _name = name; _protocolSetup = protocolSetup; _sessionManager = sessionManager; _catalog = catalog; // Komponentenaufrufer erzeugen _invoker = new ZyanDispatcher(this); // Authentifizierungsanbieter übernehmen und verdrahten _authProvider = protocolSetup.AuthenticationProvider; this.Authenticate = _authProvider.Authenticate; // Komponenten Host der Host-Auflistung zufügen _hosts.Add(this); // Beginnen auf Client-Anfragen zu horchen StartListening(); }