コード例 #1
0
        /// <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>
        /// Sets multiplier for fixed integer types
        /// </summary>
        /// <param name="in_multiplier"></param>
        public void SetFixedMultiplier(int in_multiplier)
        {
            if (!RealtimeObjectMember.IsFixedMember(m_member_type))
            {
                throw new ArgumentException("Fixed member type expected");
            }

            m_multiplier = in_multiplier;
        }