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  }