51 lines
		
	
	
		
			632 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			632 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package kgo
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"sync"
 | |
| 
 | |
| 	"go.unistack.org/micro/v3/broker"
 | |
| )
 | |
| 
 | |
| type event struct {
 | |
| 	msg *broker.Message
 | |
| 	err error
 | |
| 	ctx context.Context
 | |
| 
 | |
| 	topic string
 | |
| 
 | |
| 	sync.RWMutex
 | |
| 	ack bool
 | |
| }
 | |
| 
 | |
| func (p *event) Context() context.Context {
 | |
| 	return p.ctx
 | |
| }
 | |
| 
 | |
| func (p *event) Topic() string {
 | |
| 	return p.topic
 | |
| }
 | |
| 
 | |
| func (p *event) Message() *broker.Message {
 | |
| 	return p.msg
 | |
| }
 | |
| 
 | |
| func (p *event) Ack() error {
 | |
| 	p.ack = true
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func (p *event) Error() error {
 | |
| 	return p.err
 | |
| }
 | |
| 
 | |
| func (p *event) SetError(err error) {
 | |
| 	p.err = err
 | |
| }
 | |
| 
 | |
| var eventPool = sync.Pool{
 | |
| 	New: func() interface{} {
 | |
| 		return &event{msg: &broker.Message{}}
 | |
| 	},
 | |
| }
 |