Beispiel #1
0
        public HmeServer(string name, Uri applicationPrefix, HmeServerOptions options, IHmeApplicationPump pump, IServiceProvider parentProvider)
        {
            _name             = name;
            ApplicationPrefix = applicationPrefix;
            _pump             = pump;
            iconUri           = applicationPrefix.AbsolutePath + "icon.png";
            _advertise        = (options & HmeServerOptions.AdvertiseOnLocalNetwork) == HmeServerOptions.AdvertiseOnLocalNetwork;
            _serviceContainer = new System.ComponentModel.Design.ServiceContainer(parentProvider);
            _serviceContainer.AddService(typeof(IHttpApplicationHostPool), new HttpApplicationHostPool());

            _usePort = 7688;
            if (applicationPrefix.IsAbsoluteUri)
            {
                _usePort = (short)applicationPrefix.Port;
            }

            // everything important to initialization must happen before here since the events can
            // be raised immediately.
            lock (_portServers)
            {
                HmePortServer portServer;
                if (!_portServers.TryGetValue(_usePort, out portServer))
                {
                    portServer = new HmePortServer(_usePort);
                    _portServers.Add(_usePort, portServer);
                }
                portServer.ConnectionReceived += HttpServer_HttpConnectionReceived;
            }
        }
Beispiel #2
0
 public HmeServer(string name, Uri applicationPrefix, HmeServerOptions options)
     : base(name, applicationPrefix, options)
 {
     InitializeServices();
 }
Beispiel #3
0
 public HmeServer(string name, Uri applicationPrefix, HmeServerOptions options)
     : this(name, applicationPrefix, options, new StandardHmeApplicationPump())
 {
 }
Beispiel #4
0
 public HmeServer(string name, Uri applicationPrefix, HmeServerOptions options, IHmeApplicationPump pump)
     : this(name, applicationPrefix, options, pump, null)
 {
 }