queue1.plantuml 523 B

1234567891011121314151617181920212223242526
  1. @startuml
  2. hide empty description
  3. state Dequeue {
  4. left to right direction
  5. [*] --> wait_d
  6. wait_d --> dequeueing: ?dequeue
  7. dequeueing --> wait_d: [cap > 0] / pop item
  8. }
  9. state DequeueTimer {
  10. left to right direction
  11. [*] --> timer
  12. timer --> raise: after dd s [cap > 0]
  13. raise --> timer: always / !dequeue
  14. }
  15. state Enqueue {
  16. left to right direction
  17. [*] --> wait_e
  18. wait_e --> enqueueing: ?enqueue
  19. enqueueing --> wait_e: [cap < K] / append item
  20. enqueueing --> enqueueing: [cap >= K] / !overflow
  21. }
  22. @enduml