e3dce319b783136eaf2dd5dfb0d82bc9e2d22d26619dbadd4a2cf5077bc1e9fda07a42b2b919637e07b1ab6ca93b2e1947f7f9e5e4b0111e82f00b3bc3b364 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * MessageIdProvider
  3. */
  4. declare interface IMessageIdProvider {
  5. /**
  6. * Allocate the first vacant messageId. The messageId become occupied status.
  7. * @return {Number} - The first vacant messageId. If all messageIds are occupied, return null.
  8. */
  9. allocate (): Number | null
  10. /**
  11. * Get the last allocated messageId.
  12. * @return {Number} - messageId.
  13. */
  14. getLastAllocated (): Number | null
  15. /**
  16. * Register the messageId. The messageId become occupied status.
  17. * If the messageId has already been occupied, then return false.
  18. * @param {Number} num - The messageId to request use.
  19. * @return {Boolean} - If `num` was not occupied, then return true, otherwise return false.
  20. */
  21. register (num: Number): Boolean
  22. /**
  23. * Deallocate the messageId. The messageId become vacant status.
  24. * @param {Number} num - The messageId to deallocate. The messageId must be occupied status.
  25. * In other words, the messageId must be allocated by allocate() or
  26. * occupied by register().
  27. */
  28. deallocate (num: Number): void
  29. /**
  30. * Clear all occupied messageIds.
  31. * The all messageIds are set to vacant status.
  32. */
  33. clear (): void
  34. }
  35. export { IMessageIdProvider }