github.com/wanlay/gorm-dm8@v1.0.5/dmr/d.go (about)

     1  /*
     2   * Copyright (c) 2000-2018, 达梦数据库有限公司.
     3   * All rights reserved.
     4   */
     5  package dmr
     6  
     7  import (
     8  	"container/list"
     9  	"io"
    10  )
    11  
    12  type Dm_build_1499 struct {
    13  	dm_build_1500 *list.List
    14  	dm_build_1501 *dm_build_1553
    15  	dm_build_1502 int
    16  }
    17  
    18  func Dm_build_1503() *Dm_build_1499 {
    19  	return &Dm_build_1499{
    20  		dm_build_1500: list.New(),
    21  		dm_build_1502: 0,
    22  	}
    23  }
    24  
    25  func (dm_build_1505 *Dm_build_1499) Dm_build_1504() int {
    26  	return dm_build_1505.dm_build_1502
    27  }
    28  
    29  func (dm_build_1507 *Dm_build_1499) Dm_build_1506(dm_build_1508 *Dm_build_0, dm_build_1509 int) int {
    30  	var dm_build_1510 = 0
    31  	var dm_build_1511 = 0
    32  	for dm_build_1510 < dm_build_1509 && dm_build_1507.dm_build_1501 != nil {
    33  		dm_build_1511 = dm_build_1507.dm_build_1501.dm_build_1561(dm_build_1508, dm_build_1509-dm_build_1510)
    34  		if dm_build_1507.dm_build_1501.dm_build_1556 == 0 {
    35  			dm_build_1507.dm_build_1543()
    36  		}
    37  		dm_build_1510 += dm_build_1511
    38  		dm_build_1507.dm_build_1502 -= dm_build_1511
    39  	}
    40  	return dm_build_1510
    41  }
    42  
    43  func (dm_build_1513 *Dm_build_1499) Dm_build_1512(dm_build_1514 []byte, dm_build_1515 int, dm_build_1516 int) int {
    44  	var dm_build_1517 = 0
    45  	var dm_build_1518 = 0
    46  	for dm_build_1517 < dm_build_1516 && dm_build_1513.dm_build_1501 != nil {
    47  		dm_build_1518 = dm_build_1513.dm_build_1501.dm_build_1565(dm_build_1514, dm_build_1515, dm_build_1516-dm_build_1517)
    48  		if dm_build_1513.dm_build_1501.dm_build_1556 == 0 {
    49  			dm_build_1513.dm_build_1543()
    50  		}
    51  		dm_build_1517 += dm_build_1518
    52  		dm_build_1513.dm_build_1502 -= dm_build_1518
    53  		dm_build_1515 += dm_build_1518
    54  	}
    55  	return dm_build_1517
    56  }
    57  
    58  func (dm_build_1520 *Dm_build_1499) Dm_build_1519(dm_build_1521 io.Writer, dm_build_1522 int) int {
    59  	var dm_build_1523 = 0
    60  	var dm_build_1524 = 0
    61  	for dm_build_1523 < dm_build_1522 && dm_build_1520.dm_build_1501 != nil {
    62  		dm_build_1524 = dm_build_1520.dm_build_1501.dm_build_1570(dm_build_1521, dm_build_1522-dm_build_1523)
    63  		if dm_build_1520.dm_build_1501.dm_build_1556 == 0 {
    64  			dm_build_1520.dm_build_1543()
    65  		}
    66  		dm_build_1523 += dm_build_1524
    67  		dm_build_1520.dm_build_1502 -= dm_build_1524
    68  	}
    69  	return dm_build_1523
    70  }
    71  
    72  func (dm_build_1526 *Dm_build_1499) Dm_build_1525(dm_build_1527 []byte, dm_build_1528 int, dm_build_1529 int) {
    73  	if dm_build_1529 == 0 {
    74  		return
    75  	}
    76  	var dm_build_1530 = dm_build_1557(dm_build_1527, dm_build_1528, dm_build_1529)
    77  	if dm_build_1526.dm_build_1501 == nil {
    78  		dm_build_1526.dm_build_1501 = dm_build_1530
    79  	} else {
    80  		dm_build_1526.dm_build_1500.PushBack(dm_build_1530)
    81  	}
    82  	dm_build_1526.dm_build_1502 += dm_build_1529
    83  }
    84  
    85  func (dm_build_1532 *Dm_build_1499) dm_build_1531(dm_build_1533 int) byte {
    86  	var dm_build_1534 = dm_build_1533
    87  	var dm_build_1535 = dm_build_1532.dm_build_1501
    88  	for dm_build_1534 > 0 && dm_build_1535 != nil {
    89  		if dm_build_1535.dm_build_1556 == 0 {
    90  			continue
    91  		}
    92  		if dm_build_1534 > dm_build_1535.dm_build_1556-1 {
    93  			dm_build_1534 -= dm_build_1535.dm_build_1556
    94  			dm_build_1535 = dm_build_1532.dm_build_1500.Front().Value.(*dm_build_1553)
    95  		} else {
    96  			break
    97  		}
    98  	}
    99  	return dm_build_1535.dm_build_1574(dm_build_1534)
   100  }
   101  func (dm_build_1537 *Dm_build_1499) Dm_build_1536(dm_build_1538 *Dm_build_1499) {
   102  	if dm_build_1538.dm_build_1502 == 0 {
   103  		return
   104  	}
   105  	var dm_build_1539 = dm_build_1538.dm_build_1501
   106  	for dm_build_1539 != nil {
   107  		dm_build_1537.dm_build_1540(dm_build_1539)
   108  		dm_build_1538.dm_build_1543()
   109  		dm_build_1539 = dm_build_1538.dm_build_1501
   110  	}
   111  	dm_build_1538.dm_build_1502 = 0
   112  }
   113  func (dm_build_1541 *Dm_build_1499) dm_build_1540(dm_build_1542 *dm_build_1553) {
   114  	if dm_build_1542.dm_build_1556 == 0 {
   115  		return
   116  	}
   117  	if dm_build_1541.dm_build_1501 == nil {
   118  		dm_build_1541.dm_build_1501 = dm_build_1542
   119  	} else {
   120  		dm_build_1541.dm_build_1500.PushBack(dm_build_1542)
   121  	}
   122  	dm_build_1541.dm_build_1502 += dm_build_1542.dm_build_1556
   123  }
   124  
   125  func (dm_build_1544 *Dm_build_1499) dm_build_1543() {
   126  	var dm_build_1545 = dm_build_1544.dm_build_1500.Front()
   127  	if dm_build_1545 == nil {
   128  		dm_build_1544.dm_build_1501 = nil
   129  	} else {
   130  		dm_build_1544.dm_build_1501 = dm_build_1545.Value.(*dm_build_1553)
   131  		dm_build_1544.dm_build_1500.Remove(dm_build_1545)
   132  	}
   133  }
   134  
   135  func (dm_build_1547 *Dm_build_1499) Dm_build_1546() []byte {
   136  	var dm_build_1548 = make([]byte, dm_build_1547.dm_build_1502)
   137  	var dm_build_1549 = dm_build_1547.dm_build_1501
   138  	var dm_build_1550 = 0
   139  	var dm_build_1551 = len(dm_build_1548)
   140  	var dm_build_1552 = 0
   141  	for dm_build_1549 != nil {
   142  		if dm_build_1549.dm_build_1556 > 0 {
   143  			if dm_build_1551 > dm_build_1549.dm_build_1556 {
   144  				dm_build_1552 = dm_build_1549.dm_build_1556
   145  			} else {
   146  				dm_build_1552 = dm_build_1551
   147  			}
   148  			copy(dm_build_1548[dm_build_1550:dm_build_1550+dm_build_1552], dm_build_1549.dm_build_1554[dm_build_1549.dm_build_1555:dm_build_1549.dm_build_1555+dm_build_1552])
   149  			dm_build_1550 += dm_build_1552
   150  			dm_build_1551 -= dm_build_1552
   151  		}
   152  		if dm_build_1547.dm_build_1500.Front() == nil {
   153  			dm_build_1549 = nil
   154  		} else {
   155  			dm_build_1549 = dm_build_1547.dm_build_1500.Front().Value.(*dm_build_1553)
   156  		}
   157  	}
   158  	return dm_build_1548
   159  }
   160  
   161  type dm_build_1553 struct {
   162  	dm_build_1554 []byte
   163  	dm_build_1555 int
   164  	dm_build_1556 int
   165  }
   166  
   167  func dm_build_1557(dm_build_1558 []byte, dm_build_1559 int, dm_build_1560 int) *dm_build_1553 {
   168  	return &dm_build_1553{
   169  		dm_build_1558,
   170  		dm_build_1559,
   171  		dm_build_1560,
   172  	}
   173  }
   174  
   175  func (dm_build_1562 *dm_build_1553) dm_build_1561(dm_build_1563 *Dm_build_0, dm_build_1564 int) int {
   176  	if dm_build_1562.dm_build_1556 <= dm_build_1564 {
   177  		dm_build_1564 = dm_build_1562.dm_build_1556
   178  	}
   179  	dm_build_1563.Dm_build_79(dm_build_1562.dm_build_1554[dm_build_1562.dm_build_1555 : dm_build_1562.dm_build_1555+dm_build_1564])
   180  	dm_build_1562.dm_build_1555 += dm_build_1564
   181  	dm_build_1562.dm_build_1556 -= dm_build_1564
   182  	return dm_build_1564
   183  }
   184  
   185  func (dm_build_1566 *dm_build_1553) dm_build_1565(dm_build_1567 []byte, dm_build_1568 int, dm_build_1569 int) int {
   186  	if dm_build_1566.dm_build_1556 <= dm_build_1569 {
   187  		dm_build_1569 = dm_build_1566.dm_build_1556
   188  	}
   189  	copy(dm_build_1567[dm_build_1568:dm_build_1568+dm_build_1569], dm_build_1566.dm_build_1554[dm_build_1566.dm_build_1555:dm_build_1566.dm_build_1555+dm_build_1569])
   190  	dm_build_1566.dm_build_1555 += dm_build_1569
   191  	dm_build_1566.dm_build_1556 -= dm_build_1569
   192  	return dm_build_1569
   193  }
   194  
   195  func (dm_build_1571 *dm_build_1553) dm_build_1570(dm_build_1572 io.Writer, dm_build_1573 int) int {
   196  	if dm_build_1571.dm_build_1556 <= dm_build_1573 {
   197  		dm_build_1573 = dm_build_1571.dm_build_1556
   198  	}
   199  	dm_build_1572.Write(dm_build_1571.dm_build_1554[dm_build_1571.dm_build_1555 : dm_build_1571.dm_build_1555+dm_build_1573])
   200  	dm_build_1571.dm_build_1555 += dm_build_1573
   201  	dm_build_1571.dm_build_1556 -= dm_build_1573
   202  	return dm_build_1573
   203  }
   204  func (dm_build_1575 *dm_build_1553) dm_build_1574(dm_build_1576 int) byte {
   205  	return dm_build_1575.dm_build_1554[dm_build_1575.dm_build_1555+dm_build_1576]
   206  }