public override bool Equals(object obj) { StatusThread thread = obj as StatusThread; if (State == thread.State && HowLong == thread.HowLong && ProblemInstanceId == thread.ProblemInstanceId && TaskId == thread.TaskId && ProblemType == thread.ProblemType) { return(true); } return(false); }
public static StatusMessage CreateStatusMessage() { ulong id = 12; StatusThread statusThread1 = new StatusThread(StatusThreadState.Idle); StatusThread statusThread2 = new StatusThread(StatusThreadState.Idle); ulong howLong = 1000; ulong problemInstanceId = 2; ulong taskId = 1; string problemType = "TCP"; StatusThread statusThread3 = new StatusThread(StatusThreadState.Busy, howLong, problemInstanceId, taskId, problemType); StatusThread[] statusThreads = { statusThread1, statusThread2, statusThread3 }; StatusMessage expectedMessage = new StatusMessage(id, statusThreads); return expectedMessage; }
public void Parse_XMLString_StatusMessage() { /*********** Actual message ***********/ string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"xml_samples\Status.xml"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); string xmlStr = xmlDoc.OuterXml; string name = Message.GetMessageName(xmlStr); StatusMessage actualMessage = null; if(name == StatusMessage.ELEMENT_NAME) actualMessage = StatusMessage.Construct(xmlStr); /*********** Expected message ***********/ ulong id = 12; StatusThread statusThread1 = new StatusThread(StatusThreadState.Idle); StatusThread statusThread2 = new StatusThread(StatusThreadState.Idle); ulong howLong = 1000; ulong problemInstanceId = 2; ulong taskId = 1; string problemType = "TCP"; StatusThread statusThread3 = new StatusThread(StatusThreadState.Busy, howLong, problemInstanceId, taskId, problemType); StatusThread[] statusThreads = { statusThread1, statusThread2, statusThread3 }; StatusMessage expectedMessage = new StatusMessage(id, statusThreads); Assert.AreEqual(expectedMessage, actualMessage); }
public void Parse_StatusMessage_XMLString() { string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"xml_samples\Status.xml"); ulong id = 12; StatusThread statusThread1 = new StatusThread(StatusThreadState.Idle); StatusThread statusThread2 = new StatusThread(StatusThreadState.Idle); ulong howLong = 1000; ulong problemInstanceId = 2; ulong taskId = 1; string problemType = "TCP"; StatusThread statusThread3 = new StatusThread(StatusThreadState.Busy, howLong, problemInstanceId, taskId, problemType); StatusThread[] statusThreads = { statusThread1, statusThread2, statusThread3 }; StatusMessage message = new StatusMessage(id, statusThreads); string actualXmlStr = message.ToXmlString(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); string expectedXmlStr = xmlDoc.OuterXml; Assert.AreEqual(expectedXmlStr, actualXmlStr); }
/// <summary> /// /// </summary> /// <param name="id"> /// The ID of node (the one assigned by server) /// </param> /// <param name="statusThreads"> /// List of statuses for different threads /// </param> public StatusMessage(ulong id, StatusThread[] statusThreads) { Id = id; Threads = statusThreads; }
/******************************************************************/ /************************** CONSTRUCTORS **************************/ /******************************************************************/ public TaskThread(int id, string solvableProblem, MessageProcessor messageProcessor, int nodeID) { NodeID = nodeID; ID = id; // UCCTaskSolver.TaskSolver taskSolver = UCCTaskSolver.TaskSolverCreator(); //TaskSolver = taskSolver; StatusThread = new StatusThread(StatusThreadState.Idle); MessageProcessor = messageProcessor; SolvableProblem = solvableProblem; }
/// <summary> /// Returns a status message based on this object /// </summary> /// <returns></returns> public StatusMessage ToStatusMessage() { StatusThread[] statusThreads = new StatusThread[ParallelThreads]; for (int i = 0; i < ParallelThreads; i++) { statusThreads[i] = TaskThreads[i].StatusThread; } return new StatusMessage(Id, statusThreads); }