control_queue.go 598 B

1234567891011121314151617181920212223242526272829303132
  1. // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
  2. // SPDX-License-Identifier: MIT
  3. package sctp
  4. // control queue
  5. type controlQueue struct {
  6. queue []*packet
  7. }
  8. func newControlQueue() *controlQueue {
  9. return &controlQueue{queue: []*packet{}}
  10. }
  11. func (q *controlQueue) push(c *packet) {
  12. q.queue = append(q.queue, c)
  13. }
  14. func (q *controlQueue) pushAll(packets []*packet) {
  15. q.queue = append(q.queue, packets...)
  16. }
  17. func (q *controlQueue) popAll() []*packet {
  18. packets := q.queue
  19. q.queue = []*packet{}
  20. return packets
  21. }
  22. func (q *controlQueue) size() int {
  23. return len(q.queue)
  24. }