-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathcodecconst.go
executable file
·128 lines (98 loc) · 3.1 KB
/
codecconst.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
*
* * Copyright 2012-2016 Viant.
* *
* * Licensed under the Apache License, Version 2.0 (the "License"); you may not
* * use this file except in compliance with the License. You may obtain a copy of
* * the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* * License for the specific language governing permissions and limitations under
* * the License.
*
*/
package hessian
const (
mask = byte(127)
flag = byte(128)
)
const (
TAG_READ = int32(-1)
ASCII_GAP = 32
CHUNK_SIZE = 4096
BC_BINARY = byte('B') // final chunk
BC_BINARY_CHUNK = byte('A') // non-final chunk
BC_BINARY_DIRECT = byte(0x20) // 1-byte length binary
BINARY_DIRECT_MAX = byte(0x0f)
BC_BINARY_SHORT = byte(0x34) // 2-byte length binary
BINARY_SHORT_MAX = 0x3ff // 0-1023 binary
BC_DATE = byte(0x4a) // 64-bit millisecond UTC date
BC_DATE_MINUTE = byte(0x4b) // 32-bit minute UTC date
BC_DOUBLE = byte('D') // IEEE 64-bit double
BC_DOUBLE_ZERO = byte(0x5b)
BC_DOUBLE_ONE = byte(0x5c)
BC_DOUBLE_BYTE = byte(0x5d)
BC_DOUBLE_SHORT = byte(0x5e)
BC_DOUBLE_MILL = byte(0x5f)
BC_FALSE = byte('F') // boolean false
BC_INT = byte('I') // 32-bit int
INT_DIRECT_MIN = -0x10
INT_DIRECT_MAX = byte(0x2f)
BC_INT_ZERO = byte(0x90)
INT_BYTE_MIN = -0x800
INT_BYTE_MAX = 0x7ff
BC_INT_BYTE_ZERO = byte(0xc8)
BC_END = byte('Z')
INT_SHORT_MIN = -0x40000
INT_SHORT_MAX = 0x3ffff
BC_INT_SHORT_ZERO = byte(0xd4)
BC_LIST_VARIABLE = byte(0x55)
BC_LIST_FIXED = byte('V')
BC_LIST_VARIABLE_UNTYPED = byte(0x57)
BC_LIST_FIXED_UNTYPED = byte(0x58)
BC_LIST_DIRECT = byte(0x70)
BC_LIST_DIRECT_UNTYPED = byte(0x78)
LIST_DIRECT_MAX = byte(0x7)
BC_LONG = byte('L') // 64-bit signed integer
LONG_DIRECT_MIN = -0x08
LONG_DIRECT_MAX = byte(0x0f)
BC_LONG_ZERO = byte(0xe0)
LONG_BYTE_MIN = -0x800
LONG_BYTE_MAX = 0x7ff
BC_LONG_BYTE_ZERO = byte(0xf8)
LONG_SHORT_MIN = -0x40000
LONG_SHORT_MAX = 0x3ffff
BC_LONG_SHORT_ZERO = byte(0x3c)
BC_LONG_INT = byte(0x59)
BC_MAP = byte('M')
BC_MAP_UNTYPED = byte('H')
BC_NULL = byte('N')
BC_OBJECT = byte('O')
BC_OBJECT_DEF = byte('C')
BC_OBJECT_DIRECT = byte(0x60)
OBJECT_DIRECT_MAX = byte(0x0f)
BC_REF = byte(0x51)
BC_STRING = byte('S') // final string
BC_STRING_CHUNK = byte('R') // non-final string
BC_STRING_DIRECT = byte(0x00)
STRING_DIRECT_MAX = byte(0x1f)
BC_STRING_SHORT = byte(0x30)
STRING_SHORT_MAX = 0x3ff
BC_TRUE = byte('T')
P_PACKET_CHUNK = byte(0x4f)
P_PACKET = byte('P')
P_PACKET_DIRECT = byte(0x80)
PACKET_DIRECT_MAX = byte(0x7f)
P_PACKET_SHORT = byte(0x70)
PACKET_SHORT_MAX = 0xfff
ARRAY_STRING = "[string"
ARRAY_INT = "[int"
ARRAY_DOUBLE = "[double"
ARRAY_FLOAT = "[float"
ARRAY_BOOL = "[boolean"
ARRAY_LONG = "[long"
)