StartRecordingToSink starts sending events received from the specified eventBroadcaster to the given sink. The return value can be ignored or used to stop recording, if desired. TODO: make me an object with parameterizable queue length and retry interval
(sink EventSink)
| 162 | // The return value can be ignored or used to stop recording, if desired. |
| 163 | // TODO: make me an object with parameterizable queue length and retry interval |
| 164 | func (eventBroadcaster *eventBroadcasterImpl) StartRecordingToSink(sink EventSink) watch.Interface { |
| 165 | // The default math/rand package functions aren't thread safe, so create a |
| 166 | // new Rand object for each StartRecording call. |
| 167 | randGen := rand.New(rand.NewSource(time.Now().UnixNano())) |
| 168 | eventCorrelator := NewEventCorrelatorWithOptions(eventBroadcaster.options) |
| 169 | return eventBroadcaster.StartEventWatcher( |
| 170 | func(event *v1.Event) { |
| 171 | recordToSink(sink, event, eventCorrelator, randGen, eventBroadcaster.sleepDuration) |
| 172 | }) |
| 173 | } |
| 174 | |
| 175 | func recordToSink(sink EventSink, event *v1.Event, eventCorrelator *EventCorrelator, randGen *rand.Rand, sleepDuration time.Duration) { |
| 176 | // Make a copy before modification, because there could be multiple listeners. |
nothing calls this directly
no test coverage detected