using System; using XSockets.Core.XSocket; using XSockets.Core.XSocket.Helpers; using Toolbox; using XSockets.Core.Common.Socket.Event.Interface; using XSockets.Core.Common.Socket.Event.Arguments; namespace H_Man { public class ClientController : XSocketController { private string vmGUID = string.Empty; public ClientController() { this.OnOpen += ClientAcceptor_OnOpen; this.OnClose += ClientAcceptor_OnClose; } private void ClientAcceptor_OnOpen(object sender, OnClientConnectArgs e) { this.vmGUID = e.Controller.ClientGuid.ToString(); GlobalCache.HostMachine.AddVM(this.vmGUID); Console.WriteLine("Client connected from x: {0}", e.Controller.ClientGuid); } private void ClientAcceptor_OnClose(object sender, OnClientDisconnectArgs e) { GlobalCache.HostMachine.RemoveVM(this.vmGUID); Console.WriteLine("Client disconnected from x: {0}", e.Controller.ClientGuid); } public override void OnMessage(ITextArgs textArgs) { string eventType = textArgs.@event; switch (eventType) { case MessageName.VmantoHmanResInfo: VMPacket vmPacket = textArgs.data.Deserialize(); // Resource handler : read rest of the resource from Xen ResourceHandler.UpdateVMPacket(vmPacket); GlobalCache.HostMachine.UpdateVM(this.vmGUID, vmPacket); ResourceHandler.ReadHostInfo(); GlobalCache.HostMachine.Print(); break; } } } }