* 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}
 | 
						|
}
 |