openfl
Version:
A fast, productive library for 2D cross-platform development.
116 lines (98 loc) • 3.34 kB
JavaScript
// Class: openfl.utils._internal.format.amf.AMFReader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../../../../hxClasses_stub").default;
var $hxEnums = require("./../../../../../hxEnums_stub").default;
var $import = require("./../../../../../import_stub").default;
function haxe_ds_StringMap() {return require("./../../../../../haxe/ds/StringMap");}
function openfl_utils__$internal_format_amf_AMFValue() {return require("./../../../../../openfl/utils/_internal/format/amf/AMFValue");}
function js__$Boot_HaxeError() {return require("./../../../../../js/_Boot/HaxeError");}
// Constructor
var AMFReader = function(i) {
this.i = i;
i.set_bigEndian(true);
}
// Meta
AMFReader.__name__ = "openfl.utils._internal.format.amf.AMFReader";
AMFReader.__isInterface__ = false;
AMFReader.prototype = {
readObject: function() {
var h = new (haxe_ds_StringMap().default)();
while(true) {
var c1 = this.i.readByte();
var c2 = this.i.readByte();
var name = this.i.readString(c1 << 8 | c2);
var k = this.i.readByte();
if(k == 9) {
break;
}
h.set(name,this.readWithCode(k));
}
return h;
},
readArray: function(n) {
var a = [];
var _g = 0;
var _g1 = n;
while(_g < _g1) {
var i = _g++;
a.push(this.read());
}
return a;
},
readInt: function() {
return this.i.readInt32();
},
readWithCode: function(id) {
var i = this.i;
switch(id) {
case 0:
return (openfl_utils__$internal_format_amf_AMFValue().default).ANumber(i.readDouble());
case 1:
var tmp;
switch(i.readByte()) {
case 0:
tmp = false;
break;
case 1:
tmp = true;
break;
default:
throw new (js__$Boot_HaxeError().default)("Invalid AMF");
}
return (openfl_utils__$internal_format_amf_AMFValue().default).ABool(tmp);
case 2:
return (openfl_utils__$internal_format_amf_AMFValue().default).AString(i.readString(i.readUInt16()));
case 5:
return (openfl_utils__$internal_format_amf_AMFValue().default).ANull;
case 6:
return (openfl_utils__$internal_format_amf_AMFValue().default).AUndefined;
case 7:
throw new (js__$Boot_HaxeError().default)("Not supported : Reference");
case 3:case 8:
var ismixed = id == 8;
var size = ismixed ? this.readInt() : null;
return (openfl_utils__$internal_format_amf_AMFValue().default).AObject(this.readObject(),size);
case 10:
return (openfl_utils__$internal_format_amf_AMFValue().default).AArray(this.readArray(this.readInt()));
case 11:
var time_ms = i.readDouble();
var tz_min = i.readUInt16();
return (openfl_utils__$internal_format_amf_AMFValue().default).ADate(new Date(time_ms + tz_min * 60 * 1000.0));
case 12:
return (openfl_utils__$internal_format_amf_AMFValue().default).AString(i.readString(this.readInt()));
default:
throw new (js__$Boot_HaxeError().default)("Unknown AMF " + id);
}
},
read: function() {
return this.readWithCode(this.i.readByte());
}
};
AMFReader.prototype.__class__ = AMFReader.prototype.constructor = $hxClasses["openfl.utils._internal.format.amf.AMFReader"] = AMFReader;
// Init
// Statics
// Export
exports.default = AMFReader;