private void SocketHandler() { NetMessage m = new NetMessage(); SimulationEvent e = null; while (true) { try { m.Receive(ref netStream); switch (m.type) { case NetMessageType.EVENT: try { e = SimulationEventFactory.XMLDeserialize(m.msg); lock (eventQueueLock) { eventQueue.Add(e); } } catch (Exception exc) { ErrorLog.Write(String.Format("NONFATAL Deserialize Error in NetworkClient: {0}", m.msg)); ErrorLog.Write(exc.ToString()); } break; case NetMessageType.DISCONNECT: System.Console.WriteLine("NetworkClient: recieved Shutdown message from server. Disconnecting..."); Disconnect(); return; case NetMessageType.PING: break; case NetMessageType.NONE: System.Console.WriteLine("NetworkClient: Message with no type received. Disconnecting."); Disconnect(); return; default: throw new Exception("NetworkClient: recieved unhandled message"); } } catch (System.IO.IOException) { System.Console.WriteLine("NetworkClient: Lost connection with remote server!"); netStream.Close(); netStream.Dispose(); isConnected = false; clientThread.Abort(); return; } } }
List <SimulationEvent> LoadForkReplayFile(String filename) { List <SimulationEvent> events = new List <SimulationEvent>(); if (filename == null) { return(events); } StreamReader re = File.OpenText(filename); string input = null; SimulationEvent ev = null; input = re.ReadLine(); // thriow away the line with the version number while ((input = re.ReadLine()) != null) { try { ev = SimulationEventFactory.XMLDeserialize(input); if (SimulationEventFactory.ValidateEvent(ref m_simModelInfo, ev)) { if (m_simModelInfo.eventModel.events[ev.eventType].shouldForkReplay) { events.Add(ev); } } else { throw new Exception("error reading: " + input); } } catch (Exception e) { ErrorLog.Write(String.Format("NONFATAL Deserialize Error in ForkReplayToQueues: {0}", input)); ErrorLog.Write(e.ToString()); } } re.Close(); return(events); }
private void loadEventsButton_Click(object sender, EventArgs e) { if (ofd2.ShowDialog() == DialogResult.OK) { StreamReader re = File.OpenText(ofd2.FileName); string input = null; SimulationEvent ev = null; eventsListBox.Items.Clear(); while ((input = re.ReadLine()) != null) { ev = SimulationEventFactory.XMLDeserialize(input); if (SimulationEventFactory.ValidateEvent(ref simModel, ev)) { eventsListBox.Items.Add(new EventListBoxItem(ev)); } else { MessageBox.Show("event file contains invalid event: \"" + input + "\""); } } re.Close(); } }
private void LoadEvents(string fileName) { StreamReader re = File.OpenText(fileName); string input = null; SimulationEvent ev = null; events.Clear(); input = re.ReadLine(); // thriow away the line with the version number while ((input = re.ReadLine()) != null) { try { ev = SimulationEventFactory.XMLDeserialize(input); if (SimulationEventFactory.ValidateEvent(ref simModel, ev)) { if (simModel.eventModel.events[ev.eventType].shouldReplay) { events.Add(ev); } } else { throw new Exception("error reading: " + input); } } catch (Exception e) { ErrorLog.Write(String.Format("NONFATAL Deserialize Error in LogPlayer.Player: {0}", input)); ErrorLog.Write(e.ToString()); } } re.Close(); }
private void ConnectionHandler() { NetMessage m = new NetMessage(); SimulationEvent e = null; while (true) { try { m.Receive(ref netStream); switch (m.type) { case NetMessageType.REGISTER: eventDistClient = new SimulationEventDistributorClient(); networkServer.eventDist.RegisterClient(ref eventDistClient); m_terminalID = m.TerminalID; m.type = NetMessageType.REGISTER_RESPONSE; //m.clientID = networkServer.RegisterClient(); m.clientID = eventDistClient.id; m.Send(ref netStream, m.TerminalID); break; case NetMessageType.SUBSCRIBE: eventDistClient.Subscribe(m.msg); break; case NetMessageType.EVENT: try { e = SimulationEventFactory.XMLDeserialize(m.msg); eventDistClient.PutEvent(e); } catch (Exception exc) { ErrorLog.Write(String.Format("NONFATAL Deserialize Error in NetworkServer: {0}", m.msg)); ErrorLog.Write(exc.ToString()); } //networkServer.EventFromClient(e); break; case NetMessageType.DISCONNECT: //netStream.Close(0); System.Console.WriteLine("NetworkServerConnectionHandler.ConnectionHandler:connection closed"); //netStream.Dispose(); //networkServer.RemoveClient(eventDistClient.id); sendThread.Abort(); ForceClose(); return; case NetMessageType.NONE: ErrorLog.Write(String.Format("NONFATAL Deserialize Error in NetworkServer: {0}", m.msg)); ErrorLog.Write(String.Format("TYPE: {0}; MSG: {1};", m.type, m.msg)); break; default: throw new Exception("connection handler got an invalid event"); } } catch (System.IO.IOException exc) { System.Console.WriteLine("NetworkServerConnectionHandler.ConnectionHandler:lost connection with client"); ForceClose(); return; } catch (System.ObjectDisposedException) { return; } catch (ThreadAbortException) { return; } catch (Exception exc) { MessageBox.Show("An error has occured in the Simulation Server.\nPlease email the C:\\DDDErrorLog.txt file to Aptima customer support with a description of what you were doing at the time of the error."); ErrorLog.Write(exc.ToString() + "\n"); throw new Exception(); } } }