forked from circlecloud/tera
1
0
Fork 0

feat: optimize code

Signed-off-by: MiaoWoo <admin@yumc.pw>
master
MiaoWoo 2019-07-22 16:08:35 +08:00
parent 8c849ed49f
commit 9c300cd191
1 changed files with 370 additions and 401 deletions

View File

@ -16,19 +16,14 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
global.ToLogTrace("ERRR StringFormat "); global.ToLogTrace("ERRR StringFormat ");
throw "ERR!!"; throw "ERR!!";
} }
else {
var format = StringFormat; var format = StringFormat;
if (format.substr(0, 6) === "buffer" && format.length > 6) { if (format.substr(0, 6) === "buffer" && format.length > 6) {
ParamValue = parseInt(format.substr(6)); ParamValue = parseInt(format.substr(6));
format = "buffer"; format = "buffer";
} } else if (format.substr(0, 3) === "arr" && format.length > 3) {
else
if (format.substr(0, 3) === "arr" && format.length > 3) {
ParamValue = parseInt(format.substr(3)); ParamValue = parseInt(format.substr(3));
format = "arr"; format = "arr";
} } else if (format.substr(0, 3) === "str" && format.length > 3) {
else
if (format.substr(0, 3) === "str" && format.length > 3) {
var length = parseInt(format.substr(3)); var length = parseInt(format.substr(3));
if (data) if (data)
buf.write(data, buf.len, length); buf.write(data, buf.len, length);
@ -191,9 +186,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
Write(buf, data[i], formatNext, undefined, WorkStruct); Write(buf, data[i], formatNext, undefined, WorkStruct);
} }
} } else if (CurFormat === "<") {
else
if (CurFormat === "<") {
let length; let length;
if (data) if (data)
length = data.length; length = data.length;
@ -209,9 +202,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
} }
} }
buf.writeUInt32LE(IndexCount, len, 4); buf.writeUInt32LE(IndexCount, len, 4);
} } else if (CurFormat === "{") {
else
if (CurFormat === "{") {
var attrs = WorkStruct[format]; var attrs = WorkStruct[format];
if (!attrs) { if (!attrs) {
attrs = GetAttributes(GetMiddleString(format)); attrs = GetAttributes(GetMiddleString(format));
@ -221,13 +212,11 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
var type = attrs[i]; var type = attrs[i];
Write(buf, data[type.Key], type.Value, undefined, WorkStruct); Write(buf, data[type.Key], type.Value, undefined, WorkStruct);
} }
} } else {
else {
throw "Bad write type params: " + format; throw "Bad write type params: " + format;
} }
} }
} }
}
}; };
function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) { function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
@ -236,29 +225,22 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
global.ToLogTrace("ERR StringFormat"); global.ToLogTrace("ERR StringFormat");
throw "ERRR!"; throw "ERRR!";
} }
else {
var format = StringFormat; var format = StringFormat;
if (format.substr(0, 6) === "buffer") { if (format.substr(0, 6) === "buffer") {
if (format.length > 6) { if (format.length > 6) {
ParamValue = parseInt(format.substr(6)); ParamValue = parseInt(format.substr(6));
format = "buffer"; format = "buffer";
} } else {
else {
ParamValue = 0; ParamValue = 0;
} }
} } else if (format.substr(0, 3) === "arr") {
else
if (format.substr(0, 3) === "arr") {
if (format.length > 3) { if (format.length > 3) {
ParamValue = parseInt(format.substr(3)); ParamValue = parseInt(format.substr(3));
format = "arr"; format = "arr";
} } else {
else {
ParamValue = 0; ParamValue = 0;
} }
} } else if (format.substr(0, 3) === "str") {
else
if (format.substr(0, 3) === "str") {
if (format.length > 3) { if (format.length > 3) {
var length = parseInt(format.substr(3)); var length = parseInt(format.substr(3));
ret = buf.toString('utf8', buf.len, buf.len + length); ret = buf.toString('utf8', buf.len, buf.len + length);
@ -270,13 +252,8 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
break; break;
} }
} }
if (nEnd >= 0) return nEnd >= 0 ? ret.substr(0, i + 1) : "";
ret = ret.substr(0, i + 1); } else {
else
ret = "";
return ret;
}
else {
ParamValue = 0; ParamValue = 0;
} }
} }
@ -424,21 +401,15 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
var formatNext = GetMiddleString(format); var formatNext = GetMiddleString(format);
let length = Read(buf, "uint32"); let length = Read(buf, "uint32");
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
if (buf.len <= buf.length) { if (buf.len > buf.length) { break; }
if (bIndexArr) { if (bIndexArr) {
var index = Read(buf, "uint32"); var index = Read(buf, "uint32");
ret[index] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime); ret[index] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
} } else {
else {
ret[i] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime); ret[i] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
} }
} }
else } else if (LStr === "{") {
break;
}
}
else
if (LStr === "{") {
var attrs = WorkStruct[format]; var attrs = WorkStruct[format];
if (!attrs) { if (!attrs) {
attrs = GetAttributes(GetMiddleString(format)); attrs = GetAttributes(GetMiddleString(format));
@ -449,13 +420,11 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
var type = attrs[i]; var type = attrs[i];
ret[type.Key] = Read(buf, type.Value, undefined, WorkStruct, bDisableTime); ret[type.Key] = Read(buf, type.Value, undefined, WorkStruct, bDisableTime);
} }
} } else {
else {
throw "Bad read type params: " + format; throw "Bad read type params: " + format;
} }
} }
} }
}
return ret; return ret;
}; };