Ejemplo n.º 1
0
 private void Server_ClientRemoved(object sender, Control.Network.Server.ServerEventArgs e)
 {
     Task.Factory.StartNew(delegate()
     {
         var name = "";
         e.Client.Dispatcher.Invoke((Action) delegate()
         {
             name = e.Client.DisplayName;
         });
         e.Client.IsAttachedChanged -= Client_IsAttachedChanged;
         var L_clients = default(IEnumerable <MuboxClientBridge>);
         lock (_clients)
         {
             L_clients = _clients.ToArray();
         }
         var client = L_clients
                      .Where(c => c.Name.Equals(name))
                      .FirstOrDefault();
         if (client != null)
         {
             lock (_clients)
             {
                 _clients.Remove(client);
             }
             _extensions.Values.ToList()
             .ForEach(ext =>
             {
                 ext.Bridge.Clients.Remove(client);
             });
         }
     }, TaskCreationOptions.PreferFairness);
 }
Ejemplo n.º 2
0
 private void Server_ClientAccepted(object sender, Control.Network.Server.ServerEventArgs e)
 {
     Task.Factory.StartNew(delegate()
     {
         e.Client.IsAttachedChanged += Client_IsAttachedChanged;
         var name = "";
         e.Client.Dispatcher.Invoke((Action) delegate()
         {
             name = e.Client.DisplayName;
         });
         var client = new Extensibility.MuboxClientBridge(
             (key) =>
         {
             e.Client.Dispatch(key);
         },
             (me) =>
         {
             e.Client.Dispatch(new Model.Input.MouseInput
             {
                 // MouseData
                 Flags      = me.Flags,
                 IsAbsolute = me.IsAbsolute,
                 Time       = me.Time,
                 WM         = me.WM,
                 Point      = new System.Windows.Point
                 {
                     X = me.X,
                     Y = me.Y,
                 },
             });
         })
         {
             Name = name,
         };
         e.Client.DisplayNameChanged += (dnc_s, dnc_e) =>
         {
             client.Name = (dnc_s as Mubox.Model.Client.ClientBase).DisplayName;
         };
         lock (_clients)
         {
             _clients.Add(client);
         }
         _extensions.Values.ToList()
         .ForEach(ext =>
         {
             ext.Bridge.Clients.Add(client);
         });
     }, TaskCreationOptions.PreferFairness);
 }