podman

Форк
0
/
memory.go 
49 строк · 999.0 Байт
1
package events
2

3
import (
4
	"context"
5
)
6

7
// EventMemory is the structure for event writing to a channel. It contains the eventer
8
// options and the event itself.  Methods for reading and writing are also defined from it.
9
type EventMemory struct {
10
	options  EventerOptions
11
	elements chan *Event
12
}
13

14
// Write event to memory queue
15
func (e EventMemory) Write(event Event) (err error) {
16
	e.elements <- &event
17
	return
18
}
19

20
// Read event(s) from memory queue
21
func (e EventMemory) Read(ctx context.Context, options ReadOptions) (err error) {
22
	select {
23
	case <-ctx.Done():
24
		return
25
	default:
26
	}
27

28
	select {
29
	case event := <-e.elements:
30
		options.EventChannel <- event
31
	default:
32
	}
33
	return nil
34
}
35

36
// String returns eventer type
37
func (e EventMemory) String() string {
38
	return e.options.EventerType
39
}
40

41
// NewMemoryEventer returns configured MemoryEventer
42
func NewMemoryEventer() Eventer {
43
	return EventMemory{
44
		options: EventerOptions{
45
			EventerType: Memory.String(),
46
		},
47
		elements: make(chan *Event, 100),
48
	}
49
}
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.