internal DataBroadCastHandler(BroadCastMode BroadCastMode, string BroadcastIDName, BroadcastableData data) { this._broadCastableData = data; this._mode = BroadCastMode; this._broadcastIDName = BroadcastIDName.ToUpper(); this._XMLDataString = this.GetXMLString(); }
internal static DataBroadCastHandler ParseAndGet_DataBroadCastHandler_FromXMLDataString(string XMLDataString) { System.IO.StringReader sr = null; System.Xml.XmlTextReader m_xmlr = null; try { sr = new System.IO.StringReader(XMLDataString); m_xmlr = new System.Xml.XmlTextReader(sr); m_xmlr.WhitespaceHandling = System.Xml.WhitespaceHandling.None; } catch (System.Xml.XmlException) { string msg; msg = "Error trying to get XML format from broadcasted data string [" + XMLDataString + "]"; } catch (Exception ex) { string msg = ""; msg = "Error trying to parse broadcasted XML string : " + ex.Message; throw (new Exception(msg)); } m_xmlr.Read(); string HeaderIdentifier = m_xmlr.Name; if (HeaderIdentifier != "BROADCAST_HANDLER") { throw (new System.Xml.XmlException("Invalid data header " + HeaderIdentifier + ". Must be \'BROADCAST_HANDLER\'")); } else { //read the mode attribute from the current section "BROADCAST_HANDLER" BroadCastMode mode = default(BroadCastMode); string modeStr = m_xmlr.GetAttribute("broadcastMode"); switch (modeStr) { case "BroadCasterIsWaitingReply": mode = BroadCastMode.BroadCasterIsWaitingReply; break; case "BroadCasterIsNotWaitingReply": mode = BroadCastMode.BroadCasterIsNotWaitingReply; break; default: mode = BroadCastMode.undefined; break; } string broadCastIDName = ""; broadCastIDName = m_xmlr.GetAttribute("broadcastIDName"); if (broadCastIDName == null) { throw (new Exception("No attribute \'broadcastIDName\' in XML data string [" + XMLDataString + "]")); } //retrieves all the xml string of the broadcastable data section m_xmlr.Read(); string broadCastedXMLString = m_xmlr.ReadOuterXml(); BroadcastableData data = BroadcastableData.ParseAndGet_BroadcastableData_FromXMLDataString(broadCastedXMLString); DataBroadCastHandler handler = new DataBroadCastHandler(mode, broadCastIDName, data); return(handler); } }
internal static BroadcastableData ParseAndGet_BroadcastableData_FromXMLDataString(string XMLDataString) { System.IO.StringReader sr = null; System.Xml.XmlTextReader m_xmlr = null; string broadCasterName = ""; string broadCasterHost = ""; int broadCasterListeningPort = 0; try { sr = new System.IO.StringReader(XMLDataString); m_xmlr = new System.Xml.XmlTextReader(sr); m_xmlr.WhitespaceHandling = System.Xml.WhitespaceHandling.None; } catch (System.Xml.XmlException) { string msg; msg = "Error trying to get XML format from broadcasted data string [" + XMLDataString + "]"; } catch (Exception ex) { string msg = ""; msg = "Error trying to parse broadcasted XML string : " + ex.Message; throw (new Exception(msg)); } m_xmlr.Read(); string HeaderIdentifier = m_xmlr.Name; if (HeaderIdentifier != "BROADCASTED_DATA") { throw (new System.Xml.XmlException("Invalid data header " + HeaderIdentifier + ". Must be \'BROADCASTED_DATA\'")); } else { m_xmlr.Read(); string broadCasterHeader = m_xmlr.Name; if (broadCasterHeader != "BROADCASTER_INFO") { throw (new System.Xml.XmlException("Invalid XML structure was expected a <BROADCASTER_INFO> and was found " + broadCasterHeader)); } else { //******************************************************* //gets the data broadcaster information //******************************************************* broadCasterName = m_xmlr.GetAttribute("name"); if (broadCasterName == null) { throw (new Exception("Can\'t determine the attribute NAME of the section <BROADCASTER_INFO> from XML String [" + XMLDataString + "]")); } broadCasterHost = m_xmlr.GetAttribute("host"); if (broadCasterHost == null) { throw (new Exception("Can\'t determine the attribute HOST of the section <BROADCASTER_INFO> from XML String [" + XMLDataString + "]")); } string PORT = m_xmlr.GetAttribute("listeningPort"); if (PORT == null) { throw (new Exception("Can\'t determine the attribute LISTENINGPORT of the section <BROADCASTER_INFO> from XML String [" + XMLDataString + "]")); } broadCasterListeningPort = System.Convert.ToInt32(PORT); //******************************************************* //gets the data from the XML string //******************************************************* string dataValueAsString = ""; m_xmlr.Read(); m_xmlr.Read(); dataValueAsString = m_xmlr.ReadOuterXml(); DataVariable var = XMLDataFormatting.RetrieveDataVariableFromXMLString(dataValueAsString); BroadcastableData broadCastedData = new BroadcastableData(broadCasterName, broadCasterHost, broadCasterListeningPort, System.Convert.ToString(var.Name), var.Data); return(broadCastedData); } } }