diff options
Diffstat (limited to 'novalet/lib/internal_transporter.go')
| -rw-r--r-- | novalet/lib/internal_transporter.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/novalet/lib/internal_transporter.go b/novalet/lib/internal_transporter.go new file mode 100644 index 0000000..dc8a169 --- /dev/null +++ b/novalet/lib/internal_transporter.go @@ -0,0 +1,37 @@ +package lib + +import ( + "github.com/discordnova/nova/common/gateway" + "github.com/rs/zerolog/log" +) + +type InternalTransporter struct { + pullChannel chan []byte + pushChannel chan gateway.PushData +} + +// NewRabbitMqTransporter creates a rabbitmq transporter using a given url +func NewInternalTransporter(url string) (gateway.Transporter, error) { + log.Info().Msg("using the memory transporter") + + pullChannel, pushChannel := make(chan []byte), make(chan gateway.PushData) + + go func() { + for { + // TODO(matthieu): Implement push channel for the internal transporter. + <-pushChannel + } + }() + + return &InternalTransporter{ + pullChannel: pullChannel, + pushChannel: pushChannel, + }, nil +} + +func (t InternalTransporter) PushChannel() chan gateway.PushData { + return t.pushChannel +} +func (t InternalTransporter) PullChannel() chan []byte { + return t.pullChannel +} |
