protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); msg.ShowMessage(); Console.Write("\n Echo processing completed\n"); if (msg.Contents == "quit") { break; } else if (msg.ResourceName == "catagories") { Category c = new Category(); List <string> cat = c.getCat(); ServiceMessage reply = ServiceMessage.MakeCategoryMessage("client-echo", "echo", cat, "reply from categories"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); break; } } }
//----< get and process message from client>---------------- // find text files and xml files which contain tags or strings // send xml file content back protected override void ProcessMessages() { while (true) { List <string> foundFiles = new List <string>(); ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); QueryProcessing qpro = new QueryProcessing(); foundFiles = qpro.queryProcessing(msg); //Console.Write("\n Query processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } foreach (string file in foundFiles) { XDocument doc = XDocument.Load(file); string fileContent = doc.ToString(); ServiceMessage reply = ServiceMessage.MakeMessage("client-query", "ServiceServer", fileContent); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } } }
//initiates the FileContentRtr to get all info of a text file protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); FileContentRtr filecontent = new FileContentRtr(); //string message = List <List <string> > result = filecontent.getContent(msg.filename); /* var appDomain = AppDomain.CurrentDomain; * string temp1 = appDomain.BaseDirectory; * Directory.SetCurrentDirectory(temp1);*/ //Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); //msg.ShowMessage(); //Console.Write("\n Query processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } ServiceMessage reply = ServiceMessage.MakeQueryMessage("client-echo", "filecontent", result, "reply from filecontent"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } }
protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); msg.ShowMessage(); Console.Write("\n Navigation processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } ServiceMessage reply = ServiceMessage.MakeMessage("client-echo", "nav", "reply from nav"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } }
//initiates the TextQueryHandler to get the text files that belong to a category protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); msg.ShowMessage(); TextQueryHandler textqueryhandler = new TextQueryHandler(); /*List<List<string>> dummy = new List<List<string>>(); * dummy.Add(msg.category);*/ List <string> textfiles = textqueryhandler.getTextFiles(msg.category); ServiceMessage reply = ServiceMessage.MakeTextFilesMessage("client-echo", "textfiles", textfiles, "reply from textfiles"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); //break; } }
//initiates the QueryHandler for metadata query processing and text query processing protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); if (!msg.ResourceName.Equals("textquery")) { QueryHandler queryhandler = new QueryHandler(); List <List <string> > results = queryhandler.MetaQuery(msg.nlist); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); msg.ShowMessage(); //Console.Write("\n Query processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } ServiceMessage reply = ServiceMessage.MakeQueryMessage("client-echo", "query", results, "reply from query"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } else { TextQueryHandler textqueryhandler = new TextQueryHandler(); List <List <string> > results = textqueryhandler.textQuery(msg.nlist); if (msg.Contents == "quit") { break; } ServiceMessage reply = ServiceMessage.MakeQueryMessage("client-echo", "query", results, "reply from tquery"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } } }
//----< get and process message from client>---------------- protected override void ProcessMessages() { MappingTool mt = new MappingTool(); while (true) { ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); //msg.ShowMessage(); //Console.Write("\n Navigation processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } /////////////////////////////////////////////////////////////////////////////////////// // find files relationship and construct parents and child map when client // connect with server if (msg.Contents == "mapping") { mt.Mapping(); ServiceMessage reply1 = ServiceMessage.MakeMessage("client-nav", "nav", "mapping finished", "mapping finished"); reply1.TargetUrl = msg.SourceUrl; reply1.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply1); } ////////////////////////////////////////////////////////////////////////////////////// // client send current file name to server, server find the parents and children // then reply if (msg.ResourceName == "file relationship") { string parents = null; parents = mt.findParents(msg.Contents); ServiceMessage reply2 = ServiceMessage.MakeMessage("client-nav", "nav", parents, "found parents"); reply2.TargetUrl = msg.SourceUrl; reply2.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply2); } } }
//not using this public void getFileContent(ServiceMessage msg) { Server s = new Server(); //s.GetFileContent(msg); string file = msg.Contents; long blockSize = 512; string filename = @"..\\DocumentVault\\" + file; try { FileStream fs; fs = File.Open(filename, FileMode.Open, FileAccess.Read); int bytesRead = 0; while (true) { long remainder = (int)(fs.Length - fs.Position); if (remainder == 0) { break; } long size = Math.Min(blockSize, remainder); byte[] block = new byte[size]; bytesRead = fs.Read(block, 0, block.Length); ServiceMessage msg4 = ServiceMessage.MakeMessage("client-echo", "file_Comm", System.Text.Encoding.Default.GetString(block), "FileContent"); msg4.TargetUrl = msg.SourceUrl; msg4.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher1 = AbstractMessageDispatcher.GetInstance(); dispatcher1.PostMessage(msg4); } fs.Flush(); fs.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } }
//initiates the EditMetadataHandler for editing metadata protected override void ProcessMessages() { while (true) { ServiceMessage msg = bq.deQ(); EditMetadataHandler queryhandler = new EditMetadataHandler(); //string message = queryhandler.editMetadata(msg.tag); //Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); //msg.ShowMessage(); //Console.Write("\n Query processing is an exercise for students\n"); if (msg.Contents == "quit") { break; } ServiceMessage reply = ServiceMessage.MakeMessage("client-echo", "query", " ", "reply from editmetadata"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } }
//----< Post a message to the MessageDispatcher >---------------- public void PostMessage(ServiceMessage servMsg) { //Console.Write("\n CommService.PostMessage called with Message:"); //msg.ShowMessage(); dispatcher.PostMessage(servMsg); }
//----< get and process message from client>---------------- protected override void ProcessMessages() { while (true) { ShowFiles sf = new ShowFiles(); ServiceMessage msg = bq.deQ(); Console.Write("\n {0} Recieved Message:\n", msg.TargetCommunicator); Console.Write("\n Echo processing completed\n"); if (msg.Contents == "connect to server") { ClientURL = msg.ResourceName; } //////////////////////////////////////////////////////////////////////////////////////////// // client ask for category root in repositpry, find categories repository files belong to // and send the msg back to client, msg contain categories if (msg.ResourceName == "category") { List <string> Categories = new List <string>(); Categories = sf.FindCategories(); foreach (string cate in Categories) { ServiceMessage reply = ServiceMessage.MakeMessage("client-echo", "ServiceServer", cate, "Categories"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } } /////////////////////////////////////////////////////////////////////////////////////////// // client require for files in the specified category // server find files and send back if (msg.ResourceName == "files in this category") { List <string> filesInCate = new List <string>(); filesInCate = sf.FindFiles(msg.Contents); foreach (string file in filesInCate) { ServiceMessage reply = ServiceMessage.MakeMessage("client-echo", "ServiceServer", file, "files found in category"); reply.TargetUrl = msg.SourceUrl; reply.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher = AbstractMessageDispatcher.GetInstance(); dispatcher.PostMessage(reply); } } /////////////////////////////////////////////////////////////////////////////////////////// //send the xml and text file content back if (msg.ResourceName == "extract file") { ExtractFile ef = new ExtractFile(); string textfile = ef.TextFile(msg.Contents); string xmlfile = ef.XmlFile(msg.Contents); ServiceMessage reply1 = ServiceMessage.MakeMessage("client-echo", "ServiceServer", textfile, "textfile"); reply1.TargetUrl = msg.SourceUrl; reply1.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher1 = AbstractMessageDispatcher.GetInstance(); dispatcher1.PostMessage(reply1); ServiceMessage reply2 = ServiceMessage.MakeMessage("client-echo", "ServiceServer", xmlfile, "xmlfile"); reply2.TargetUrl = msg.SourceUrl; reply2.SourceUrl = msg.TargetUrl; AbstractMessageDispatcher dispatcher2 = AbstractMessageDispatcher.GetInstance(); dispatcher2.PostMessage(reply2); } if (msg.Contents == "quit") { break; } } }