Opc.Ua.BinaryDecoder.ReadNodeIdBody C# (CSharp) Method

ReadNodeIdBody() private method

Reads the body of a node id.
private ReadNodeIdBody ( byte encodingByte, Opc.Ua.NodeId value ) : void
encodingByte byte
value Opc.Ua.NodeId
return void
        private void ReadNodeIdBody(byte encodingByte, NodeId value)
        {
            switch ((NodeIdEncodingBits)(encodingByte & 0x3F))
            {
                case NodeIdEncodingBits.TwoByte:
                {
                    value.SetNamespaceIndex(0);
                    value.SetIdentifier(IdType.Numeric, (uint)m_reader.ReadByte());
                    break;
                }

                case NodeIdEncodingBits.FourByte:
                {
                    value.SetNamespaceIndex(m_reader.ReadByte());
                    value.SetIdentifier(IdType.Numeric, (uint)m_reader.ReadUInt16());
                    break;
                }

                case NodeIdEncodingBits.Numeric:
                {
                    value.SetNamespaceIndex(m_reader.ReadUInt16());
                    value.SetIdentifier(IdType.Numeric, (uint)m_reader.ReadUInt32());
                    break;
                }

                case NodeIdEncodingBits.String:
                {
                    value.SetNamespaceIndex(m_reader.ReadUInt16());
                    value.SetIdentifier(IdType.String, ReadString(null));
                    break;
                }

                case NodeIdEncodingBits.Guid:
                {
                    value.SetNamespaceIndex(m_reader.ReadUInt16());
                    value.SetIdentifier(IdType.Guid, (Guid)ReadGuid(null));
                    break;
                }

                case NodeIdEncodingBits.ByteString:
                {
                    value.SetNamespaceIndex(m_reader.ReadUInt16());
                    value.SetIdentifier(IdType.Opaque, ReadByteString(null));
                    break;
                }

                default:
                {
                    throw new ServiceResultException(
                        StatusCodes.BadDecodingError,
                        Utils.Format("Invald encoding byte (0x{0:X2}) for NodeId.", encodingByte));
                }
            }
        }