sender.go 793 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package sender
  2. import (
  3. "context"
  4. "v2ray.com/core/app"
  5. "v2ray.com/core/common"
  6. "v2ray.com/core/common/net"
  7. "v2ray.com/core/transport/internet"
  8. )
  9. type Sender interface {
  10. SendTo(net.Destination) (internet.Connection, error)
  11. }
  12. type SenderManager struct {
  13. }
  14. func New(ctx context.Context, config *Config) (*SenderManager, error) {
  15. return &SenderManager{}, nil
  16. }
  17. func (SenderManager) Interface() interface{} {
  18. return (*SenderManager)(nil)
  19. }
  20. func FromSpace(space app.Space) *SenderManager {
  21. app := space.GetApplication((*SenderManager)(nil))
  22. if app == nil {
  23. return nil
  24. }
  25. return app.(*SenderManager)
  26. }
  27. func init() {
  28. common.Must(common.RegisterConfig((*Config)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
  29. return New(ctx, config.(*Config))
  30. }))
  31. }