gitee.com/chunanyong/dm@v1.8.12/d.go (about) 1 /* 2 * Copyright (c) 2000-2018, 达梦数据库有限公司. 3 * All rights reserved. 4 */ 5 package dm 6 7 import ( 8 "container/list" 9 "io" 10 ) 11 12 type Dm_build_931 struct { 13 dm_build_932 *list.List 14 dm_build_933 *dm_build_985 15 dm_build_934 int 16 } 17 18 func Dm_build_935() *Dm_build_931 { 19 return &Dm_build_931{ 20 dm_build_932: list.New(), 21 dm_build_934: 0, 22 } 23 } 24 25 func (dm_build_937 *Dm_build_931) Dm_build_936() int { 26 return dm_build_937.dm_build_934 27 } 28 29 func (dm_build_939 *Dm_build_931) Dm_build_938(dm_build_940 *Dm_build_1009, dm_build_941 int) int { 30 var dm_build_942 = 0 31 var dm_build_943 = 0 32 for dm_build_942 < dm_build_941 && dm_build_939.dm_build_933 != nil { 33 dm_build_943 = dm_build_939.dm_build_933.dm_build_993(dm_build_940, dm_build_941-dm_build_942) 34 if dm_build_939.dm_build_933.dm_build_988 == 0 { 35 dm_build_939.dm_build_975() 36 } 37 dm_build_942 += dm_build_943 38 dm_build_939.dm_build_934 -= dm_build_943 39 } 40 return dm_build_942 41 } 42 43 func (dm_build_945 *Dm_build_931) Dm_build_944(dm_build_946 []byte, dm_build_947 int, dm_build_948 int) int { 44 var dm_build_949 = 0 45 var dm_build_950 = 0 46 for dm_build_949 < dm_build_948 && dm_build_945.dm_build_933 != nil { 47 dm_build_950 = dm_build_945.dm_build_933.dm_build_997(dm_build_946, dm_build_947, dm_build_948-dm_build_949) 48 if dm_build_945.dm_build_933.dm_build_988 == 0 { 49 dm_build_945.dm_build_975() 50 } 51 dm_build_949 += dm_build_950 52 dm_build_945.dm_build_934 -= dm_build_950 53 dm_build_947 += dm_build_950 54 } 55 return dm_build_949 56 } 57 58 func (dm_build_952 *Dm_build_931) Dm_build_951(dm_build_953 io.Writer, dm_build_954 int) int { 59 var dm_build_955 = 0 60 var dm_build_956 = 0 61 for dm_build_955 < dm_build_954 && dm_build_952.dm_build_933 != nil { 62 dm_build_956 = dm_build_952.dm_build_933.dm_build_1002(dm_build_953, dm_build_954-dm_build_955) 63 if dm_build_952.dm_build_933.dm_build_988 == 0 { 64 dm_build_952.dm_build_975() 65 } 66 dm_build_955 += dm_build_956 67 dm_build_952.dm_build_934 -= dm_build_956 68 } 69 return dm_build_955 70 } 71 72 func (dm_build_958 *Dm_build_931) Dm_build_957(dm_build_959 []byte, dm_build_960 int, dm_build_961 int) { 73 if dm_build_961 == 0 { 74 return 75 } 76 var dm_build_962 = dm_build_989(dm_build_959, dm_build_960, dm_build_961) 77 if dm_build_958.dm_build_933 == nil { 78 dm_build_958.dm_build_933 = dm_build_962 79 } else { 80 dm_build_958.dm_build_932.PushBack(dm_build_962) 81 } 82 dm_build_958.dm_build_934 += dm_build_961 83 } 84 85 func (dm_build_964 *Dm_build_931) dm_build_963(dm_build_965 int) byte { 86 var dm_build_966 = dm_build_965 87 var dm_build_967 = dm_build_964.dm_build_933 88 for dm_build_966 > 0 && dm_build_967 != nil { 89 if dm_build_967.dm_build_988 == 0 { 90 continue 91 } 92 if dm_build_966 > dm_build_967.dm_build_988-1 { 93 dm_build_966 -= dm_build_967.dm_build_988 94 dm_build_967 = dm_build_964.dm_build_932.Front().Value.(*dm_build_985) 95 } else { 96 break 97 } 98 } 99 return dm_build_967.dm_build_1006(dm_build_966) 100 } 101 func (dm_build_969 *Dm_build_931) Dm_build_968(dm_build_970 *Dm_build_931) { 102 if dm_build_970.dm_build_934 == 0 { 103 return 104 } 105 var dm_build_971 = dm_build_970.dm_build_933 106 for dm_build_971 != nil { 107 dm_build_969.dm_build_972(dm_build_971) 108 dm_build_970.dm_build_975() 109 dm_build_971 = dm_build_970.dm_build_933 110 } 111 dm_build_970.dm_build_934 = 0 112 } 113 func (dm_build_973 *Dm_build_931) dm_build_972(dm_build_974 *dm_build_985) { 114 if dm_build_974.dm_build_988 == 0 { 115 return 116 } 117 if dm_build_973.dm_build_933 == nil { 118 dm_build_973.dm_build_933 = dm_build_974 119 } else { 120 dm_build_973.dm_build_932.PushBack(dm_build_974) 121 } 122 dm_build_973.dm_build_934 += dm_build_974.dm_build_988 123 } 124 125 func (dm_build_976 *Dm_build_931) dm_build_975() { 126 var dm_build_977 = dm_build_976.dm_build_932.Front() 127 if dm_build_977 == nil { 128 dm_build_976.dm_build_933 = nil 129 } else { 130 dm_build_976.dm_build_933 = dm_build_977.Value.(*dm_build_985) 131 dm_build_976.dm_build_932.Remove(dm_build_977) 132 } 133 } 134 135 func (dm_build_979 *Dm_build_931) Dm_build_978() []byte { 136 var dm_build_980 = make([]byte, dm_build_979.dm_build_934) 137 var dm_build_981 = dm_build_979.dm_build_933 138 var dm_build_982 = 0 139 var dm_build_983 = len(dm_build_980) 140 var dm_build_984 = 0 141 for dm_build_981 != nil { 142 if dm_build_981.dm_build_988 > 0 { 143 if dm_build_983 > dm_build_981.dm_build_988 { 144 dm_build_984 = dm_build_981.dm_build_988 145 } else { 146 dm_build_984 = dm_build_983 147 } 148 copy(dm_build_980[dm_build_982:dm_build_982+dm_build_984], dm_build_981.dm_build_986[dm_build_981.dm_build_987:dm_build_981.dm_build_987+dm_build_984]) 149 dm_build_982 += dm_build_984 150 dm_build_983 -= dm_build_984 151 } 152 if dm_build_979.dm_build_932.Front() == nil { 153 dm_build_981 = nil 154 } else { 155 dm_build_981 = dm_build_979.dm_build_932.Front().Value.(*dm_build_985) 156 } 157 } 158 return dm_build_980 159 } 160 161 type dm_build_985 struct { 162 dm_build_986 []byte 163 dm_build_987 int 164 dm_build_988 int 165 } 166 167 func dm_build_989(dm_build_990 []byte, dm_build_991 int, dm_build_992 int) *dm_build_985 { 168 return &dm_build_985{ 169 dm_build_990, 170 dm_build_991, 171 dm_build_992, 172 } 173 } 174 175 func (dm_build_994 *dm_build_985) dm_build_993(dm_build_995 *Dm_build_1009, dm_build_996 int) int { 176 if dm_build_994.dm_build_988 <= dm_build_996 { 177 dm_build_996 = dm_build_994.dm_build_988 178 } 179 dm_build_995.Dm_build_1092(dm_build_994.dm_build_986[dm_build_994.dm_build_987 : dm_build_994.dm_build_987+dm_build_996]) 180 dm_build_994.dm_build_987 += dm_build_996 181 dm_build_994.dm_build_988 -= dm_build_996 182 return dm_build_996 183 } 184 185 func (dm_build_998 *dm_build_985) dm_build_997(dm_build_999 []byte, dm_build_1000 int, dm_build_1001 int) int { 186 if dm_build_998.dm_build_988 <= dm_build_1001 { 187 dm_build_1001 = dm_build_998.dm_build_988 188 } 189 copy(dm_build_999[dm_build_1000:dm_build_1000+dm_build_1001], dm_build_998.dm_build_986[dm_build_998.dm_build_987:dm_build_998.dm_build_987+dm_build_1001]) 190 dm_build_998.dm_build_987 += dm_build_1001 191 dm_build_998.dm_build_988 -= dm_build_1001 192 return dm_build_1001 193 } 194 195 func (dm_build_1003 *dm_build_985) dm_build_1002(dm_build_1004 io.Writer, dm_build_1005 int) int { 196 if dm_build_1003.dm_build_988 <= dm_build_1005 { 197 dm_build_1005 = dm_build_1003.dm_build_988 198 } 199 dm_build_1004.Write(dm_build_1003.dm_build_986[dm_build_1003.dm_build_987 : dm_build_1003.dm_build_987+dm_build_1005]) 200 dm_build_1003.dm_build_987 += dm_build_1005 201 dm_build_1003.dm_build_988 -= dm_build_1005 202 return dm_build_1005 203 } 204 func (dm_build_1007 *dm_build_985) dm_build_1006(dm_build_1008 int) byte { 205 return dm_build_1007.dm_build_986[dm_build_1007.dm_build_987+dm_build_1008] 206 }