github.com/xiyichan/dm8@v0.0.0-20211213021639-be727be3e136/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_875 struct {
    13  	dm_build_876 *list.List
    14  	dm_build_877 *dm_build_929
    15  	dm_build_878 int
    16  }
    17  
    18  func Dm_build_879() *Dm_build_875 {
    19  	return &Dm_build_875{
    20  		dm_build_876: list.New(),
    21  		dm_build_878: 0,
    22  	}
    23  }
    24  
    25  func (dm_build_881 *Dm_build_875) Dm_build_880() int {
    26  	return dm_build_881.dm_build_878
    27  }
    28  
    29  func (dm_build_883 *Dm_build_875) Dm_build_882(dm_build_884 *Dm_build_953, dm_build_885 int) int {
    30  	var dm_build_886 = 0
    31  	var dm_build_887 = 0
    32  	for dm_build_886 < dm_build_885 && dm_build_883.dm_build_877 != nil {
    33  		dm_build_887 = dm_build_883.dm_build_877.dm_build_937(dm_build_884, dm_build_885-dm_build_886)
    34  		if dm_build_883.dm_build_877.dm_build_932 == 0 {
    35  			dm_build_883.dm_build_919()
    36  		}
    37  		dm_build_886 += dm_build_887
    38  		dm_build_883.dm_build_878 -= dm_build_887
    39  	}
    40  	return dm_build_886
    41  }
    42  
    43  func (dm_build_889 *Dm_build_875) Dm_build_888(dm_build_890 []byte, dm_build_891 int, dm_build_892 int) int {
    44  	var dm_build_893 = 0
    45  	var dm_build_894 = 0
    46  	for dm_build_893 < dm_build_892 && dm_build_889.dm_build_877 != nil {
    47  		dm_build_894 = dm_build_889.dm_build_877.dm_build_941(dm_build_890, dm_build_891, dm_build_892-dm_build_893)
    48  		if dm_build_889.dm_build_877.dm_build_932 == 0 {
    49  			dm_build_889.dm_build_919()
    50  		}
    51  		dm_build_893 += dm_build_894
    52  		dm_build_889.dm_build_878 -= dm_build_894
    53  		dm_build_891 += dm_build_894
    54  	}
    55  	return dm_build_893
    56  }
    57  
    58  func (dm_build_896 *Dm_build_875) Dm_build_895(dm_build_897 io.Writer, dm_build_898 int) int {
    59  	var dm_build_899 = 0
    60  	var dm_build_900 = 0
    61  	for dm_build_899 < dm_build_898 && dm_build_896.dm_build_877 != nil {
    62  		dm_build_900 = dm_build_896.dm_build_877.dm_build_946(dm_build_897, dm_build_898-dm_build_899)
    63  		if dm_build_896.dm_build_877.dm_build_932 == 0 {
    64  			dm_build_896.dm_build_919()
    65  		}
    66  		dm_build_899 += dm_build_900
    67  		dm_build_896.dm_build_878 -= dm_build_900
    68  	}
    69  	return dm_build_899
    70  }
    71  
    72  func (dm_build_902 *Dm_build_875) Dm_build_901(dm_build_903 []byte, dm_build_904 int, dm_build_905 int) {
    73  	if dm_build_905 == 0 {
    74  		return
    75  	}
    76  	var dm_build_906 = dm_build_933(dm_build_903, dm_build_904, dm_build_905)
    77  	if dm_build_902.dm_build_877 == nil {
    78  		dm_build_902.dm_build_877 = dm_build_906
    79  	} else {
    80  		dm_build_902.dm_build_876.PushBack(dm_build_906)
    81  	}
    82  	dm_build_902.dm_build_878 += dm_build_905
    83  }
    84  
    85  func (dm_build_908 *Dm_build_875) dm_build_907(dm_build_909 int) byte {
    86  	var dm_build_910 = dm_build_909
    87  	var dm_build_911 = dm_build_908.dm_build_877
    88  	for dm_build_910 > 0 && dm_build_911 != nil {
    89  		if dm_build_911.dm_build_932 == 0 {
    90  			continue
    91  		}
    92  		if dm_build_910 > dm_build_911.dm_build_932-1 {
    93  			dm_build_910 -= dm_build_911.dm_build_932
    94  			dm_build_911 = dm_build_908.dm_build_876.Front().Value.(*dm_build_929)
    95  		} else {
    96  			break
    97  		}
    98  	}
    99  	return dm_build_911.dm_build_950(dm_build_910)
   100  }
   101  func (dm_build_913 *Dm_build_875) Dm_build_912(dm_build_914 *Dm_build_875) {
   102  	if dm_build_914.dm_build_878 == 0 {
   103  		return
   104  	}
   105  	var dm_build_915 = dm_build_914.dm_build_877
   106  	for dm_build_915 != nil {
   107  		dm_build_913.dm_build_916(dm_build_915)
   108  		dm_build_914.dm_build_919()
   109  		dm_build_915 = dm_build_914.dm_build_877
   110  	}
   111  	dm_build_914.dm_build_878 = 0
   112  }
   113  func (dm_build_917 *Dm_build_875) dm_build_916(dm_build_918 *dm_build_929) {
   114  	if dm_build_918.dm_build_932 == 0 {
   115  		return
   116  	}
   117  	if dm_build_917.dm_build_877 == nil {
   118  		dm_build_917.dm_build_877 = dm_build_918
   119  	} else {
   120  		dm_build_917.dm_build_876.PushBack(dm_build_918)
   121  	}
   122  	dm_build_917.dm_build_878 += dm_build_918.dm_build_932
   123  }
   124  
   125  func (dm_build_920 *Dm_build_875) dm_build_919() {
   126  	var dm_build_921 = dm_build_920.dm_build_876.Front()
   127  	if dm_build_921 == nil {
   128  		dm_build_920.dm_build_877 = nil
   129  	} else {
   130  		dm_build_920.dm_build_877 = dm_build_921.Value.(*dm_build_929)
   131  		dm_build_920.dm_build_876.Remove(dm_build_921)
   132  	}
   133  }
   134  
   135  func (dm_build_923 *Dm_build_875) Dm_build_922() []byte {
   136  	var dm_build_924 = make([]byte, dm_build_923.dm_build_878)
   137  	var dm_build_925 = dm_build_923.dm_build_877
   138  	var dm_build_926 = 0
   139  	var dm_build_927 = len(dm_build_924)
   140  	var dm_build_928 = 0
   141  	for dm_build_925 != nil {
   142  		if dm_build_925.dm_build_932 > 0 {
   143  			if dm_build_927 > dm_build_925.dm_build_932 {
   144  				dm_build_928 = dm_build_925.dm_build_932
   145  			} else {
   146  				dm_build_928 = dm_build_927
   147  			}
   148  			copy(dm_build_924[dm_build_926:dm_build_926+dm_build_928], dm_build_925.dm_build_930[dm_build_925.dm_build_931:dm_build_925.dm_build_931+dm_build_928])
   149  			dm_build_926 += dm_build_928
   150  			dm_build_927 -= dm_build_928
   151  		}
   152  		if dm_build_923.dm_build_876.Front() == nil {
   153  			dm_build_925 = nil
   154  		} else {
   155  			dm_build_925 = dm_build_923.dm_build_876.Front().Value.(*dm_build_929)
   156  		}
   157  	}
   158  	return dm_build_924
   159  }
   160  
   161  type dm_build_929 struct {
   162  	dm_build_930 []byte
   163  	dm_build_931 int
   164  	dm_build_932 int
   165  }
   166  
   167  func dm_build_933(dm_build_934 []byte, dm_build_935 int, dm_build_936 int) *dm_build_929 {
   168  	return &dm_build_929{
   169  		dm_build_934,
   170  		dm_build_935,
   171  		dm_build_936,
   172  	}
   173  }
   174  
   175  func (dm_build_938 *dm_build_929) dm_build_937(dm_build_939 *Dm_build_953, dm_build_940 int) int {
   176  	if dm_build_938.dm_build_932 <= dm_build_940 {
   177  		dm_build_940 = dm_build_938.dm_build_932
   178  	}
   179  	dm_build_939.Dm_build_1032(dm_build_938.dm_build_930[dm_build_938.dm_build_931 : dm_build_938.dm_build_931+dm_build_940])
   180  	dm_build_938.dm_build_931 += dm_build_940
   181  	dm_build_938.dm_build_932 -= dm_build_940
   182  	return dm_build_940
   183  }
   184  
   185  func (dm_build_942 *dm_build_929) dm_build_941(dm_build_943 []byte, dm_build_944 int, dm_build_945 int) int {
   186  	if dm_build_942.dm_build_932 <= dm_build_945 {
   187  		dm_build_945 = dm_build_942.dm_build_932
   188  	}
   189  	copy(dm_build_943[dm_build_944:dm_build_944+dm_build_945], dm_build_942.dm_build_930[dm_build_942.dm_build_931:dm_build_942.dm_build_931+dm_build_945])
   190  	dm_build_942.dm_build_931 += dm_build_945
   191  	dm_build_942.dm_build_932 -= dm_build_945
   192  	return dm_build_945
   193  }
   194  
   195  func (dm_build_947 *dm_build_929) dm_build_946(dm_build_948 io.Writer, dm_build_949 int) int {
   196  	if dm_build_947.dm_build_932 <= dm_build_949 {
   197  		dm_build_949 = dm_build_947.dm_build_932
   198  	}
   199  	dm_build_948.Write(dm_build_947.dm_build_930[dm_build_947.dm_build_931 : dm_build_947.dm_build_931+dm_build_949])
   200  	dm_build_947.dm_build_931 += dm_build_949
   201  	dm_build_947.dm_build_932 -= dm_build_949
   202  	return dm_build_949
   203  }
   204  func (dm_build_951 *dm_build_929) dm_build_950(dm_build_952 int) byte {
   205  	return dm_build_951.dm_build_930[dm_build_951.dm_build_931+dm_build_952]
   206  }