MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / sortRangeItems

Method sortRangeItems

internal/iplibrary/ip_list.go:245–264  ·  view source on GitHub ↗

对列表进行排序

(force bool)

Source from the content-addressed store, hash-verified

243
244// 对列表进行排序
245func (this *IPList) sortRangeItems(force bool) {
246 if len(this.bufferItemsMap) > 0 {
247 for _, item := range this.bufferItemsMap {
248 this.addItem(item, false, false)
249 }
250 this.bufferItemsMap = map[uint64]*IPItem{}
251 force = true
252 }
253
254 if force {
255 sort.Slice(this.sortedRangeItems, func(i, j int) bool {
256 var item1 = this.sortedRangeItems[i]
257 var item2 = this.sortedRangeItems[j]
258 if iputils.CompareBytes(item1.IPFrom, item2.IPFrom) == 0 {
259 return iputils.CompareBytes(item1.IPTo, item2.IPTo) < 0
260 }
261 return iputils.CompareBytes(item1.IPFrom, item2.IPFrom) < 0
262 })
263 }
264}
265
266// 不加锁的情况下查找Item
267func (this *IPList) lookupIP(ipBytes []byte) *IPItem {

Callers 2

SortMethod · 0.95
addItemMethod · 0.95

Calls 1

addItemMethod · 0.95

Tested by

no test coverage detected