ray.go 794 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package core
  2. const (
  3. bufferSize = 16
  4. )
  5. // Ray is an internal tranport channel bewteen inbound and outbound connection.
  6. type Ray struct {
  7. Input chan []byte
  8. Output chan []byte
  9. }
  10. func NewRay() *Ray {
  11. return &Ray{
  12. Input: make(chan []byte, bufferSize),
  13. Output: make(chan []byte, bufferSize),
  14. }
  15. }
  16. type OutboundRay interface {
  17. OutboundInput() <-chan []byte
  18. OutboundOutput() chan<- []byte
  19. }
  20. type InboundRay interface {
  21. InboundInput() chan<- []byte
  22. InboundOutput() <-chan []byte
  23. }
  24. func (ray *Ray) OutboundInput() <-chan []byte {
  25. return ray.Input
  26. }
  27. func (ray *Ray) OutboundOutput() chan<- []byte {
  28. return ray.Output
  29. }
  30. func (ray *Ray) InboundInput() chan<- []byte {
  31. return ray.Input
  32. }
  33. func (ray *Ray) InboundOutput() <-chan []byte {
  34. return ray.Output
  35. }
  36. type UDPRay struct {
  37. }