queue_msg.go 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package queue
  2. type QueueMessage interface {
  3. GetKey() string
  4. GetData() []byte
  5. GetHeaders() QueueMsgHeaders
  6. }
  7. type QueueMsgHeaders interface {
  8. Put(key string, value []byte)
  9. Get(key string) []byte
  10. GetData() map[string][]byte
  11. }
  12. type DefaultQueueMsg struct {
  13. Key string
  14. Data []byte
  15. Headers *DefaultQueueMsgHeader
  16. }
  17. func (d *DefaultQueueMsg) GetKey() string {
  18. return d.Key
  19. }
  20. func (d *DefaultQueueMsg) GetData() []byte {
  21. return d.Data
  22. }
  23. func (d *DefaultQueueMsg) GetHeaders() QueueMsgHeaders {
  24. return d.Headers
  25. }
  26. type DefaultQueueMsgHeader struct {
  27. data map[string][]byte
  28. }
  29. func (d *DefaultQueueMsgHeader) Put(key string, value []byte) {
  30. d.data[key] = value
  31. }
  32. func (d *DefaultQueueMsgHeader) Get(key string) []byte {
  33. if v, ok := d.data[key]; !ok {
  34. return nil
  35. } else {
  36. return v
  37. }
  38. }
  39. func (d *DefaultQueueMsgHeader) GetData() map[string][]byte {
  40. return d.data
  41. }