whatap 0.4.79 → 0.4.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/keep-context.json +3 -3
- package/README.md +51 -51
- package/bindings/darwin/x64/whatap.node +0 -0
- package/bindings/linux/ia32/whatap.node +0 -0
- package/bindings/linux/x64/whatap.node +0 -0
- package/help.txt +10 -10
- package/index.js +8 -8
- package/lib/conf/conf-sys-mon.js +100 -100
- package/lib/conf/config-default.js +238 -238
- package/lib/conf/configure.js +423 -423
- package/lib/conf/license.js +41 -41
- package/lib/control/cmd-config.js +23 -23
- package/lib/control/control-handler.js +344 -344
- package/lib/control/packagectr-helper.js +149 -149
- package/lib/core/agent.js +329 -328
- package/lib/core/interceptor.js +142 -142
- package/lib/core/request-agent.js +26 -26
- package/lib/counter/counter-manager.js +127 -127
- package/lib/counter/meter/meter-activex.js +66 -66
- package/lib/counter/meter/meter-httpc.js +57 -57
- package/lib/counter/meter/meter-resource.js +9 -9
- package/lib/counter/meter/meter-service.js +167 -167
- package/lib/counter/meter/meter-socket.io.js +50 -50
- package/lib/counter/meter/meter-sql.js +70 -70
- package/lib/counter/meter/meter-users.js +57 -57
- package/lib/counter/meter.js +183 -183
- package/lib/counter/task/activetransaction.js +93 -93
- package/lib/counter/task/agentinfo.js +105 -105
- package/lib/counter/task/counter-task.js +9 -9
- package/lib/counter/task/gcstat.js +34 -34
- package/lib/counter/task/heapmem.js +24 -24
- package/lib/counter/task/httpc.js +75 -75
- package/lib/counter/task/proc-cpu.js +28 -28
- package/lib/counter/task/realtimeuser.js +30 -30
- package/lib/counter/task/res/systemECSTask.js +54 -54
- package/lib/counter/task/res/systemKubeTask.js +52 -52
- package/lib/counter/task/res/util/awsEcsClientThread.js +166 -166
- package/lib/counter/task/res/util/linuxProcStatUtil.js +13 -13
- package/lib/counter/task/res-sys-cpu.js +61 -61
- package/lib/counter/task/service.js +201 -201
- package/lib/counter/task/socketio.js +29 -29
- package/lib/counter/task/sql.js +104 -104
- package/lib/counter/task/systemperf.js +42 -42
- package/lib/data/datapack-sender.js +256 -256
- package/lib/data/dataprofile-agent.js +136 -136
- package/lib/data/datatext-agent.js +135 -135
- package/lib/data/event-level.js +15 -15
- package/lib/data/test.js +48 -48
- package/lib/env/constants.js +20 -20
- package/lib/kube/kube-client.js +143 -143
- package/lib/lang/text-types.js +58 -58
- package/lib/logger.js +319 -319
- package/lib/net/netflag.js +54 -54
- package/lib/net/paramdef.js +40 -40
- package/lib/net/receiver.js +65 -65
- package/lib/net/security-master.js +182 -173
- package/lib/net/sender.js +140 -140
- package/lib/net/tcp-return.js +17 -17
- package/lib/net/tcp-session.js +285 -285
- package/lib/net/tcpreq-client-proxy.js +69 -69
- package/lib/net/tcprequest-mgr.js +57 -57
- package/lib/observers/cluster-observer.js +21 -21
- package/lib/observers/express-observer.js +214 -214
- package/lib/observers/file-observer.js +184 -184
- package/lib/observers/global-observer.js +30 -30
- package/lib/observers/http-observer.js +704 -704
- package/lib/observers/maria-observer.js +382 -382
- package/lib/observers/memcached-observer.js +55 -55
- package/lib/observers/mongo-observer.js +262 -265
- package/lib/observers/mongodb-observer.js +197 -197
- package/lib/observers/mongoose-observer.js +83 -83
- package/lib/observers/mssql-observer.js +205 -205
- package/lib/observers/mysql-observer.js +436 -394
- package/lib/observers/net-observer.js +72 -72
- package/lib/observers/pgsql-observer.js +295 -295
- package/lib/observers/process-observer.js +25 -25
- package/lib/observers/promise-observer.js +31 -31
- package/lib/observers/redis-observer.js +156 -109
- package/lib/observers/schedule-observer.js +66 -66
- package/lib/observers/socket.io-observer.js +54 -54
- package/lib/observers/stream-observer.js +19 -19
- package/lib/observers/thrift-observer.js +196 -196
- package/lib/pack/activestack-pack.js +54 -54
- package/lib/pack/counter-pack.js +649 -649
- package/lib/pack/errorsnap-pack.js +68 -68
- package/lib/pack/event-pack.js +53 -53
- package/lib/pack/hitmap-pack.js +62 -62
- package/lib/pack/hitmap-pack1.js +146 -146
- package/lib/pack/netstat.js +14 -14
- package/lib/pack/pack.js +49 -49
- package/lib/pack/packenum.js +60 -60
- package/lib/pack/param-pack.js +213 -213
- package/lib/pack/profile-pack.js +48 -48
- package/lib/pack/realtimeuser-pack.js +40 -40
- package/lib/pack/stat-general-pack.js +95 -95
- package/lib/pack/staterror-pack.js +119 -119
- package/lib/pack/stathttpc-pack.js +66 -66
- package/lib/pack/stathttpc-rec.js +78 -78
- package/lib/pack/statremote-pack.js +45 -45
- package/lib/pack/statservice-pack.js +62 -62
- package/lib/pack/statservice-pack1.js +87 -87
- package/lib/pack/statservice-rec.js +292 -292
- package/lib/pack/statservice-rec_dep.js +151 -151
- package/lib/pack/statsql-pack.js +69 -69
- package/lib/pack/statsql-rec.js +100 -100
- package/lib/pack/statuseragent-pack.js +43 -43
- package/lib/pack/tagcount-pack.js +398 -398
- package/lib/pack/tagctr.js +14 -14
- package/lib/pack/text-pack.js +49 -49
- package/lib/pack/time-count.js +25 -25
- package/lib/pack/websocket.js +14 -14
- package/lib/plugin/plugin-loadermanager.js +56 -56
- package/lib/plugin/plugin.js +75 -75
- package/lib/requestlog.js +326 -326
- package/lib/service/tx-record.js +288 -288
- package/lib/stat/stat-error.js +116 -116
- package/lib/stat/stat-httpc.js +97 -97
- package/lib/stat/stat-remoteip.js +46 -46
- package/lib/stat/stat-sql.js +112 -112
- package/lib/stat/stat-tranx.js +57 -57
- package/lib/stat/stat-tx-caller.js +159 -159
- package/lib/stat/stat-tx-domain.js +110 -110
- package/lib/stat/stat-tx-referer.js +111 -111
- package/lib/stat/stat-useragent.js +48 -48
- package/lib/stat/timingsender.js +72 -72
- package/lib/step/activestack-step.js +37 -37
- package/lib/step/dbc-step.js +35 -35
- package/lib/step/http-stepx.js +66 -66
- package/lib/step/message-step.js +39 -39
- package/lib/step/method-stepx.js +46 -46
- package/lib/step/resultset-step.js +39 -39
- package/lib/step/securemsg-step.js +43 -43
- package/lib/step/socket-step.js +46 -46
- package/lib/step/sql-stepx.js +67 -67
- package/lib/step/sqlxtype.js +15 -15
- package/lib/step/step.js +65 -65
- package/lib/step/stepenum.js +53 -53
- package/lib/trace/local-context.js +13 -13
- package/lib/trace/parsed-sql.js +13 -13
- package/lib/trace/profile-collector.js +70 -70
- package/lib/trace/serviceurl-pattern-detector.js +117 -117
- package/lib/trace/trace-context-manager.js +195 -195
- package/lib/trace/trace-context.js +134 -134
- package/lib/util/anylist.js +102 -102
- package/lib/util/array-util.js +100 -100
- package/lib/util/bitutil.js +27 -27
- package/lib/util/cardinality/hyperloglog.js +105 -105
- package/lib/util/cardinality/murmurhash.js +31 -31
- package/lib/util/cardinality/registerset.js +74 -74
- package/lib/util/config-util.js +17 -17
- package/lib/util/cypher.js +89 -89
- package/lib/util/datetimehelper.js +237 -229
- package/lib/util/dateutil.js +110 -106
- package/lib/util/errordata.js +20 -20
- package/lib/util/escape-literal-sql.js +342 -342
- package/lib/util/hashutil2.js +126 -126
- package/lib/util/hexa32.js +57 -57
- package/lib/util/index.js +78 -78
- package/lib/util/intint-map.js +47 -47
- package/lib/util/intkey-linkedmap.js +26 -26
- package/lib/util/intkey-map.js +25 -25
- package/lib/util/intset.js +82 -82
- package/lib/util/iputil.js +119 -119
- package/lib/util/iputil_x.js +526 -526
- package/lib/util/keygen.js +17 -17
- package/lib/util/kube-util.js +72 -72
- package/lib/util/longint-linkedmap.js +35 -35
- package/lib/util/longkey-linkedmap.js +25 -25
- package/lib/util/longlong-linkedmap.js +37 -37
- package/lib/util/nodeutil.js +67 -67
- package/lib/util/oidutil.js +96 -93
- package/lib/util/paramsecurity.js +78 -78
- package/lib/util/pathtree.js +172 -172
- package/lib/util/pre-process.js +13 -13
- package/lib/util/process-seq.js +165 -165
- package/lib/util/property-util.js +35 -35
- package/lib/util/request-queue.js +42 -42
- package/lib/util/requestdouble-queue.js +72 -72
- package/lib/util/resourceprofile.js +156 -156
- package/lib/util/seedrandom.js +242 -242
- package/lib/util/stop-watch.js +29 -29
- package/lib/util/string-util.js +9 -9
- package/lib/util/stringkey-linkedmap.js +28 -28
- package/lib/util/stringnum-linkedmap.js +31 -31
- package/lib/util/stringset.js +65 -65
- package/lib/util/system-util.js +9 -9
- package/lib/util/userid-util.js +57 -57
- package/lib/util/utils.js +67 -67
- package/lib/value/blob-value.js +61 -61
- package/lib/value/boolean-value.js +51 -51
- package/lib/value/decimal-value.js +71 -71
- package/lib/value/double-summary.js +105 -105
- package/lib/value/double-value.js +50 -50
- package/lib/value/float-array.js +59 -59
- package/lib/value/float-value.js +64 -64
- package/lib/value/int-array.js +59 -59
- package/lib/value/int-map-value.js +151 -151
- package/lib/value/int-value.js +64 -64
- package/lib/value/ip4-value.js +83 -83
- package/lib/value/list-value.js +136 -136
- package/lib/value/long-array.js +59 -59
- package/lib/value/long-summary.js +105 -105
- package/lib/value/map-value.js +175 -175
- package/lib/value/metric-value.js +157 -157
- package/lib/value/null-value.js +42 -42
- package/lib/value/number-value.js +34 -34
- package/lib/value/summary-value.js +29 -29
- package/lib/value/text-array.js +117 -117
- package/lib/value/text-value.js +59 -59
- package/lib/value/texthash-value.js +49 -49
- package/lib/value/value.js +14 -14
- package/lib/value/valueenum.js +99 -99
- package/logs/whatap-20230906.log +54 -0
- package/package.json +28 -28
- package/whatap.conf +1 -1
- package/logs/whatap-20230616.log +0 -13
package/lib/value/ip4-value.js
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var Value = require('./value'),
|
|
8
|
-
ValueEnum = require('./valueenum'),
|
|
9
|
-
IPUtil = require('../util/iputil');
|
|
10
|
-
|
|
11
|
-
function IP4Value() {
|
|
12
|
-
Value.call(this);
|
|
13
|
-
this.value = new Array(4);
|
|
14
|
-
|
|
15
|
-
this.compareTo = function(object) {
|
|
16
|
-
if(object instanceof IP4Value) {
|
|
17
|
-
if(object.value == null && this.value == null) {
|
|
18
|
-
return 0;
|
|
19
|
-
}
|
|
20
|
-
if(this.value == null) {
|
|
21
|
-
return -1;
|
|
22
|
-
}
|
|
23
|
-
if(object.value == null) {
|
|
24
|
-
return 1;
|
|
25
|
-
}
|
|
26
|
-
var l_len = this.length,
|
|
27
|
-
r_len = object.length;
|
|
28
|
-
for(var i=0; i<l_len.length && i < r_len.length; i++) {
|
|
29
|
-
if(this.value[i] > object.value[i]) {
|
|
30
|
-
return 1;
|
|
31
|
-
}
|
|
32
|
-
if(this.value[i] < object.value[i]) {
|
|
33
|
-
return -1;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return l_len - r_len;
|
|
37
|
-
}
|
|
38
|
-
return 1;
|
|
39
|
-
};
|
|
40
|
-
this.equals = function(object) {
|
|
41
|
-
if(object instanceof IP4Value) {
|
|
42
|
-
return this.value === object.value;
|
|
43
|
-
}
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
this.hashCode = function() {
|
|
47
|
-
if(this.value == null) {
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
var h=0;
|
|
51
|
-
var len = this.value.length;
|
|
52
|
-
for(var i = 0 ; i < len ; i++){
|
|
53
|
-
h+=this.value[i];
|
|
54
|
-
}
|
|
55
|
-
return h;
|
|
56
|
-
}
|
|
57
|
-
this.toString = function() {
|
|
58
|
-
return IPUtil.bytesToString(this.value);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
IP4Value.prototype = new Value();
|
|
63
|
-
IP4Value.prototype.constructor = IP4Value;
|
|
64
|
-
IP4Value.prototype.getValueType = function() {
|
|
65
|
-
return ValueEnum.IP4ADDR;
|
|
66
|
-
};
|
|
67
|
-
IP4Value.prototype.write = function(dout) {
|
|
68
|
-
if(this.value == null) {
|
|
69
|
-
this.value = [0, 0, 0, 0];
|
|
70
|
-
}
|
|
71
|
-
dout.writeBytes(this.value);
|
|
72
|
-
};
|
|
73
|
-
IP4Value.prototype.read = function(din) {
|
|
74
|
-
if(this.value == null) {
|
|
75
|
-
this.value = [0, 0, 0, 0];
|
|
76
|
-
}
|
|
77
|
-
this.value = din.read(4);
|
|
78
|
-
return this;
|
|
79
|
-
};
|
|
80
|
-
IP4Value.prototype.toObject = function() {
|
|
81
|
-
return this.value;
|
|
82
|
-
};
|
|
83
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var Value = require('./value'),
|
|
8
|
+
ValueEnum = require('./valueenum'),
|
|
9
|
+
IPUtil = require('../util/iputil');
|
|
10
|
+
|
|
11
|
+
function IP4Value() {
|
|
12
|
+
Value.call(this);
|
|
13
|
+
this.value = new Array(4);
|
|
14
|
+
|
|
15
|
+
this.compareTo = function(object) {
|
|
16
|
+
if(object instanceof IP4Value) {
|
|
17
|
+
if(object.value == null && this.value == null) {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
if(this.value == null) {
|
|
21
|
+
return -1;
|
|
22
|
+
}
|
|
23
|
+
if(object.value == null) {
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
var l_len = this.length,
|
|
27
|
+
r_len = object.length;
|
|
28
|
+
for(var i=0; i<l_len.length && i < r_len.length; i++) {
|
|
29
|
+
if(this.value[i] > object.value[i]) {
|
|
30
|
+
return 1;
|
|
31
|
+
}
|
|
32
|
+
if(this.value[i] < object.value[i]) {
|
|
33
|
+
return -1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return l_len - r_len;
|
|
37
|
+
}
|
|
38
|
+
return 1;
|
|
39
|
+
};
|
|
40
|
+
this.equals = function(object) {
|
|
41
|
+
if(object instanceof IP4Value) {
|
|
42
|
+
return this.value === object.value;
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
this.hashCode = function() {
|
|
47
|
+
if(this.value == null) {
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
var h=0;
|
|
51
|
+
var len = this.value.length;
|
|
52
|
+
for(var i = 0 ; i < len ; i++){
|
|
53
|
+
h+=this.value[i];
|
|
54
|
+
}
|
|
55
|
+
return h;
|
|
56
|
+
}
|
|
57
|
+
this.toString = function() {
|
|
58
|
+
return IPUtil.bytesToString(this.value);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
IP4Value.prototype = new Value();
|
|
63
|
+
IP4Value.prototype.constructor = IP4Value;
|
|
64
|
+
IP4Value.prototype.getValueType = function() {
|
|
65
|
+
return ValueEnum.IP4ADDR;
|
|
66
|
+
};
|
|
67
|
+
IP4Value.prototype.write = function(dout) {
|
|
68
|
+
if(this.value == null) {
|
|
69
|
+
this.value = [0, 0, 0, 0];
|
|
70
|
+
}
|
|
71
|
+
dout.writeBytes(this.value);
|
|
72
|
+
};
|
|
73
|
+
IP4Value.prototype.read = function(din) {
|
|
74
|
+
if(this.value == null) {
|
|
75
|
+
this.value = [0, 0, 0, 0];
|
|
76
|
+
}
|
|
77
|
+
this.value = din.read(4);
|
|
78
|
+
return this;
|
|
79
|
+
};
|
|
80
|
+
IP4Value.prototype.toObject = function() {
|
|
81
|
+
return this.value;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
84
|
module.exports = IP4Value;
|
package/lib/value/list-value.js
CHANGED
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var Value = require('./value'),
|
|
8
|
-
ValueEnum = require('./valueenum'),
|
|
9
|
-
BooleanValue = require('./boolean-value'),
|
|
10
|
-
NumberValue = require('./number-value'),
|
|
11
|
-
DecimalValue = require('./decimal-value'),
|
|
12
|
-
FloatValue = require('./float-value'),
|
|
13
|
-
DoubleValue = require('./double-value'),
|
|
14
|
-
TextValue = require('./text-value'),
|
|
15
|
-
Long = require('long');
|
|
16
|
-
|
|
17
|
-
function ListValue(valueList) {
|
|
18
|
-
Value.call(this);
|
|
19
|
-
this.valueList = valueList || [];
|
|
20
|
-
this.getBoolean = function(i) {
|
|
21
|
-
var v = this.valueList[i];
|
|
22
|
-
if(v instanceof BooleanValue) {
|
|
23
|
-
return v.value;
|
|
24
|
-
}
|
|
25
|
-
return false;
|
|
26
|
-
};
|
|
27
|
-
this.getDouble = function(i) {
|
|
28
|
-
var v = this.valueList[i];
|
|
29
|
-
if(v.doubleValue) {
|
|
30
|
-
return v.doubleValue();
|
|
31
|
-
}
|
|
32
|
-
return 0.0;
|
|
33
|
-
};
|
|
34
|
-
this.getLong = function(i) {
|
|
35
|
-
var v = this.valueList[i];
|
|
36
|
-
if(v.longValue) {
|
|
37
|
-
return v.longValue();
|
|
38
|
-
}
|
|
39
|
-
return Long.ZERO;
|
|
40
|
-
};
|
|
41
|
-
this.getNumber = function(i) {
|
|
42
|
-
var v = this.valueList[i];
|
|
43
|
-
if(v.numberValue) {
|
|
44
|
-
return v.numberValue();
|
|
45
|
-
}
|
|
46
|
-
return 0;
|
|
47
|
-
};
|
|
48
|
-
this.getInt = function(i) {
|
|
49
|
-
var v = this.valueList[i];
|
|
50
|
-
if(v instanceof NumberValue) {
|
|
51
|
-
return v.intValue();
|
|
52
|
-
}
|
|
53
|
-
return 0;
|
|
54
|
-
};
|
|
55
|
-
this.getString = function(i) {
|
|
56
|
-
var v = this.valueList[i];
|
|
57
|
-
if(v instanceof TextValue) {
|
|
58
|
-
return v.value;
|
|
59
|
-
}
|
|
60
|
-
if(v == null) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
return v.toString();
|
|
64
|
-
};
|
|
65
|
-
this.set = function(i, value) {
|
|
66
|
-
this.valueList[i] = value;
|
|
67
|
-
};
|
|
68
|
-
this.addValue = function(value) {
|
|
69
|
-
this.valueList.push(value);
|
|
70
|
-
return this;
|
|
71
|
-
};
|
|
72
|
-
this.addBoolean = function(value) {
|
|
73
|
-
this.valueList.push(new BooleanValue(value));
|
|
74
|
-
return this;
|
|
75
|
-
};
|
|
76
|
-
this.addDouble = function(value) {
|
|
77
|
-
this.valueList.push(new DoubleValue(value));
|
|
78
|
-
return this;
|
|
79
|
-
};
|
|
80
|
-
this.addLong = function(value) {
|
|
81
|
-
this.valueList.push(new DecimalValue(value));
|
|
82
|
-
return this;
|
|
83
|
-
};
|
|
84
|
-
this.addFloat = function(value) {
|
|
85
|
-
this.valueList.push(new FloatValue(value));
|
|
86
|
-
return this;
|
|
87
|
-
};
|
|
88
|
-
this.addString = function(value) {
|
|
89
|
-
this.valueList.push(new TextValue(value));
|
|
90
|
-
return this;
|
|
91
|
-
};
|
|
92
|
-
this.addStringArray = function(value) {
|
|
93
|
-
if(Array.isArray(value)) {
|
|
94
|
-
var len = value.length;
|
|
95
|
-
for(var i=0; i<len; i++) {
|
|
96
|
-
this.addString(value[i]);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return this;
|
|
100
|
-
};
|
|
101
|
-
this.addValueArray = function(value) {
|
|
102
|
-
if(Array.isArray(value)) {
|
|
103
|
-
var len = value.length;
|
|
104
|
-
for(var i=0; i<len; i++) {
|
|
105
|
-
this.addValue(value[i]);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
this.size = function() {
|
|
110
|
-
return this.valueList.length;
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
ListValue.prototype = new Value();
|
|
115
|
-
ListValue.prototype.constructor = ListValue;
|
|
116
|
-
ListValue.prototype.write = function(dout) {
|
|
117
|
-
var sz = this.size();
|
|
118
|
-
dout.writeDecimal(sz);
|
|
119
|
-
for(var i=0; i<sz; i++) {
|
|
120
|
-
dout.writeValue(this.valueList[i]);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
ListValue.prototype.read = function(din) {
|
|
124
|
-
var count = din.readDecNumber();
|
|
125
|
-
for(var i=0; i<count; i++) {
|
|
126
|
-
this.addValue(din.readValue());
|
|
127
|
-
}
|
|
128
|
-
return this;
|
|
129
|
-
};
|
|
130
|
-
ListValue.prototype.getValueType = function () {
|
|
131
|
-
return ValueEnum.LIST;
|
|
132
|
-
};
|
|
133
|
-
ListValue.prototype.toObject = function() {
|
|
134
|
-
return this.valueList;
|
|
135
|
-
};
|
|
136
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var Value = require('./value'),
|
|
8
|
+
ValueEnum = require('./valueenum'),
|
|
9
|
+
BooleanValue = require('./boolean-value'),
|
|
10
|
+
NumberValue = require('./number-value'),
|
|
11
|
+
DecimalValue = require('./decimal-value'),
|
|
12
|
+
FloatValue = require('./float-value'),
|
|
13
|
+
DoubleValue = require('./double-value'),
|
|
14
|
+
TextValue = require('./text-value'),
|
|
15
|
+
Long = require('long');
|
|
16
|
+
|
|
17
|
+
function ListValue(valueList) {
|
|
18
|
+
Value.call(this);
|
|
19
|
+
this.valueList = valueList || [];
|
|
20
|
+
this.getBoolean = function(i) {
|
|
21
|
+
var v = this.valueList[i];
|
|
22
|
+
if(v instanceof BooleanValue) {
|
|
23
|
+
return v.value;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
};
|
|
27
|
+
this.getDouble = function(i) {
|
|
28
|
+
var v = this.valueList[i];
|
|
29
|
+
if(v.doubleValue) {
|
|
30
|
+
return v.doubleValue();
|
|
31
|
+
}
|
|
32
|
+
return 0.0;
|
|
33
|
+
};
|
|
34
|
+
this.getLong = function(i) {
|
|
35
|
+
var v = this.valueList[i];
|
|
36
|
+
if(v.longValue) {
|
|
37
|
+
return v.longValue();
|
|
38
|
+
}
|
|
39
|
+
return Long.ZERO;
|
|
40
|
+
};
|
|
41
|
+
this.getNumber = function(i) {
|
|
42
|
+
var v = this.valueList[i];
|
|
43
|
+
if(v.numberValue) {
|
|
44
|
+
return v.numberValue();
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
};
|
|
48
|
+
this.getInt = function(i) {
|
|
49
|
+
var v = this.valueList[i];
|
|
50
|
+
if(v instanceof NumberValue) {
|
|
51
|
+
return v.intValue();
|
|
52
|
+
}
|
|
53
|
+
return 0;
|
|
54
|
+
};
|
|
55
|
+
this.getString = function(i) {
|
|
56
|
+
var v = this.valueList[i];
|
|
57
|
+
if(v instanceof TextValue) {
|
|
58
|
+
return v.value;
|
|
59
|
+
}
|
|
60
|
+
if(v == null) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return v.toString();
|
|
64
|
+
};
|
|
65
|
+
this.set = function(i, value) {
|
|
66
|
+
this.valueList[i] = value;
|
|
67
|
+
};
|
|
68
|
+
this.addValue = function(value) {
|
|
69
|
+
this.valueList.push(value);
|
|
70
|
+
return this;
|
|
71
|
+
};
|
|
72
|
+
this.addBoolean = function(value) {
|
|
73
|
+
this.valueList.push(new BooleanValue(value));
|
|
74
|
+
return this;
|
|
75
|
+
};
|
|
76
|
+
this.addDouble = function(value) {
|
|
77
|
+
this.valueList.push(new DoubleValue(value));
|
|
78
|
+
return this;
|
|
79
|
+
};
|
|
80
|
+
this.addLong = function(value) {
|
|
81
|
+
this.valueList.push(new DecimalValue(value));
|
|
82
|
+
return this;
|
|
83
|
+
};
|
|
84
|
+
this.addFloat = function(value) {
|
|
85
|
+
this.valueList.push(new FloatValue(value));
|
|
86
|
+
return this;
|
|
87
|
+
};
|
|
88
|
+
this.addString = function(value) {
|
|
89
|
+
this.valueList.push(new TextValue(value));
|
|
90
|
+
return this;
|
|
91
|
+
};
|
|
92
|
+
this.addStringArray = function(value) {
|
|
93
|
+
if(Array.isArray(value)) {
|
|
94
|
+
var len = value.length;
|
|
95
|
+
for(var i=0; i<len; i++) {
|
|
96
|
+
this.addString(value[i]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return this;
|
|
100
|
+
};
|
|
101
|
+
this.addValueArray = function(value) {
|
|
102
|
+
if(Array.isArray(value)) {
|
|
103
|
+
var len = value.length;
|
|
104
|
+
for(var i=0; i<len; i++) {
|
|
105
|
+
this.addValue(value[i]);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
this.size = function() {
|
|
110
|
+
return this.valueList.length;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
ListValue.prototype = new Value();
|
|
115
|
+
ListValue.prototype.constructor = ListValue;
|
|
116
|
+
ListValue.prototype.write = function(dout) {
|
|
117
|
+
var sz = this.size();
|
|
118
|
+
dout.writeDecimal(sz);
|
|
119
|
+
for(var i=0; i<sz; i++) {
|
|
120
|
+
dout.writeValue(this.valueList[i]);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
ListValue.prototype.read = function(din) {
|
|
124
|
+
var count = din.readDecNumber();
|
|
125
|
+
for(var i=0; i<count; i++) {
|
|
126
|
+
this.addValue(din.readValue());
|
|
127
|
+
}
|
|
128
|
+
return this;
|
|
129
|
+
};
|
|
130
|
+
ListValue.prototype.getValueType = function () {
|
|
131
|
+
return ValueEnum.LIST;
|
|
132
|
+
};
|
|
133
|
+
ListValue.prototype.toObject = function() {
|
|
134
|
+
return this.valueList;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
137
|
module.exports = ListValue;
|
package/lib/value/long-array.js
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var Value = require('./value'),
|
|
8
|
-
ValueEnum = require('./valueenum'),
|
|
9
|
-
Long = require('long');
|
|
10
|
-
|
|
11
|
-
function LongArray(value) {
|
|
12
|
-
Value.call(this);
|
|
13
|
-
this.value = value || [];
|
|
14
|
-
this.hash = 0;
|
|
15
|
-
this.compareTo = function(object) {
|
|
16
|
-
if(object instanceof LongArray) {
|
|
17
|
-
return ArrayUtil.compare(this.value, object.value);
|
|
18
|
-
}
|
|
19
|
-
return 1;
|
|
20
|
-
};
|
|
21
|
-
this.equals = function(object) {
|
|
22
|
-
if(object instanceof LongArray) {
|
|
23
|
-
return ArrayUtil.equals(this.value, object.value);
|
|
24
|
-
}
|
|
25
|
-
return false;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
this.hashCode = function() {
|
|
29
|
-
if(this.hash === 0) {
|
|
30
|
-
if(this.value == null) {
|
|
31
|
-
return 0;
|
|
32
|
-
}
|
|
33
|
-
var result = 1,
|
|
34
|
-
len = this.value.length;
|
|
35
|
-
for(var i=0; i<len; i++) {
|
|
36
|
-
var element = this.value[i];
|
|
37
|
-
result = 31 * result + element.toInt();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return this.hash;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
LongArray.prototype = new Value();
|
|
45
|
-
LongArray.prototype.constructor = LongArray;
|
|
46
|
-
LongArray.prototype.write = function(dout) {
|
|
47
|
-
dout.writeLongArray(this.value);
|
|
48
|
-
};
|
|
49
|
-
LongArray.prototype.read = function(din) {
|
|
50
|
-
this.value = din.readLongArray();
|
|
51
|
-
return this;
|
|
52
|
-
};
|
|
53
|
-
LongArray.prototype.getValueType = function() {
|
|
54
|
-
return ValueEnum.ARRAY_LONG;
|
|
55
|
-
};
|
|
56
|
-
LongArray.prototype.toObject = function() {
|
|
57
|
-
return this.value;
|
|
58
|
-
};
|
|
59
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var Value = require('./value'),
|
|
8
|
+
ValueEnum = require('./valueenum'),
|
|
9
|
+
Long = require('long');
|
|
10
|
+
|
|
11
|
+
function LongArray(value) {
|
|
12
|
+
Value.call(this);
|
|
13
|
+
this.value = value || [];
|
|
14
|
+
this.hash = 0;
|
|
15
|
+
this.compareTo = function(object) {
|
|
16
|
+
if(object instanceof LongArray) {
|
|
17
|
+
return ArrayUtil.compare(this.value, object.value);
|
|
18
|
+
}
|
|
19
|
+
return 1;
|
|
20
|
+
};
|
|
21
|
+
this.equals = function(object) {
|
|
22
|
+
if(object instanceof LongArray) {
|
|
23
|
+
return ArrayUtil.equals(this.value, object.value);
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
this.hashCode = function() {
|
|
29
|
+
if(this.hash === 0) {
|
|
30
|
+
if(this.value == null) {
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
var result = 1,
|
|
34
|
+
len = this.value.length;
|
|
35
|
+
for(var i=0; i<len; i++) {
|
|
36
|
+
var element = this.value[i];
|
|
37
|
+
result = 31 * result + element.toInt();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return this.hash;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
LongArray.prototype = new Value();
|
|
45
|
+
LongArray.prototype.constructor = LongArray;
|
|
46
|
+
LongArray.prototype.write = function(dout) {
|
|
47
|
+
dout.writeLongArray(this.value);
|
|
48
|
+
};
|
|
49
|
+
LongArray.prototype.read = function(din) {
|
|
50
|
+
this.value = din.readLongArray();
|
|
51
|
+
return this;
|
|
52
|
+
};
|
|
53
|
+
LongArray.prototype.getValueType = function() {
|
|
54
|
+
return ValueEnum.ARRAY_LONG;
|
|
55
|
+
};
|
|
56
|
+
LongArray.prototype.toObject = function() {
|
|
57
|
+
return this.value;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
60
|
module.exports = LongArray;
|