BsonMap class
class BsonMap extends BsonObject{
Map data;
Map utfKeys;
int _dataSize;
int dataSize(){
if (_dataSize == null){
_dataSize = 0;
data.forEach((String key, var value)
{
_dataSize += elementSize(key, value);
});
}
return _dataSize;
}
BsonMap(this.data);
get value=>data;
byteLength()=>dataSize()+1+4;
int get typeByte => _BSON_DATA_OBJECT;
packValue(BsonBinary buffer){
buffer.writeInt(byteLength());
data.forEach((var key, var value)
{
bsonObjectFrom(value).packElement(key ,buffer);
});
buffer.writeByte(0);
}
unpackValue(BsonBinary buffer){
data = {};
buffer.offset += 4;
int typeByte = buffer.readByte();
while (typeByte != 0){
BsonObject bsonObject = bsonObjectFromTypeByte(typeByte);
var element = bsonObject.unpackElement(buffer);
data[element.name] = element.value;
typeByte = buffer.readByte();
}
}
}
Extends
BsonObject > BsonMap
Constructors
Properties
final value #
get value=>data;
Methods
dynamic byteLength() #
byteLength()=>dataSize()+1+4;
int dataSize() #
int dataSize(){
if (_dataSize == null){
_dataSize = 0;
data.forEach((String key, var value)
{
_dataSize += elementSize(key, value);
});
}
return _dataSize;
}
dynamic packElement(String name, buffer) #
inherited from BsonObject
packElement(String name, var buffer){
buffer.writeByte(typeByte);
if (name != null){
new BsonCString(name).packValue(buffer);
}
packValue(buffer);
}
dynamic packValue(BsonBinary buffer) #
packValue(BsonBinary buffer){
buffer.writeInt(byteLength());
data.forEach((var key, var value)
{
bsonObjectFrom(value).packElement(key ,buffer);
});
buffer.writeByte(0);
}
_ElementPair unpackElement(buffer) #
inherited from BsonObject
_ElementPair unpackElement(buffer){
_ElementPair result = new _ElementPair();
result.name = buffer.readCString();
unpackValue(buffer);
result.value = value;
return result;
}
dynamic unpackValue(BsonBinary buffer) #
unpackValue(BsonBinary buffer){
data = {};
buffer.offset += 4;
int typeByte = buffer.readByte();
while (typeByte != 0){
BsonObject bsonObject = bsonObjectFromTypeByte(typeByte);
var element = bsonObject.unpackElement(buffer);
data[element.name] = element.value;
typeByte = buffer.readByte();
}
}