* doc: merge the engine and the cli readmes Part of https://github.com/ooni/probe/issues/1335 * refactor: we don't wanna export pkg/oonimkall/tasks See https://github.com/ooni/probe/issues/1335
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package tasks
 | |
| 
 | |
| // EventEmitter emits event on a channel
 | |
| type EventEmitter struct {
 | |
| 	disabled map[string]bool
 | |
| 	out      chan<- *Event
 | |
| }
 | |
| 
 | |
| // NewEventEmitter creates a new Emitter
 | |
| func NewEventEmitter(disabledEvents []string, out chan<- *Event) *EventEmitter {
 | |
| 	ee := &EventEmitter{out: out}
 | |
| 	ee.disabled = make(map[string]bool)
 | |
| 	for _, eventname := range disabledEvents {
 | |
| 		ee.disabled[eventname] = true
 | |
| 	}
 | |
| 	return ee
 | |
| }
 | |
| 
 | |
| // EmitFailureStartup emits the failureStartup event
 | |
| func (ee *EventEmitter) EmitFailureStartup(failure string) {
 | |
| 	ee.EmitFailureGeneric(failureStartup, failure)
 | |
| }
 | |
| 
 | |
| // EmitFailureGeneric emits a failure event
 | |
| func (ee *EventEmitter) EmitFailureGeneric(name, failure string) {
 | |
| 	ee.Emit(name, EventFailure{Failure: failure})
 | |
| }
 | |
| 
 | |
| // EmitStatusProgress emits the status.Progress event
 | |
| func (ee *EventEmitter) EmitStatusProgress(percentage float64, message string) {
 | |
| 	ee.Emit(statusProgress, EventStatusProgress{Message: message, Percentage: percentage})
 | |
| }
 | |
| 
 | |
| // Emit emits the specified event
 | |
| func (ee *EventEmitter) Emit(key string, value interface{}) {
 | |
| 	if ee.disabled[key] == true {
 | |
| 		return
 | |
| 	}
 | |
| 	ee.out <- &Event{Key: key, Value: value}
 | |
| }
 |