Esempio n. 1
0
        void uploadFile(string filename, string ToSendPath, string savePath)

        {
            string fqname = System.IO.Path.Combine(ToSendPath, filename);

            try
            {
                hrt.Start();
                using (var inputStream = new FileStream(System.IO.Path.GetFullPath(fqname), FileMode.Open))
                {
                    FileTransferMessage msg = new FileTransferMessage();
                    msg.filename       = filename;
                    msg.transferStream = inputStream;
                    msg.savePath       = savePath;
                    channel.upLoadFile(msg);
                }

                hrt.Stop();
                Console.Write("\n  Uploaded file \"{0}\" in {1} microsec.", filename, hrt.ElapsedMicroseconds);
            }
            catch
            {
                Console.Write("\n  can't find \"{0}\"", fqname);
            }
        }
 public void upLoadFile(FileTransferMessage msg)
 {
     int totalBytes = 0;
     hrt.Start();
     filename = msg.filename;
     string rfilename = Path.Combine(savePath, filename);
     if (!Directory.Exists(savePath))
         Directory.CreateDirectory(savePath);
     using (var outputStream = new FileStream(rfilename, FileMode.Create))
     {
         while (true)
         {
             int bytesRead = msg.transferStream.Read(block, 0, BlockSize);
             totalBytes += bytesRead;
             if (bytesRead > 0)
                 outputStream.Write(block, 0, bytesRead);
             else
                 break;
         }
     }
     hrt.Stop();
     Console.Write(
       "\n  Received file \"{0}\" of {1} bytes in {2} microsec.",
       filename, totalBytes, hrt.ElapsedMicroseconds
     );
 }
Esempio n. 3
0
        void caseRequestFile(CommandData cmdData)//command to request file
        {
            success = true;
            IFileService fs    = null;
            int          count = 0;

            while (true)
            {
                try
                {
                    fs = TestHarness.fileSender.CreateChannel(THFRcvr);
                    break;
                }
                catch
                {
                    Console.Write("\n  connection to service failed {0} times - trying again", ++count);
                    Thread.Sleep(500);
                    continue;
                }
            }
            Console.Write("\n  Connected to {0}\n", THFRcvr);
            string        filepath = Path.GetFullPath(relativeFilePath);
            List <string> dllFiles;

            dllFiles = XmlDecoder.getDLLFiles("../../../repo/" + cmdData.testAuthor + "_" + cmdData.dateTime + "_" + cmdData.xmlFile);
            dllFiles.Add(cmdData.xmlFile);
            foreach (string dllfile in dllFiles)
            {
                Console.WriteLine("-------------this is for requirement 2----------:\nthe file required in the XML include:" + dllfile);
                string file = filepath + cmdData.testAuthor + "_" + cmdData.dateTime + "_" + dllfile;
                timer.Start();
                if (!fileSender.SendFile(fs, file))
                {
                    timer.Stop();
                    Console.Write("\n  could not send file");
                    cmdData.command = "FileNotMatch";
                    cmdData.from    = "Repository";
                    cmdData.to      = "TestHarness";
                    success         = false;
                }
                else
                {
                    timer.Stop();
                    Console.WriteLine("send file :{0} in {1} ", file, timer.ElapsedTimeSpan);
                }
                Console.Write("\n\n");
            }
            if (success == true)
            {
                sendRunTest(cmdData);
            }
            else
            {
                sendFileNotMatch(cmdData);
            }
        }
Esempio n. 4
0
        //----< process query requests and frame appropriate reply message >-----
        public Message ProcessQuery(Message msg)
        {
            Console.WriteLine("Received Query Request");
            string queryString; int queryType;

            parser.decodeQuery(msg, out queryType, out queryString);

            Message result;

            perfTimer.Start();

            if (queryType == 0)
            {
                string content = QueryOperations(queryString);
                content = "<Value>" + content + "</Value>";
                result  = maker.makeQueryReult(msg, content);
            }
            else
            {
                List <string> keys = QueryOperations(queryType, queryString);
                result = maker.makeQueryReult(msg, keys);
            }
            perfTimer.Stop();
            reqCount++;
            totalTime += perfTimer.ElapsedMicroseconds;

            Console.WriteLine("Sent Query Result");
            return(result);
        }
Esempio n. 5
0
        void EmulateCyclesWithout1541()
        {
#if TIMERS
            uint       lc    = CycleCounter;
            HiResTimer timer = new HiResTimer();
            timer.Start();
            const uint cycleCount = 4000000;
#endif

            thread_running = true;
            while (!quit_thyself)
            {
                // The order of calls is important here
                if (TheVIC.EmulateCycle())
                {
                    TheSID.EmulateLine();
                }
                TheCIA1.CheckIRQs();
                TheCIA2.CheckIRQs();
                TheCIA1.EmulateCycle();
                TheCIA2.EmulateCycle();
                TheCPU.EmulateCycle();

                CycleCounter++;

#if TIMERS
                if (CycleCounter - lc == cycleCount)
                {
                    timer.Stop();
                    lc = CycleCounter;
                    double elapsedSec = timer.ElapsedMilliseconds / 1000.0f;

                    Console.WriteLine("------------------------------------");
                    Console.WriteLine("{0} ms elapsed for {1:N} cycles", timer.ElapsedMilliseconds, cycleCount);
                    Console.WriteLine("CIA1: TA Interrupts: {0} -> int/s: {1}", TheCIA1.ta_interrupts, TheCIA1.ta_interrupts / elapsedSec);
                    Console.WriteLine("CPU Instructions: {0} -> ins/s: {1}", TheCPU.ins_counter, TheCPU.ins_counter / elapsedSec);

                    // reset counters
                    TheCIA1.ta_interrupts = 0;
                    TheCIA1.tb_interrupts = 0;
                    TheCIA2.ta_interrupts = 0;
                    TheCIA2.tb_interrupts = 0;
                    TheCPU.ins_counter    = 0;

                    timer.Reset();
                    timer.Start();
                    //TheDisplay.Surface.Update();
                }
#endif
            }
        }
