-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathqt.go
149 lines (134 loc) · 3.18 KB
/
qt.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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package qt
//String 返回一个Qtstring类型
func String() *qtstring {
return newstring()
}
//Winhttp 返回一个Winhttp类型
//
//实现GET POST 等请求
func Http() *winhttp {
return newWinhttp()
}
// Gzip 返回一个Gzip类型
//
//可以用于 压缩和解压缩
func Gzip() *qtGzip {
return NewGzip()
}
// Hash 常用Hash 算法
//
//参数1 请使用 [Type.Hash_]选择
func Hash(HashType int, data interface{}) []byte {
return Hmac(HashType, data, nil)
}
// Hmac 常用Hash-Hmac 算法
//
//参数1 请使用 [Type_Const_Hash_]选择
func Hmac(HashType int, data, key interface{}) []byte {
if Type_Const_Hash_Stat < 1 || Type_Const_Hash_End > 9 {
return []byte{}
}
switch HashType {
case Type_Const_Hash_Sha1:
return Sha1(data, key)
case Type_Const_Hash_Md4:
return Md4(data, key)
case Type_Const_Hash_Md5:
return Md5(data, key)
case Type_Const_Hash_Sha224:
return Sha224(data, key)
case Type_Const_Hash_Sha256:
return Sha256(data, key)
case Type_Const_Hash_Sha384:
return Sha384(data, key)
case Type_Const_Hash_Sha512:
return Sha512(data, key)
case Type_Const_Hash_Sha512_224:
return Sha512_224(data, key)
case Type_Const_Hash_Sha512_256:
return Sha512_256(data, key)
}
return []byte{}
}
// Json 返回一个Json类型
//
//支持以下类型
//
//动态添加 【map对象/任意类型合集/数组对象/浮点数/整数/逻辑/字符串】 包括在数组内指定位置添加,能自动扩容
//
//动态删除 【map对象/任意类型合集/数组对象/浮点数/整数/逻辑/字符串】 包括在数组内指定位置删除
//
//动态取值 【map对象/任意类型合集/数组对象/浮点数/整数/逻辑/字符串】
func JSON() *qtJson {
a := newJson()
a.Untie("{}")
return a
}
// Aes 返回一个AES类型
func Aes() *qtAes {
return NewAes()
}
// Des 返回一个DES类型
func Des() *qtDes {
return NewDes()
}
// Mysql 返回一个Mysql类型
func Mysql() *mysql {
return newMysql()
}
// SocketServer .
//
//返回一个Socket 的服务端
//
//var Connect = func(server *qtsocket.Server, handle int64) { }
//
//var Exit = func(server *qtsocket.Server, handle int64, tmpdata *qtJson.Json) {
//
////此时,用户的临时数据已经被清除,这里tmpdata,是最后一次反馈
//
// }
//
//var Arrival = func(server *qtsocket.Server,handle int64, data []byte) { }
//
//在 Exit 函数中有一个 tmpdata 记录着 用户所有的临时数据
func SocketServer(Connect func(server *Server, handle int64), Exit func(server *Server, handle int64, tmpdata *qtJson), Arrival func(server *Server, handle int64, data []byte)) *Server {
tmp := &Server{Connect: Connect, Exit: Exit, Arrival: Arrival}
tmp.SetBit(4096)
return tmp
}
// SocketClient .
//
//返回一个Socket 的客户端
func SocketClient() *Client {
tmp := new(Client)
return tmp
}
// Zlib .
//
//返回一个Zlib 的实例
//
//现在的Zlib不能调整级别后期修改
func Zlib() *qtzlib {
return newzlib_()
}
// Rand .
//
//返回一个随机类
func Rand() *rand_ {
tmp := newRand_()
return tmp
}
// RSA .
//
// New一个RSA实例
func RSA() *Qtrsa {
tmp := new(Qtrsa)
return tmp
}
// File .
//
// New一个File实例
func File() *QtFile {
tmp := new(QtFile)
return tmp
}