Skip to content

Commit

Permalink
add debug printer
Browse files Browse the repository at this point in the history
  • Loading branch information
larscom committed Aug 29, 2024
1 parent c3f44b8 commit 7e84577
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 8 deletions.
2 changes: 1 addition & 1 deletion example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func main() {
log.Printf("Subscribing to %d markets\n", len(tradingMarkets))
<-time.After(time.Second * 2)

listener := bitvavo.NewTickerListener()
listener := bitvavo.NewTickerListener(bitvavo.NewDebugPrinter())
defer func() {
_ = listener.Close()
}()
Expand Down
2 changes: 1 addition & 1 deletion internal/socket/socket.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func NewSocket(
}

socket := &Socket{
buffer: make(chan []byte, 2048),
buffer: make(chan []byte, 1024),
conn: conn,
url: url,
handleFunc: handleFunc,
Expand Down
26 changes: 26 additions & 0 deletions pkg/bitvavo/debug_printer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package bitvavo

import (
"fmt"
"log"
)

type DebugPrinter interface {
Println(value ...any)
}

type DefaultDebugPrinter struct{}

func NewDebugPrinter() *DefaultDebugPrinter {
return &DefaultDebugPrinter{}
}

func (l *DefaultDebugPrinter) Println(value ...any) {
log.Println(value...)
}

func debug(p DebugPrinter, value ...any) {
if p != nil {
p.Println(fmt.Sprintf("[BITVAVO-GO] %v", value...))
}
}
1 change: 1 addition & 0 deletions pkg/bitvavo/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ type listener[T any] struct {
channel Channel
subscriptions []Subscription
closefn context.CancelFunc
printer DebugPrinter
}

type authListener[T any] struct {
Expand Down
18 changes: 12 additions & 6 deletions pkg/bitvavo/ticker_listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type TickerEvent ListenerEvent[Ticker]

type TickerListener listener[TickerEvent]

func NewTickerListener() Listener[TickerEvent] {
func NewTickerListener(printer ...DebugPrinter) Listener[TickerEvent] {
chn := make(chan TickerEvent)
rchn := make(chan struct{})

Expand All @@ -20,6 +20,10 @@ func NewTickerListener() Listener[TickerEvent] {
channel: ChannelTicker,
}

if len(printer) > 0 {
l.printer = printer[0]
}

ctx, cancel := context.WithCancel(context.Background())
ws, err := NewWebSocket(ctx, l.onMessage, func() {
rchn <- struct{}{}
Expand All @@ -36,6 +40,8 @@ func NewTickerListener() Listener[TickerEvent] {
}

func (l *TickerListener) Subscribe(markets []string) (<-chan TickerEvent, error) {
debug(l.printer, "subscribing to", markets)

if err := l.ws.Subscribe([]Subscription{NewSubscription(l.channel, markets)}); err != nil {
return nil, err
}
Expand Down Expand Up @@ -90,11 +96,11 @@ func (l *TickerListener) onMessage(data WebSocketEventData, err error) {
}
}

func (t *TickerListener) resubscriber() {
t.once.Do(func() {
for range t.rchn {
if err := t.ws.Subscribe(t.subscriptions); err != nil {
t.chn <- TickerEvent{Error: err}
func (l *TickerListener) resubscriber() {
l.once.Do(func() {
for range l.rchn {
if err := l.ws.Subscribe(l.subscriptions); err != nil {
l.chn <- TickerEvent{Error: err}
}
}
})
Expand Down

0 comments on commit 7e84577

Please sign in to comment.