Skip to content

Commit

Permalink
update generated protocol for grpc transport
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaokangwang committed Sep 8, 2024
1 parent d2ceb9e commit a368763
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 60 deletions.
4 changes: 2 additions & 2 deletions transport/internet/grpc/config.pb.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ func file_transport_internet_grpc_config_proto_rawDescGZIP() []byte {
}

var file_transport_internet_grpc_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_transport_internet_grpc_config_proto_goTypes = []interface{}{
var file_transport_internet_grpc_config_proto_goTypes = []any{
(*Config)(nil), // 0: v2ray.core.transport.internet.grpc.encoding.Config
}
var file_transport_internet_grpc_config_proto_depIdxs = []int32{
Expand All @@ -128,7 +128,7 @@ func file_transport_internet_grpc_config_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_transport_internet_grpc_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_transport_internet_grpc_config_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*Config); i {
case 0:
return &v.state
Expand Down
2 changes: 1 addition & 1 deletion transport/internet/grpc/encoding/customSeviceName.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func (c *gunServiceClient) TunCustomName(ctx context.Context, name string, opts
if err != nil {
return nil, err
}
x := &gunServiceTunClient{stream}
x := &grpc.GenericClientStream[Hunk, Hunk]{ClientStream: stream}
return x, nil
}

Expand Down
4 changes: 2 additions & 2 deletions transport/internet/grpc/encoding/stream.pb.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func file_transport_internet_grpc_encoding_stream_proto_rawDescGZIP() []byte {
}

var file_transport_internet_grpc_encoding_stream_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_transport_internet_grpc_encoding_stream_proto_goTypes = []interface{}{
var file_transport_internet_grpc_encoding_stream_proto_goTypes = []any{
(*Hunk)(nil), // 0: v2ray.core.transport.internet.grpc.encoding.Hunk
}
var file_transport_internet_grpc_encoding_stream_proto_depIdxs = []int32{
Expand All @@ -125,7 +125,7 @@ func file_transport_internet_grpc_encoding_stream_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_transport_internet_grpc_encoding_stream_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_transport_internet_grpc_encoding_stream_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*Hunk); i {
case 0:
return &v.state
Expand Down
84 changes: 29 additions & 55 deletions transport/internet/grpc/encoding/stream_grpc.pb.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import (

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
GunService_Tun_FullMethodName = "/v2ray.core.transport.internet.grpc.encoding.GunService/Tun"
Expand All @@ -20,7 +20,7 @@ const (
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type GunServiceClient interface {
Tun(ctx context.Context, opts ...grpc.CallOption) (GunService_TunClient, error)
Tun(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[Hunk, Hunk], error)
}

type gunServiceClient struct {
Expand All @@ -31,53 +31,39 @@ func NewGunServiceClient(cc grpc.ClientConnInterface) GunServiceClient {
return &gunServiceClient{cc}
}

func (c *gunServiceClient) Tun(ctx context.Context, opts ...grpc.CallOption) (GunService_TunClient, error) {
stream, err := c.cc.NewStream(ctx, &GunService_ServiceDesc.Streams[0], GunService_Tun_FullMethodName, opts...)
func (c *gunServiceClient) Tun(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[Hunk, Hunk], error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
stream, err := c.cc.NewStream(ctx, &GunService_ServiceDesc.Streams[0], GunService_Tun_FullMethodName, cOpts...)
if err != nil {
return nil, err
}
x := &gunServiceTunClient{stream}
x := &grpc.GenericClientStream[Hunk, Hunk]{ClientStream: stream}
return x, nil
}

type GunService_TunClient interface {
Send(*Hunk) error
Recv() (*Hunk, error)
grpc.ClientStream
}

type gunServiceTunClient struct {
grpc.ClientStream
}

func (x *gunServiceTunClient) Send(m *Hunk) error {
return x.ClientStream.SendMsg(m)
}

func (x *gunServiceTunClient) Recv() (*Hunk, error) {
m := new(Hunk)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type GunService_TunClient = grpc.BidiStreamingClient[Hunk, Hunk]

// GunServiceServer is the server API for GunService service.
// All implementations must embed UnimplementedGunServiceServer
// for forward compatibility
// for forward compatibility.
type GunServiceServer interface {
Tun(GunService_TunServer) error
Tun(grpc.BidiStreamingServer[Hunk, Hunk]) error
mustEmbedUnimplementedGunServiceServer()
}

// UnimplementedGunServiceServer must be embedded to have forward compatible implementations.
type UnimplementedGunServiceServer struct {
}
// UnimplementedGunServiceServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedGunServiceServer struct{}

func (UnimplementedGunServiceServer) Tun(GunService_TunServer) error {
func (UnimplementedGunServiceServer) Tun(grpc.BidiStreamingServer[Hunk, Hunk]) error {
return status.Errorf(codes.Unimplemented, "method Tun not implemented")
}
func (UnimplementedGunServiceServer) mustEmbedUnimplementedGunServiceServer() {}
func (UnimplementedGunServiceServer) testEmbeddedByValue() {}

// UnsafeGunServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to GunServiceServer will
Expand All @@ -87,34 +73,22 @@ type UnsafeGunServiceServer interface {
}

func RegisterGunServiceServer(s grpc.ServiceRegistrar, srv GunServiceServer) {
// If the following call pancis, it indicates UnimplementedGunServiceServer was
// embedded by pointer and is nil. This will cause panics if an
// unimplemented method is ever invoked, so we test this at initialization
// time to prevent it from happening at runtime later due to I/O.
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
t.testEmbeddedByValue()
}
s.RegisterService(&GunService_ServiceDesc, srv)
}

func _GunService_Tun_Handler(srv interface{}, stream grpc.ServerStream) error {
return srv.(GunServiceServer).Tun(&gunServiceTunServer{stream})
}

type GunService_TunServer interface {
Send(*Hunk) error
Recv() (*Hunk, error)
grpc.ServerStream
}

type gunServiceTunServer struct {
grpc.ServerStream
return srv.(GunServiceServer).Tun(&grpc.GenericServerStream[Hunk, Hunk]{ServerStream: stream})
}

func (x *gunServiceTunServer) Send(m *Hunk) error {
return x.ServerStream.SendMsg(m)
}

func (x *gunServiceTunServer) Recv() (*Hunk, error) {
m := new(Hunk)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type GunService_TunServer = grpc.BidiStreamingServer[Hunk, Hunk]

// GunService_ServiceDesc is the grpc.ServiceDesc for GunService service.
// It's only intended for direct use with grpc.RegisterService,
Expand Down

0 comments on commit a368763

Please sign in to comment.