override public void bytesRead(ByteBuffer data) { base.bytesRead(data); if (isTag(_tag)) { int length = data.readInt(); _value = new ErlType[length]; ErlType erl; for (int i = 0; i < length; i++) { // length==3 ErlList的循环 erl = ByteKit.natureAnalyse(data); if (!(erl is ErlByte || erl is ErlInt)) { isString = false; } _value [i] = erl; } data.readUnsignedByte(); // 读取列表结尾的空列表的tag标记 } }
override public void bytesRead(ByteBuffer data) { base.bytesRead(data); if (_tag == TAG [0]) // 小元组 { int length = data.readUnsignedByte(); //MonoBase.print ("small array bytesRead length=" + length); _value = new ErlType[length]; for (int i = 0; i < length; i++) { _value [i] = ByteKit.natureAnalyse(data); } } else if (_tag == TAG [1]) // 大元组 { int length = data.readInt(); //MonoBase.print ("big array bytesRead length=" + length); _value = new ErlType[length]; for (int i = 0; i < length; i++) { _value [i] = ByteKit.natureAnalyse(data); } } }