Expand messaging, routing, measurement, storage, oracle, and time modules
Add subscription lease release-all and clear, intent router bulk unregister, bucket rate limit token probe, drive GC stale clear, oracle feed clear and latest aggregate, and temporal index remove/clear. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -375,6 +375,36 @@ class HyperP2PTemporalIndex extends EventEmitter {
|
||||
return [...buckets]
|
||||
}
|
||||
|
||||
eventIds () {
|
||||
return [...this.events.keys()]
|
||||
}
|
||||
|
||||
async removeEvent (id) {
|
||||
const ev = this.events.get(id)
|
||||
if (!ev) return false
|
||||
const buckets = this._getAllBuckets(ev.timestamp)
|
||||
for (const b of buckets) {
|
||||
const set = this.timeIndex.get(b)
|
||||
if (set) {
|
||||
set.delete(id)
|
||||
if (set.size === 0) this.timeIndex.delete(b)
|
||||
}
|
||||
}
|
||||
this.events.delete(id)
|
||||
this.expiryQueue.delete(id)
|
||||
this.emit('remove', { id })
|
||||
return true
|
||||
}
|
||||
|
||||
async clearAll () {
|
||||
const ids = this.eventIds()
|
||||
let n = 0
|
||||
for (const id of ids) {
|
||||
if (await this.removeEvent(id)) n++
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
getStats () {
|
||||
return {
|
||||
events: this.events.size,
|
||||
|
||||
Reference in New Issue
Block a user