Example #1
0
        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);
 }