Esempio n. 6
0
        //retrun bool
        public bool run(ITest testDriver, string testDriverName, Logger objLogger)
        {
            bool status = false;

            try
            {
                Console.Write(" Running test driver : {0} in Domain {1} ", testDriverName, AppDomain.CurrentDomain.FriendlyName);
                objLogger.log("Running test driver " + testDriverName);
                hrt.Start();
                if (testDriver.test() == true)
                {
                    status = true;
                    Console.WriteLine("\n  test passed");
                    hrt.Stop();
                    Console.WriteLine("******Requirement 12: Time Taken for executings test");
                    Console.WriteLine("Time for executing test {0}", hrt.ElapsedMicroseconds);
                    objLogger.log("test driver " + testDriverName + " Passed");
                }
                else
                {
                    Console.WriteLine("\n  test failed");
                    objLogger.log("test driver " + testDriverName + " Failed");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("Caught Exception in Test Driver {0}", testDriverName, ex);
                objLogger.log("test driver " + testDriverName + " Failed");
                objLogger.log("Caught Exception in Test Driver " + testDriverName + " Exception:" + ex);
            }
            return(status);
        }
Esempio n. 7
0
        private void bnInvoke_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                Init();

                HiResTimer hrt = new HiResTimer();

                hrt.Start();
                object result = wsp.InvokeCall();
                hrt.Stop();

                tbElapsedTime.Text = hrt.ElapsedMicroseconds.ToString();
                tbResult.Text      = result.ToString();

                if (wsp.EnableMessageAccess)
                {
                    string tmpReqFile  = SaveRequestToTempFile(wsp.SoapRequest);
                    string tmpRespFile = SaveResponseToTempFile(wsp.SoapResponse);

                    object obj = null;
                    webBrowserRequest.Navigate("file://" + tmpReqFile, ref obj, ref obj, ref obj, ref obj);
                    webBrowserResponse.Navigate("file://" + tmpRespFile, ref obj, ref obj, ref obj, ref obj);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            this.Cursor = Cursors.Default;
        }
Esempio n. 8
0
        public Stream downLoadFile(string ToSendPath, string filename)
        {
            hrt.Start();
            string     sfilename = Path.Combine(ToSendPath, filename);
            FileStream outStream = null;

            if (File.Exists(sfilename))
            {
                outStream = new FileStream(sfilename, FileMode.Open);
            }
            else
            {
                throw new Exception("open failed for \"" + filename + "\"");
            }
            hrt.Stop();
            Console.Write("\n  Sent \"{0}\" in {1} microsec.", filename, hrt.ElapsedMicroseconds);
            return(outStream);
        }
Esempio n. 9
0
        //----< Entry point into Write Client >------------------------------
        static void Main(string[] args)
        {
            WriteClient clnt    = new WriteClient();
            bool        success = clnt.ProcessCommandArgsAndFile(clnt, args);

            if (!success)
            {
                return;
            }

            HiResTimer     timer       = new HiResTimer(); timer.Start();
            List <Message> messageList = clnt.ProcessXML("MessagePrototype.xml");

            clnt.latencyTimers.Add(new HiResTimer());
            clnt.latencyValues.Add(new ulong());
            foreach (Message message in messageList)
            {
                if (clnt.sndr.sendMessage(message))
                {
                    HiResTimer temp = new HiResTimer();
                    temp.Start(); clnt.latencyTimers.Add(temp);
                    clnt.latencyValues.Add(new ulong());
                    Console.Write("\n  Request ID: {0}\n", message.messageID);
                    Console.WriteLine(message.content);
                }
                else
                {
                    Console.Write("\n  could not connect in {0} attempts", clnt.sndr.MaxConnectAttempts);
                    clnt.sndr.shutdown(); clnt.rcvr.shutDown(); return;
                }
            }
            timer.Stop(); Console.WriteLine("\n  =====================================================");
            Console.WriteLine("\n   Total time to send all the messages: {0} microseconds", timer.ElapsedMicroseconds);
            Console.WriteLine("\n  =====================================================");

            Message msg = new Message();

            msg.fromUrl = clnt.localUrl;
            msg.toUrl   = clnt.remoteUrl;
            msg.content = "done";
            clnt.sndr.sendMessage(msg);
            while (true)
            {
                if (clnt.rcvCount == messageList.Count())
                {
                    Thread.Sleep(50);
                    clnt.performanceAnalysis();
                    break;
                }
            }
            Util.waitForUser();
            clnt.rcvr.shutDown();
            clnt.sndr.shutdown();
            Console.Write("\n\n");
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            HiResTimer hrt = new HiResTimer();

            hrt.Start();
            M();
            hrt.Stop();

            Console.WriteLine("{0}", hrt.ElapsedMicroseconds);
            Console.ReadLine();
        }
Esempio n. 11
0
        //----< run client demo >----------------------------------------

        static void Main(string[] args)
        {
            Console.Title = "Client 1 Console";
            Console.Write("\n  Testing Client Demo");
            Console.Write("\n =====================\n");
            Client clnt = new Client();

            clnt.comm.sndr.channel = Sender.CreateServiceChannel("http://localhost:8082/StreamService");
            HiResTimer hrt = new HiResTimer();

            hrt.Start();
            clnt.comm.sndr.uploadFile("TestDriver.dll");
            clnt.comm.sndr.uploadFile("TestedCode.dll");
            hrt.Stop();
            Console.WriteLine("\n**********************************************************************");
            Console.WriteLine("\nDemonstrating requirement 12 latency");
            Console.Write(
                "\n\n  total elapsed time for uploading = {0} microsec.\n",
                hrt.ElapsedMicroseconds
                );
            Message msg = clnt.makeMessage("Brahma", clnt.endPoint, clnt.endPoint);

            msg.type = "TestRequest";
            msg      = clnt.makeMessage("Brahma", clnt.endPoint, clnt.endPoint);
            msg.body = MessageTest.makeTestRequest();
            Console.WriteLine("\n**********************************************************************");
            Console.WriteLine("\n Demonstrating requirement 2 : XML messages");
            msg.showMsg();
            string remoteEndPoint = Comm <Client> .makeEndPoint("http://localhost", 8080);

            msg    = msg.copy();
            msg.to = remoteEndPoint;
            clnt.comm.sndr.PostMessage(msg);
            string repository = Comm <Client> .makeEndPoint("http://localhost", 8082);

            msg      = clnt.makeMessage("Brahma", clnt.endPoint, repository);
            msg.type = "testlogs";
            msg.body = "brahma";
            clnt.comm.sndr.PostMessage(msg);
            Console.Write("\n  press key to exit: ");
            Console.ReadKey();
            msg.body = "quit";
            clnt.comm.sndr.PostMessage(msg);
            msg.showMsg();
            Console.Write("\n\n  Press key to terminate client");
            Console.ReadKey();
            Console.Write("\n\n");
            clnt.wait();
            ((IChannel)clnt.comm.sndr).Close();
            Console.Write("\n\n");
        }
Esempio n. 12
0
        public void ThreadProc(InternalMessage imsg) //all file loading exceptions are handled here
        {
            FileClient    clnt        = new FileClient();;
            HiResTimer    hrt         = new HiResTimer();
            MessageClient msgSender   = new MessageClient();
            Message       msgToClient = new Message();

            Console.WriteLine("");
            Console.WriteLine("===============================================================");
            try
            {
                clnt.CreateFileChannel(imsg.connectMessage.fileConnectAddress);
                Console.WriteLine("\n Identifying Load request message...");
                if (imsg.fileMessage.loadType == "Download")
                {
                    foreach (string file in imsg.fileMessage.fileNames)
                    {
                        clnt.download(file, imsg.fileMessage.loadPath);
                    }
                    msgToClient = msgSender.SetupMessages(true, "Files successfully downloaded by Repository.", imsg.recipient);
                }
                else
                {
                    foreach (string file in imsg.fileMessage.fileNames)
                    {
                        clnt.upload(file, imsg.fileMessage.loadPath);
                    }
                    msgToClient = msgSender.SetupMessages(true, "Files successfully uploaded from Repository.", imsg.recipient);
                }
            }
            catch (Exception ex)
            {
                msgToClient = msgSender.SetupMessages(false, "\n[Error message]:" + ex.Message, imsg.recipient);
            }
            finally
            {
                Console.WriteLine("\nConnecting to message channel...");
                msgSender.CreateMessageChannel(imsg.connectMessage.MessageConnectAddress);
                Console.WriteLine("\nSending message about loading status back...");
                hrt.Start();
                msgSender.channel.PostMessage(msgToClient);
                hrt.Stop();
                Console.WriteLine("");
                Console.WriteLine("\nMessage sent back in {0} microsec.", hrt.ElapsedMicroseconds);
                Console.WriteLine("");
            }
        }
 public void THMsgProc()
 {
     while (true)
     {
         HiResTimer hrt = new HiResTimer();
         Message    msg = msgReciever.TryGetTHMessage();
         Console.WriteLine("\n<--------------------------------------------------------->");
         Console.WriteLine("\nMessage recieved from test harness.");
         if (msg.recipient == "AboutLog")
         {
             Console.WriteLine("\nDemonstrating test logs and results:");
             TestResults tr = msgReciever.ParseResultMsg(msg);
             Console.WriteLine(tr.log);
             Console.WriteLine("\nDemonstrating querying results from repository:");
             Console.WriteLine("\nSending message to repository...");
             clientUtil.SetupQueryMessageToRepo(msgToRepoQuery, tr, "http://localhost:4244/ICommService/BasicHttp",
                                                "http://localhost:8284/ICommService/BasicHttp", "Upload");
             msgSenderwithRepo.channel.PostMessage(msgToRepoQuery);
             Console.WriteLine("\nWaiting for message from repository...");
             hrt.Start();
             Message repoReply = msgReciever.TryGetRepoMessage("Query");
             hrt.Stop();
             Console.WriteLine("");
             Console.WriteLine("\nRecieved message in {0} microsec.", hrt.ElapsedMicroseconds);
             Console.WriteLine("");
             TestLoadStatus loadStatus = msgReciever.ParseLoadMsg(repoReply);
             Console.WriteLine(loadStatus.loadMessage);
             using (FileStream fs = new FileStream(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..\\..\\..\\TestResults", tr.LogName + "Summary.txt"), FileMode.Open))
                 using (StreamReader sr = new StreamReader(fs))
                 {
                     Dispatcher.Invoke(
                         new Action <string>(ShowStringResult),
                         System.Windows.Threading.DispatcherPriority.Background,
                         new string[] { sr.ReadToEnd() });
                 }
         }
         else
         {
             Console.WriteLine("\nDemonstrating dll load status in test harness:");
             Dispatcher.Invoke(
                 new Action <string>(ShowLoadMsg),
                 System.Windows.Threading.DispatcherPriority.Background,
                 new string[] { msgReciever.ParseLoadMsg(msg).loadMessage });
         }
     }
 }
Esempio n. 14
0
        public void THMsgProc()
        {
            while (true)
            {
                HiResTimer hrt = new HiResTimer();
                Message    msg = msgReciever.TryGetTHMessage();
                Console.WriteLine("\n<--------------------------------------------------------->");
                Console.WriteLine("\nMessage recieved from test harness.");
                if (msg.recipient == "AboutLog")
                {
                    Console.WriteLine("\nDemonstrating test logs and results:");
                    TestResults tr = msgReciever.ParseResultMsg(msg);
                    Console.WriteLine(tr.log);

                    Console.WriteLine("\nDemonstrating querying results from repository:");
                    Console.WriteLine("\nSending message to repository...");
                    SetupQueryMessageToRepo(tr, "http://localhost:4048/ICommService/BasicHttp",
                                            "http://localhost:8088/ICommService/BasicHttp", "Upload");

                    msgSenderwithRepo.channel.PostMessage(msgToRepoQuery);

                    Console.WriteLine("\nWaiting for message from repository...");
                    hrt.Start();
                    Message repoReply = msgReciever.TryGetRepoMessage("Query");
                    hrt.Stop();
                    Console.WriteLine("");
                    Console.WriteLine("\nRecieved message in {0} microsec.", hrt.ElapsedMicroseconds);
                    Console.WriteLine("");
                    TestLoadStatus loadStatus = msgReciever.ParseLoadMsg(repoReply);
                    Console.WriteLine(loadStatus.loadMessage);
                    if (loadStatus.status)
                    {
                        using (FileStream fs = new FileStream(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..\\..\\..\\TestResults", tr.LogName + "Summary.txt"), FileMode.Open))
                            using (StreamReader sr = new StreamReader(fs))
                            {
                                Console.WriteLine(sr.ReadToEnd());
                            }
                    }
                }
                else
                {
                    Console.WriteLine("\nDemonstrating dll load status in test harness:");
                    Console.WriteLine(msgReciever.ParseLoadMsg(msg).loadMessage);
                }
            }
        }
Esempio n. 15
0
        static void Main(string[] args)
        {
            object locker = new object();

            lock (locker)
            {
                Client client = new Client();
                client.ClientSetup(client);
                Thread childTH = new Thread(new ThreadStart(client.THMsgProc));
                childTH.Start();
                try
                {
                    client.GetRequestFiles();
                    foreach (info_In_One_Request_Folder info in client.folderInfoList)
                    {
                        HiResTimer hrt = new HiResTimer();
                        client.SetupLoadMessageToRepo(info, "http://localhost:4048/ICommService/BasicHttp",
                                                      "http://localhost:8088/ICommService/BasicHttp", "Download");
                        client.msgSenderwithRepo.channel.PostMessage(client.msgToRepoLoad);
                        Console.WriteLine("\nWaiting for message from repository");
                        hrt.Start();
                        Message msgFromRepo = client.msgReciever.TryGetRepoMessage("Load");
                        hrt.Stop();
                        TestLoadStatus loadStatus = client.msgReciever.ParseLoadMsg(msgFromRepo);
                        Console.WriteLine("");
                        Console.WriteLine("\nRecieved message from repository in {0} microsec", hrt.ElapsedMicroseconds);
                        Console.WriteLine("");
                        Console.WriteLine(loadStatus.loadMessage);
                        if (loadStatus.status)
                        {
                            Console.WriteLine("\nSending message to TH");
                            client.SetupMessageToTH(info, "http://localhost:4048/ICommService/BasicHttp", "http://localhost:8088/ICommService/BasicHttp");
                            client.msgSenderwithTH.channel.PostMessage(client.msgToTH);
                        }
                    }
                    childTH.Join();
                    Console.ReadKey();
                }
                catch (Exception ex)
                {
                    Console.Write("\n\n  {0}", ex.Message);
                }
                Console.Write("\n\n");
            }
        }
Esempio n. 16
0
        //----< create local directory and load from Repository >--------

        RequestInfo processRequestAndLoadFiles(Message testRequest)
        {
            HiResTimer  hrt       = new HiResTimer();
            string      localDir_ = "";
            RequestInfo rqi       = new RequestInfo();

            rqi.requestInfo = extractTests(testRequest);
            List <string> files = extractCode(rqi.requestInfo);

            localDir_ = makeKey(testRequest.author);
            Console.WriteLine(" \n Key :", localDir_);
            Console.WriteLine("\n**********************************************************************");
            Console.WriteLine("\nDemonstrating requirement 8 ,unique key");
            // name of temporary dir to hold test files
            rqi.tempDirName = localDir_;
            lock (sync_)                {
                filePath_ = System.IO.Path.GetFullPath(localDir_);      // LoadAndTest will use this path
                TLS[Thread.CurrentThread.ManagedThreadId] = filePath_;
            }                Console.Write("\n  creating local test directory \"" + localDir_ + "\"");
            System.IO.Directory.CreateDirectory(localDir_);           //for file streaming to download files
            this.comm.sndr.channel = Sender.CreateServiceChannel("http://localhost:8082/StreamService");
            Console.Write("\n  loading code from Repository");
            foreach (string file in files)
            {
                hrt.Start();
                try                {
                    string name = System.IO.Path.GetFileName(file);
                    this.comm.sndr.changepath(System.IO.Path.GetFullPath(localDir_));
                    this.comm.sndr.download(file);
                }
                catch (Exception message)                       {
                    Console.Write("Exception of file", message);
                    Console.Write("\n    TID" + Thread.CurrentThread.ManagedThreadId + ": could not retrieve file \"" + file + "\"");
                }            hrt.Stop();
                Console.Write(
                    "\n\n  Total elapsed time for downloading = {0}",
                    hrt.ElapsedMicroseconds);
                Console.Write("\n    TID" + Thread.CurrentThread.ManagedThreadId + ": retrieved file \"" + file + "\"");
            }
            Console.WriteLine();
            return(rqi);
        }
Esempio n. 17
0
        void changeNameAndSendToRepo(string filename, CommandData cmd)//change name so that every file will have a unique name in repository
        {
            if (File.Exists(filename))
            {
                string newname = System.IO.Path.GetDirectoryName(filename) + "/" + cmd.testAuthor + "_" + cmd.dateTime + "_" + System.IO.Path.GetFileName(filename);
                File.Move(filename, newname);
                IFileService fs    = null;
                int          count = 0;
                while (true)
                {
                    try
                    {
                        fs = TestHarness.fileSender.CreateChannel(RepoFRcvr);
                        break;
                    }
                    catch
                    {
                        textBox7.Text += ("\n  connection to service failed " + count + " times - trying again");
                        count++;
                        Thread.Sleep(500);
                        continue;
                    }
                }
                textBox7.Text += ("\n  Connected to " + RepoFRcvr);
                textBox7.Text += ("\n  sending file:" + newname);
                timer.Start();
                if (!fileSender.SendFile(fs, newname))
                {
                    Console.Write("\n  could not send file");
                    timer.Stop();
                }
                else
                {
                    timer.Stop();
                    textBox7.Text += ("\nfile send success, usingtime: " + timer.ElapsedTimeSpan);
                }

                File.Move(newname, filename);
            }
        }
 //Main function parses and sends the messages to server//
 static void Main(string[] args)        {
     Util.verbose = false;
     Server srvr = new Server();
     srvr.ProcessCommandLine(args);
     Console.Title = "Server";
     Console.Write(String.Format("\n  Starting CommService server listening on port {0}", srvr.port));
     Console.Write("\n ====================================================\n");
     Sender sndr = new Sender(Util.makeUrl(srvr.address, srvr.port));
     Receiver rcvr = new Receiver(srvr.port, srvr.address);
     Action serviceAction = () =>               {
         Message msg = null;
         DBEngine<int, DBElement<int, string>> dbserver = new DBEngine<int, DBElement<int, string>>(); //new DBEngine
         QueryEngine QE = new QueryEngine();
         HiResTimer timer = new HiResTimer(); //new object for timer
         while (true)                 {
             msg = rcvr.getMessage();   // note use of non-service method to deQ messages
             Console.Write("\n  Received message:");
             Console.Write("\n  sender is {0}", msg.fromUrl);
             Console.Write("\n  content is {0}\n", msg.content);
             if (msg.content == "connection start message")
                 continue; // don't send back start message
             if (msg.content == "done")
             { Console.Write("\n  client has finished\n");continue; }
             if (msg.content == "closeServer")
             {  Console.Write("received closeServer"); break; }
             timer.Start();                  //start timer
             XElement insertelem = XElement.Parse(msg.content);
             XElement res = new XElement("result", "not found");
             processor rdbserver = new processor();
             Console.WriteLine("\n----------write client operations----------");
             Console.WriteLine("\n");
             //----------select the required method to perform operations------------//
             if (insertelem.Element("Type").Value.Equals("Insert"))
                 res = rdbserver.insert(insertelem, dbserver);
                else if (insertelem.Element("Type").Value.Equals("Delete"))
                 res = rdbserver.Delete(insertelem, dbserver);
              else if (insertelem.Element("Type").Value.Equals("EditName"))
                 res = rdbserver.EditName(insertelem, dbserver);
              else if (insertelem.Element("Type").Value.Equals("getvalue"))
                 res = rdbserver.getvalue(insertelem, dbserver, QE);
              else if (insertelem.Element("Type").Value.Equals("EditDescr"))
                 res = rdbserver.editdescr(insertelem, dbserver);
              else if (insertelem.Element("Type").Value.Equals("getchildren"))
                 res = rdbserver.getchildren(insertelem, dbserver, QE);
             else if (insertelem.Element("Type").Value.Equals("Persist"))
                 res = rdbserver.persistdb(insertelem, dbserver);
             else   Console.Write("   operation failed   ");
              Console.WriteLine("\n-------------server response----------");
             XElement response = new XElement("resonse");
             response.Add(res);
             timer.Stop();              //stop timer
             Console.WriteLine("the time taken for operation is {0}", timer.ElapsedMicroseconds + " MicroSeconds ");
             srvr.send_wpf_msg(timer.ElapsedMicroseconds, sndr);
             Util.swapUrls(ref msg);
             msg.content = response.ToString();
             sndr.sendMessage(msg);             //sending message    
               }   };
     if (rcvr.StartService())
     rcvr.doService(serviceAction); // This serviceAction is asynchronous so the call doesn't block.
     Util.waitForUser();        }    }
Esempio n. 19
0
		private void bnInvoke_Click(object sender, EventArgs e)
		{
			this.Cursor = Cursors.WaitCursor;
			
			try
			{
				Init();

				HiResTimer hrt = new HiResTimer();

				hrt.Start();
				object result = wsp.InvokeCall();
				hrt.Stop();

				tbElapsedTime.Text = hrt.ElapsedMicroseconds.ToString();
				tbResult.Text = result.ToString();

				if(wsp.EnableMessageAccess)
				{
					string tmpReqFile = SaveRequestToTempFile(wsp.SoapRequest);
					string tmpRespFile = SaveResponseToTempFile(wsp.SoapResponse);

					object obj = null;
					webBrowserRequest.Navigate ("file://" + tmpReqFile, ref obj, ref obj, ref obj, ref obj);
					webBrowserResponse.Navigate ("file://" + tmpRespFile, ref obj, ref obj, ref obj, ref obj);
				}
			}
			catch(Exception ex)
			{
				MessageBox.Show(ex.Message);
			}

			this.Cursor = Cursors.Default;
		}
Esempio n. 20
0
 /// <summary>
 ///  GetByKeyCriteria criteria for the query type 
 /// </summary>
 /// <param name="hres"></param>
 /// <param name="msg"></param>
 /// <param name="clnt"></param>
 /// <param name="sndr"></param>
 /// <param name="timerH"></param>
 /// <param name="docTemp"></param>
 /// <param name="msgid"></param>
 private static void GetByKeyCriteria(HiResTimer hres, Message msg, ReadClient clnt, Sender sndr, HiResTimer timerH, out XDocument docTemp, out string msgid)
 {
     docTemp = XDocument.Load("Input.xml");
     clnt.RemoveOtherReads(ref docTemp, "GetKeyCriteria");
     clnt.RemoveOtherWrites(ref docTemp, "GetKeyCriteria");
     XElement k = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetKeyCriteria").Select(j => j).Single();
     clnt.numMsgs = int.Parse(k.Elements("Count").Single().Value);
     clnt.total += clnt.numMsgs;
     hres.Start();
     timerH.Start();//High resolution timer started       
     msgid = "";
     for (int i = 0; i < clnt.numMsgs; i++)
     {
         docTemp = XDocument.Load("Input.xml");
         clnt.RemoveOtherReads(ref docTemp, "GetKeyCriteria");
         clnt.RemoveOtherWrites(ref docTemp, "GetKeyCriteria");
         msgid = clnt.msgRand++.ToString();
         XElement y = null;
         y = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetKeyCriteria").Select(j => j).Single();
         y.Elements("MessageID").Single().Value = msgid;
         y.Elements("InsertTime").Single().Value = DateTime.Now.Ticks.ToString();
         msg.content = docTemp.ToString();
         msg.fromUrl = clnt.localUrl;
         msg.toUrl = clnt.remoteUrl;
         if (sndr.sendMessage(msg))
         {
             Console.Write("Sent message(Message ID {0}) to GetCriteria from key\n", msgid);
             Thread.Sleep(50);
         }
     }
 }
        private void processEvaluate()
        {
            String[] sarray = { };

            try
            {
                toolStripStatusLabelMessage.Text = "Processing...";
                statusStrip1.Update();

                // Get URL, username and password from registry
                RetrieveSettings();


                // Clear spreadsheet
                (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells.ClearContents();
                DeleteCharts();
                (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells.ClearFormats();

                /*
                 * Excel.Range range;
                 * range = (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range("A5", Missing.Value);
                 * range = range.get_Resize(maxRows, colCount);
                 * range.Cells.ClearFormats();
                 */

                HiResTimer hrt = new HiResTimer();
                // Remove comments
                String queryString = System.Text.RegularExpressions.Regex.Replace(syntaxEditBES.Text, @"//.*", string.Empty);
                queryString = System.Text.RegularExpressions.Regex.Replace(queryString, @"/\*[^/]*/", string.Empty);

                hrt.Start();
                bes.Timeout = Timeout.Infinite;
                sarray      = bes.GetRelevanceResult(queryString, userName, password);
                hrt.Stop();

                TimeSpan t = TimeSpan.FromMilliseconds(hrt.ElapsedMicroseconds / 1000);
                // toolStripStatusLabelEvalTime.Text = "Evaluation time: " + (hrt.ElapsedMicroseconds / 1000).ToString() + " ms";
                toolStripStatusLabelEvalTime.Text           = "Query time: " + t.ToString().Remove(t.ToString().Length - 4);
                toolStripStatusLabelConnectedUser.Text      = "Connected as " + userName;
                toolStripStatusLabelConnectedUser.BackColor = System.Drawing.SystemColors.Control;

                Array.Sort(sarray);


                for (int i = 0; i < sarray.Length; i++)
                {
                    if (toolStripMenuItemSplit.Checked)
                    {
                        oneRow = SplitResults(sarray[i]);
                        for (int j = 0; j < oneRow.Length; j++)
                        {
                            (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells[i + 2, j + 1] = oneRow[j];
                        }
                    }
                    else
                    {
                        (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells[i + 2, 1] = sarray[i];
                    }
                }

                (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Columns.AutoFit();

                for (int i = 0; i < oneRow.Length; i++)
                {
                    Excel.Range rangeCol;
                    rangeCol = (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range(excelColumnLetter(i) + "1", excelColumnLetter(i) + "1");
                    if (Convert.ToInt32(rangeCol.ColumnWidth) > maxColumnWidth)
                    {
                        rangeCol.ColumnWidth = maxColumnWidth;
                    }
                }

                (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range("A1", "A1").Select();

                // Just to make the results look good, when only 1 item returned, it will say 1 item, rather than 1 items.
                if (sarray.Length == 0)
                {
                    toolStripStatusLabelMessage.Text      = "Results: " + sarray.Length + " items returned";
                    toolStripStatusLabelMessage.BackColor = System.Drawing.Color.LightGreen;
                    return;
                }
                else if (sarray.Length == 1)
                {
                    toolStripStatusLabelMessage.Text      = "Results: " + sarray.Length + " item returned";
                    toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control;
                }
                else if (sarray.Length <= Convert.ToInt32(2000))
                {
                    toolStripStatusLabelMessage.Text      = "Results: " + sarray.Length + " items returned";
                    toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control;
                }
                else
                {
                    toolStripStatusLabelMessage.Text      = "Results: " + sarray.Length + " items returned. " + "2000 items displayed";
                    toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control;
                }
            }
            catch (Exception ex)
            {
                toolStripStatusLabelMessage.Text      = "Error: " + ex.Message;
                toolStripStatusLabelMessage.BackColor = System.Drawing.Color.LightCoral;
                if ((ex.Message.ToLower().Contains("login failed")) || (ex.Message.ToLower().Contains("remote name could not be resolved")) ||
                    (ex.Message.ToLower().Contains("unable to connect to the remote server")) ||
                    (ex.Message.ToLower().Contains("invalid uri")) ||
                    (ex.Message.ToLower().Contains("uri prefix")) ||
                    (ex.Message.ToLower().Contains("connection was closed"))
                    )
                {
                    toolStripStatusLabelConnectedUser.Text      = "Not connected";
                    toolStripStatusLabelConnectedUser.BackColor = System.Drawing.Color.LightCoral;
                }

                if (ex.Message.ToLower().Contains("object reference not set to an instance of an object"))
                {
                    toolStripStatusLabelMessage.Text            = "Error: " + ex.Message + " - Note that this BigFix AddIn only works for BES 7.2 or above.";
                    toolStripStatusLabelMessage.BackColor       = System.Drawing.Color.LightCoral;
                    toolStripStatusLabelConnectedUser.Text      = "Not connected";
                    toolStripStatusLabelConnectedUser.BackColor = System.Drawing.Color.LightCoral;
                }
                toolStripStatusLabelEvalTime.Text = "";
            }
        }
    static void Main(string[] args)
    {
      Console.Write("{0}{1}",
        "\n  Time Parsing Operations ",
        "\n =========================\n"
      );

      OpTimer ot = new OpTimer();
      ot.Verbose = false;
      string fileName = "../../Test.cs";
      ot.ParseFile(fileName);

      HiResTimer hrt = new HiResTimer();
      hrt.Start();
      int N = 1000;
      for(int i=0; i<N; ++i)
        ot.HashLookUp("class");
      hrt.Stop();
      ulong lookUpTime = hrt.ElapsedMicroseconds;
      Console.Write("\n   {0} lookups took {1} microseconds",N,lookUpTime);
      Console.Write("\n\n");
      ot.showTable();
      Console.Write("\n\n");
    }
Esempio n. 23
0
 /// <summary>
 /// Proces wheh the response has been received
 /// </summary>
 /// <param name="srvr"></param>
 /// <param name="sndr"></param>
 /// <param name="msg"></param>
 /// <param name="msgid"></param>
 private static void ProcessResponse(Server srvr, Sender sndr, ref Message msg, ref string msgid)
 {
     HiResTimer hres = new HiResTimer(); //High Resolution Timer
     hres.Start();
     XDocument doc = XDocument.Load(new StringReader(msg.content));
     string op = doc.Descendants("Operation").Select(i => i).Single().Value;
     if (op == "Read")
         srvr.ProcessReadMessage(ref msg, ref msgid);
     else
         srvr.ProcessMessage(ref msg, ref msgid);
     hres.Stop();
     Console.WriteLine("Server execution time for processing message(MsgID:{0}) is {1} microseconds \n", msgid, hres.ElapsedMicroseconds);
     Util.swapUrls(ref msg);  // swap urls for outgoing message
     if (srvr.tot.ContainsKey(msg.toUrl))
     {
         ulong x = ulong.Parse(srvr.tot[msg.toUrl].ToString());
         x += hres.ElapsedMicroseconds;
         srvr.tot[msg.toUrl] = x.ToString();
     }
     else
         srvr.tot[msg.toUrl] = hres.ElapsedMicroseconds;
     sndr.sendMessage(msg);
 }
Esempio n. 24
0
        /// <summary>
        /// Insert performance results writer client
        /// </summary>
        /// <param name="hres"></param>
        /// <param name="msg"></param>
        /// <param name="clnt"></param>
        /// <param name="sndr"></param>
        /// <param name="xmlStr"></param>
        /// <param name="docTemp"></param>
        /// <param name="key"></param>
        /// <param name="msgid"></param>
        /// <returns></returns>
        private static string InsertPerformance(HiResTimer hres, Message msg, WriterClient clnt, Sender sndr, string xmlStr, out XDocument docTemp, out string key, out string msgid)
        {
            docTemp = XDocument.Load("Input.xml");
            XElement k = docTemp.Descendants("OperationMessage").Where(d => d.Element("Operation").Value == "Insert").Select(i => i).Single();
            if (k.Elements("Count").Single().Value != "")
                clnt.numMsgs = int.Parse(k.Elements("Count").Single().Value);
            clnt.total += clnt.numMsgs;
            hres.Start();     //High resolution timer started     
            key = "";
            msgid = "";
            for (int i = 0; i < clnt.numMsgs; i++)
            {
                docTemp = XDocument.Load("Input.xml");
                xmlStr = clnt.InsertGenerator(docTemp, ref msgid, ref key, "int");    //Generate data using the xml structure
                msg.content = xmlStr;
                msg.fromUrl = clnt.localUrl;
                msg.toUrl = clnt.remoteUrl;
                if (sndr.sendMessage(msg))
                {
                    Console.Write("Sent message(Message ID {0}) to insert into DB successfully\n", msgid);
                    Thread.Sleep(50);
                }
            }

            return xmlStr;
        }
Esempio n. 25
0
 /// <summary>
 ///  Performance testing by inserting items
 /// </summary>
 /// <param name="hres"></param>
 /// <param name="msg"></param>
 /// <param name="clnt"></param>
 /// <param name="rcvr"></param>
 /// <param name="sndr"></param>
 private static void PerformanceTesting(HiResTimer hres, Message msg, WriterClient clnt, Receiver rcvr, Sender sndr)
 {
     try
     {
         XmlTextReader textReader = new XmlTextReader("Input.xml");
         string xmlStr = "";
         HiResTimer t = new HiResTimer();
         t.Start();
         if (File.Exists("Input.xml"))
         {
             XDocument docTemp;
             string key, msgid;
             xmlStr = InsertPerformance(hres, msg, clnt, sndr, xmlStr, out docTemp, out key, out msgid);
             string keyUp;
             XElement l;
             UpdatePerformance(msg, clnt, sndr, ref xmlStr, out docTemp, key, ref msgid, out keyUp, out l);
             //Delete entries
             docTemp = DeletePerformance(msg, clnt, sndr, ref xmlStr, key, ref msgid, ref keyUp, l);
         }
         t.Stop();
         clnt.WriteClientTime = t.ElapsedMicroseconds;
         msg = new Message();
         msg.fromUrl = clnt.localUrl;
         msg.toUrl = clnt.remoteUrl;
         msg.content = "done";
         sndr.sendMessage(msg);
         // Wait for user to press a key to quit.
         Util.waitForUser();
         // shut down this client's Receiver and Sender by sending close messages
         rcvr.shutDown();
         sndr.shutdown();
         Console.Write("\n\n");
     }
     catch (CustomException ex)
     {
         throw new CustomException("Error in main of peformance testing", ex);
     }
 }
Esempio n. 26
0
        public void ThreadMethod()
        {
            Delegate[] preCleanupFunctions  = _preClean.GetInvocationList();
            Delegate[] testCases            = _testCaseDel.GetInvocationList();
            Delegate[] postCleanupFunctions = _postClean.GetInvocationList();
            Delegate[] checkFunctions       = _testValidity.GetInvocationList();

            //get run ordering and initialise
            Int32 numberTestCases = testCases.GetLength(0);
            Int32 totalNumberRuns = numberTestCases * _numberRuns;

            TestResult[] results = new TestResult[numberTestCases];
            TimeSpan[,] runTimes = new TimeSpan[numberTestCases, _numberRuns];
            string[,] errTxt     = new string[numberTestCases, _numberRuns];
            Int32[] runsSoFar      = new Int32[numberTestCases];
            Int32[] runNumberOrder = GetRandomSequence(numberTestCases, totalNumberRuns);

            //run tests
            for (Int32 i = 0; i < totalNumberRuns; ++i)
            {
                PercentageDone = i * 100 / totalNumberRuns;
                Int32       testCaseToRun = runNumberOrder[i];
                TestCleanup preClean      = (TestCleanup)preCleanupFunctions[testCaseToRun];
                if (preClean != null)
                {
                    preClean();
                }
                TestCase tc = (TestCase)testCases[testCaseToRun];

                bool   testOK = false;
                string testError;

                if (tc == null)
                {
                    throw new ArgumentException("Null test case delegates are not allowed");
                }
                HiResTimer hrt = new HiResTimer();
                for (int count = 0; count < _testReReuns && !testOK; ++count)
                {
                    hrt.Start();
                    try{
                        tc(_numberIterations);
                    }
                    catch (Exception e) {
                        if (e is ThreadAbortException)
                        {
                            return;                                                    //this exception occurs when test cancelled
                        }
                        System.Windows.Forms.MessageBox.Show(String.Format("Exception caught: {0}", e.Message));
                        PercentageDone = 100;
                        _testsStoppedEvent.Set();
                        return;
                    }
                    hrt.Stop();

                    TestCleanup postClean = (TestCleanup)postCleanupFunctions[testCaseToRun];
                    if (postClean != null)
                    {
                        postClean();
                    }

                    TestValidity tv = (TestValidity)checkFunctions[testCaseToRun];
                    if (tv != null)
                    {
                        testOK = tv(out testError);
                    }
                    else
                    {
                        testError = String.Empty;
                    }
                    runTimes[testCaseToRun, runsSoFar[testCaseToRun]] = hrt.ElapsedTimeSpan;
                    errTxt[testCaseToRun, runsSoFar[testCaseToRun]]   = testError;
                }
                ++runsSoFar[testCaseToRun];
            }

            //post-process
            _results  = PostProcessResults(testCases, runTimes, errTxt);
            TestsDone = true;
            _testsStoppedEvent.Set();
            PercentageDone = 100;
        }
    //
    //----< parse file into identifiers and store in Hashtable >-------

    public void ParseFile(string fileName)    {
      HiResTimer total = new HiResTimer();
      HiResTimer open = new HiResTimer();
      HiResTimer parse = new HiResTimer();
      try      {
        total.Start();
        open.Start();
        StreamReader fs = new StreamReader(fileName);
        open.Stop();
        openTime = open.ElapsedMicroseconds;
                 parse.Start();
        int size = 0;
        string line;
        while((line = fs.ReadLine()) != null)        {
          string[] tokens = line.Split();
          foreach(string token in tokens)          {
            if(token == "\n" | token.Length == 0)              continue;
            if(Verbose)
              Console.Write("\n    {0}",token);
            string tok, compositeToken = token;
            while(compositeToken != "")            {
              tok = extractIdent(ref compositeToken);
              if(tok == "")                continue;
              if(Verbose)
                Console.Write("\n      {0}",tok);
              if(table.Contains(tok))
                table[tok] = 1 + (int)table[tok];
              else              {
                table[tok] = 1;
                size += tok.Length;              }            }          }        }
        parse.Stop();
        parseTime = parse.ElapsedMicroseconds;
        total.Stop();
        totalTime = total.ElapsedMicroseconds;
        Console.Write("\n   Open time: {0} microsec",openTime); 
        Console.Write("\n  Parse time: {0} microsec",parseTime); 
        Console.Write("\n  total time: {0} microsec",totalTime); 
        Console.Write("\n   Hash size: {0} bytes",size);      }
      catch      {
        Console.Write("\n  Could not open file \"{0}\"\n\n",fileName);      }    }