/// <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); } } }
/// <summary> /// GetByMetadataCriteria criteria for the query type /// </summary> /// <param name="msg"></param> /// <param name="clnt"></param> /// <param name="sndr"></param> /// <param name="msgid"></param> /// <returns></returns> private static XDocument GetByMetadataCriteria(Message msg, ReadClient clnt, Sender sndr, ref string msgid) { XDocument docTemp = XDocument.Load("Input.xml"); clnt.RemoveOtherReads(ref docTemp, "GetByMetadataCriteria"); clnt.RemoveOtherWrites(ref docTemp, "GetByMetadataCriteria"); XElement l = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetByMetadataCriteria").Select(j => j).Single(); clnt.numMsgs = int.Parse(l.Elements("Count").Single().Value); clnt.total += clnt.numMsgs; for (int i = 0; i < clnt.numMsgs; i++) { docTemp = XDocument.Load("Input.xml"); clnt.RemoveOtherReads(ref docTemp, "GetByMetadataCriteria"); clnt.RemoveOtherWrites(ref docTemp, "GetByMetadataCriteria"); msgid = clnt.msgRand++.ToString(); XElement y = null;//GetByMetadataCriteria query carried out y = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetByMetadataCriteria").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 GetByMetadataCriteria from key\n", msgid); Thread.Sleep(50); } } return docTemp; }