vray.go 676 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package core
  2. type VRay struct {
  3. Input chan []byte
  4. Output chan []byte
  5. }
  6. func NewVRay() *VRay {
  7. ray := new(VRay)
  8. ray.Input = make(chan []byte, 128)
  9. ray.Output = make(chan []byte, 128)
  10. return ray
  11. }
  12. type OutboundVRay interface {
  13. OutboundInput() <-chan []byte
  14. OutboundOutput() chan<- []byte
  15. }
  16. type InboundVRay interface {
  17. InboundInput() chan<- []byte
  18. OutboundOutput() <-chan []byte
  19. }
  20. func (ray *VRay) OutboundInput() <-chan []byte {
  21. return ray.Input
  22. }
  23. func (ray *VRay) OutboundOutput() chan<- []byte {
  24. return ray.Output
  25. }
  26. func (ray *VRay) InboundInput() chan<- []byte {
  27. return ray.Input
  28. }
  29. func (ray *VRay) InboundOutput() <-chan []byte {
  30. return ray.Output
  31. }