/// <summary> /// Parses value member of the realtimeobject /// </summary> /// <param name="in_element"></param> /// <param name="in_xml_stream"></param> /// <param name="in_parent"></param> internal void ParseValueMember(XPathNavigator in_element, TextReader in_xml_stream, object in_parent) { // get name m_name = XMLAttributeParser.ConvertAttributeToString(in_element, "Name", XMLAttributeParser.atObligatory); // get type m_member_type = TypeStringToMemberType(in_element.Name); // check type if (m_member_type == RealtimeObjectMember.MemberType.Unknown) { throw XMLParserBase.CreateXMLParseException(string.Format(ParserRealtimeObjectStringConstants.ErrorInvalidElementType, in_element.Name), in_element); } // get multiplier for fixed types if (RealtimeObjectMember.IsFixedMember(m_member_type)) { m_fixed_multiplier = XMLAttributeParser.ConvertAttributeToInt(in_element, "Multiplier", XMLAttributeParser.atObligatory); } // store attributes for further processing XPathNavigator element = in_element.Clone(); if (element.MoveToFirstAttribute()) { m_attributes.Add(element.Name, element.Value); } while (element.MoveToNextAttribute()) { m_attributes.Add(element.Name, element.Value); } }
/// <summary> /// Creates and adds new member to the object /// </summary> /// <param name="in_name"></param> /// <param name="in_member_type"></param> /// <returns></returns> public RealtimeObjectMember MemberCreate(string in_name, RealtimeObjectMember.MemberType in_member_type) { RealtimeObjectMember member = new RealtimeObjectMember(in_name, in_member_type); MemberAdd(member); return(member); }
/// <summary> /// Constructor for defining type /// </summary> /// <param name="in_type"></param> public ParserRealtimeObjectMember(RealtimeObjectMember.MemberType in_type) { m_member_type = in_type; m_fixed_multiplier = 1; }
/// <summary> /// Constructor for defining name and type /// </summary> /// <param name="in_name"></param> /// <param name="in_type"></param> public ParserRealtimeObjectMember(string in_name, RealtimeObjectMember.MemberType in_type) { m_name = in_name; m_member_type = in_type; m_fixed_multiplier = 1; }
/// <summary> /// Default constructor /// </summary> internal ParserRealtimeObjectMember() { m_member_type = RealtimeObjectMember.MemberType.Float; m_fixed_multiplier = 1; }
/// <summary> /// Returns type declaration string from the member type /// </summary> /// <param name="in_index"></param> /// <returns></returns> public string this[RealtimeObjectMember.MemberType in_index] { get { return(m_type_lookup[in_index]); } }