custom_name.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package v2raygrpc
  2. import (
  3. "context"
  4. "google.golang.org/grpc"
  5. )
  6. type GunService interface {
  7. Context() context.Context
  8. Send(*Hunk) error
  9. Recv() (*Hunk, error)
  10. }
  11. func ServerDesc(name string) grpc.ServiceDesc {
  12. return grpc.ServiceDesc{
  13. ServiceName: name,
  14. HandlerType: (*GunServiceServer)(nil),
  15. Methods: []grpc.MethodDesc{},
  16. Streams: []grpc.StreamDesc{
  17. {
  18. StreamName: "Tun",
  19. Handler: _GunService_Tun_Handler,
  20. ServerStreams: true,
  21. ClientStreams: true,
  22. },
  23. },
  24. Metadata: "gun.proto",
  25. }
  26. }
  27. func (c *gunServiceClient) TunCustomName(ctx context.Context, name string, opts ...grpc.CallOption) (GunService_TunClient, error) {
  28. stream, err := c.cc.NewStream(ctx, &ServerDesc(name).Streams[0], "/"+name+"/Tun", opts...)
  29. if err != nil {
  30. return nil, err
  31. }
  32. x := &grpc.GenericClientStream[Hunk, Hunk]{ClientStream: stream}
  33. return x, nil
  34. }
  35. var _ GunServiceCustomNameClient = (*gunServiceClient)(nil)
  36. type GunServiceCustomNameClient interface {
  37. TunCustomName(ctx context.Context, name string, opts ...grpc.CallOption) (GunService_TunClient, error)
  38. Tun(ctx context.Context, opts ...grpc.CallOption) (GunService_TunClient, error)
  39. }
  40. func RegisterGunServiceCustomNameServer(s *grpc.Server, srv GunServiceServer, name string) {
  41. desc := ServerDesc(name)
  42. s.RegisterService(&desc, srv)
  43. }