GetTimelineRange 获取指定范围的时间线(基于索引)
(start, limit int)
| 496 | |
| 497 | // GetTimelineRange 获取指定范围的时间线(基于索引) |
| 498 | func (eb *EventBus) GetTimelineRange(start, limit int) []types.AgentEventEnvelope { |
| 499 | eb.mu.RLock() |
| 500 | defer eb.mu.RUnlock() |
| 501 | |
| 502 | if start < 0 { |
| 503 | start = 0 |
| 504 | } |
| 505 | if start >= len(eb.timeline) { |
| 506 | return []types.AgentEventEnvelope{} |
| 507 | } |
| 508 | |
| 509 | end := start + limit |
| 510 | if limit <= 0 || end > len(eb.timeline) { |
| 511 | end = len(eb.timeline) |
| 512 | } |
| 513 | |
| 514 | result := make([]types.AgentEventEnvelope, end-start) |
| 515 | copy(result, eb.timeline[start:end]) |
| 516 | return result |
| 517 | } |
| 518 | |
| 519 | // GetTimelineSince 获取指定 cursor 之后的所有事件 |
| 520 | func (eb *EventBus) GetTimelineSince(cursor int64) []types.AgentEventEnvelope { |