/// <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);
            }
        }
示例#2
0
        /// <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]); }
 }