Start adapting new streamforward to Android

This commit is contained in:
Dmitrii Okunev
2024-10-15 01:57:03 +01:00
parent 765da7c365
commit 197206c17a
77 changed files with 1448 additions and 1373 deletions

View File

@@ -0,0 +1,5 @@
all: go
go:
protoc --go_out=. --go-grpc_out=. recoder.proto

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,421 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.2.0
// - protoc v3.21.12
// source: recoder.proto
package recoder_grpc
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// 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
// RecoderClient is the client API for Recoder service.
//
// 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 RecoderClient interface {
SetLoggingLevel(ctx context.Context, in *SetLoggingLevelRequest, opts ...grpc.CallOption) (*SetLoggingLevelReply, error)
NewInput(ctx context.Context, in *NewInputRequest, opts ...grpc.CallOption) (*NewInputReply, error)
NewOutput(ctx context.Context, in *NewOutputRequest, opts ...grpc.CallOption) (*NewOutputReply, error)
NewRecoder(ctx context.Context, in *NewRecoderRequest, opts ...grpc.CallOption) (*NewRecoderReply, error)
CloseInput(ctx context.Context, in *CloseInputRequest, opts ...grpc.CallOption) (*CloseInputReply, error)
CloseOutput(ctx context.Context, in *CloseOutputRequest, opts ...grpc.CallOption) (*CloseOutputReply, error)
GetRecoderStats(ctx context.Context, in *GetRecoderStatsRequest, opts ...grpc.CallOption) (*GetRecoderStatsReply, error)
StartRecoding(ctx context.Context, in *StartRecodingRequest, opts ...grpc.CallOption) (*StartRecodingReply, error)
RecodingEndedChan(ctx context.Context, in *RecodingEndedChanRequest, opts ...grpc.CallOption) (Recoder_RecodingEndedChanClient, error)
}
type recoderClient struct {
cc grpc.ClientConnInterface
}
func NewRecoderClient(cc grpc.ClientConnInterface) RecoderClient {
return &recoderClient{cc}
}
func (c *recoderClient) SetLoggingLevel(ctx context.Context, in *SetLoggingLevelRequest, opts ...grpc.CallOption) (*SetLoggingLevelReply, error) {
out := new(SetLoggingLevelReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/SetLoggingLevel", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) NewInput(ctx context.Context, in *NewInputRequest, opts ...grpc.CallOption) (*NewInputReply, error) {
out := new(NewInputReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/NewInput", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) NewOutput(ctx context.Context, in *NewOutputRequest, opts ...grpc.CallOption) (*NewOutputReply, error) {
out := new(NewOutputReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/NewOutput", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) NewRecoder(ctx context.Context, in *NewRecoderRequest, opts ...grpc.CallOption) (*NewRecoderReply, error) {
out := new(NewRecoderReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/NewRecoder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) CloseInput(ctx context.Context, in *CloseInputRequest, opts ...grpc.CallOption) (*CloseInputReply, error) {
out := new(CloseInputReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/CloseInput", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) CloseOutput(ctx context.Context, in *CloseOutputRequest, opts ...grpc.CallOption) (*CloseOutputReply, error) {
out := new(CloseOutputReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/CloseOutput", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) GetRecoderStats(ctx context.Context, in *GetRecoderStatsRequest, opts ...grpc.CallOption) (*GetRecoderStatsReply, error) {
out := new(GetRecoderStatsReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/GetRecoderStats", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) StartRecoding(ctx context.Context, in *StartRecodingRequest, opts ...grpc.CallOption) (*StartRecodingReply, error) {
out := new(StartRecodingReply)
err := c.cc.Invoke(ctx, "/recoder_grpc.Recoder/StartRecoding", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recoderClient) RecodingEndedChan(ctx context.Context, in *RecodingEndedChanRequest, opts ...grpc.CallOption) (Recoder_RecodingEndedChanClient, error) {
stream, err := c.cc.NewStream(ctx, &Recoder_ServiceDesc.Streams[0], "/recoder_grpc.Recoder/RecodingEndedChan", opts...)
if err != nil {
return nil, err
}
x := &recoderRecodingEndedChanClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type Recoder_RecodingEndedChanClient interface {
Recv() (*RecodingEndedChanReply, error)
grpc.ClientStream
}
type recoderRecodingEndedChanClient struct {
grpc.ClientStream
}
func (x *recoderRecodingEndedChanClient) Recv() (*RecodingEndedChanReply, error) {
m := new(RecodingEndedChanReply)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// RecoderServer is the server API for Recoder service.
// All implementations must embed UnimplementedRecoderServer
// for forward compatibility
type RecoderServer interface {
SetLoggingLevel(context.Context, *SetLoggingLevelRequest) (*SetLoggingLevelReply, error)
NewInput(context.Context, *NewInputRequest) (*NewInputReply, error)
NewOutput(context.Context, *NewOutputRequest) (*NewOutputReply, error)
NewRecoder(context.Context, *NewRecoderRequest) (*NewRecoderReply, error)
CloseInput(context.Context, *CloseInputRequest) (*CloseInputReply, error)
CloseOutput(context.Context, *CloseOutputRequest) (*CloseOutputReply, error)
GetRecoderStats(context.Context, *GetRecoderStatsRequest) (*GetRecoderStatsReply, error)
StartRecoding(context.Context, *StartRecodingRequest) (*StartRecodingReply, error)
RecodingEndedChan(*RecodingEndedChanRequest, Recoder_RecodingEndedChanServer) error
mustEmbedUnimplementedRecoderServer()
}
// UnimplementedRecoderServer must be embedded to have forward compatible implementations.
type UnimplementedRecoderServer struct {
}
func (UnimplementedRecoderServer) SetLoggingLevel(context.Context, *SetLoggingLevelRequest) (*SetLoggingLevelReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetLoggingLevel not implemented")
}
func (UnimplementedRecoderServer) NewInput(context.Context, *NewInputRequest) (*NewInputReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method NewInput not implemented")
}
func (UnimplementedRecoderServer) NewOutput(context.Context, *NewOutputRequest) (*NewOutputReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method NewOutput not implemented")
}
func (UnimplementedRecoderServer) NewRecoder(context.Context, *NewRecoderRequest) (*NewRecoderReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method NewRecoder not implemented")
}
func (UnimplementedRecoderServer) CloseInput(context.Context, *CloseInputRequest) (*CloseInputReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method CloseInput not implemented")
}
func (UnimplementedRecoderServer) CloseOutput(context.Context, *CloseOutputRequest) (*CloseOutputReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method CloseOutput not implemented")
}
func (UnimplementedRecoderServer) GetRecoderStats(context.Context, *GetRecoderStatsRequest) (*GetRecoderStatsReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetRecoderStats not implemented")
}
func (UnimplementedRecoderServer) StartRecoding(context.Context, *StartRecodingRequest) (*StartRecodingReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method StartRecoding not implemented")
}
func (UnimplementedRecoderServer) RecodingEndedChan(*RecodingEndedChanRequest, Recoder_RecodingEndedChanServer) error {
return status.Errorf(codes.Unimplemented, "method RecodingEndedChan not implemented")
}
func (UnimplementedRecoderServer) mustEmbedUnimplementedRecoderServer() {}
// UnsafeRecoderServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to RecoderServer will
// result in compilation errors.
type UnsafeRecoderServer interface {
mustEmbedUnimplementedRecoderServer()
}
func RegisterRecoderServer(s grpc.ServiceRegistrar, srv RecoderServer) {
s.RegisterService(&Recoder_ServiceDesc, srv)
}
func _Recoder_SetLoggingLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetLoggingLevelRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).SetLoggingLevel(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/SetLoggingLevel",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).SetLoggingLevel(ctx, req.(*SetLoggingLevelRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_NewInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NewInputRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).NewInput(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/NewInput",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).NewInput(ctx, req.(*NewInputRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_NewOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NewOutputRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).NewOutput(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/NewOutput",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).NewOutput(ctx, req.(*NewOutputRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_NewRecoder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NewRecoderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).NewRecoder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/NewRecoder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).NewRecoder(ctx, req.(*NewRecoderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_CloseInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CloseInputRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).CloseInput(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/CloseInput",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).CloseInput(ctx, req.(*CloseInputRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_CloseOutput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CloseOutputRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).CloseOutput(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/CloseOutput",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).CloseOutput(ctx, req.(*CloseOutputRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_GetRecoderStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetRecoderStatsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).GetRecoderStats(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/GetRecoderStats",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).GetRecoderStats(ctx, req.(*GetRecoderStatsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_StartRecoding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StartRecodingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecoderServer).StartRecoding(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/recoder_grpc.Recoder/StartRecoding",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecoderServer).StartRecoding(ctx, req.(*StartRecodingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recoder_RecodingEndedChan_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(RecodingEndedChanRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(RecoderServer).RecodingEndedChan(m, &recoderRecodingEndedChanServer{stream})
}
type Recoder_RecodingEndedChanServer interface {
Send(*RecodingEndedChanReply) error
grpc.ServerStream
}
type recoderRecodingEndedChanServer struct {
grpc.ServerStream
}
func (x *recoderRecodingEndedChanServer) Send(m *RecodingEndedChanReply) error {
return x.ServerStream.SendMsg(m)
}
// Recoder_ServiceDesc is the grpc.ServiceDesc for Recoder service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Recoder_ServiceDesc = grpc.ServiceDesc{
ServiceName: "recoder_grpc.Recoder",
HandlerType: (*RecoderServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "SetLoggingLevel",
Handler: _Recoder_SetLoggingLevel_Handler,
},
{
MethodName: "NewInput",
Handler: _Recoder_NewInput_Handler,
},
{
MethodName: "NewOutput",
Handler: _Recoder_NewOutput_Handler,
},
{
MethodName: "NewRecoder",
Handler: _Recoder_NewRecoder_Handler,
},
{
MethodName: "CloseInput",
Handler: _Recoder_CloseInput_Handler,
},
{
MethodName: "CloseOutput",
Handler: _Recoder_CloseOutput_Handler,
},
{
MethodName: "GetRecoderStats",
Handler: _Recoder_GetRecoderStats_Handler,
},
{
MethodName: "StartRecoding",
Handler: _Recoder_StartRecoding_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "RecodingEndedChan",
Handler: _Recoder_RecodingEndedChan_Handler,
ServerStreams: true,
},
},
Metadata: "recoder.proto",
}

View File

@@ -0,0 +1,105 @@
syntax = "proto3";
package recoder_grpc;
option go_package = "go/recoder_grpc";
service Recoder {
rpc SetLoggingLevel(SetLoggingLevelRequest) returns(SetLoggingLevelReply) {}
rpc NewInput(NewInputRequest) returns (NewInputReply) {}
rpc NewOutput(NewOutputRequest) returns (NewOutputReply) {}
rpc NewRecoder(NewRecoderRequest) returns (NewRecoderReply) {}
rpc CloseInput(CloseInputRequest) returns (CloseInputReply) {}
rpc CloseOutput(CloseOutputRequest) returns (CloseOutputReply) {}
rpc GetRecoderStats(GetRecoderStatsRequest) returns (GetRecoderStatsReply) {}
rpc StartRecoding(StartRecodingRequest) returns (StartRecodingReply) {}
rpc RecodingEndedChan(RecodingEndedChanRequest) returns (stream RecodingEndedChanReply) {}
}
enum LoggingLevel {
LoggingLevelNone = 0;
LoggingLevelFatal = 1;
LoggingLevelPanic = 2;
LoggingLevelError = 3;
LoggingLevelWarn = 4;
LoggingLevelInfo = 5;
LoggingLevelDebug = 6;
LoggingLevelTrace = 7;
}
message SetLoggingLevelRequest {
LoggingLevel level = 1;
}
message SetLoggingLevelReply {}
message Error {
uint64 code = 1;
string message = 2;
}
message ResourcePath {
oneof ResourcePath {
string url = 1;
}
}
message InputConfig {}
message NewInputRequest {
ResourcePath path = 1;
InputConfig config = 2;
}
message NewInputReply {
uint64 id = 1;
}
message OutputConfig {}
message NewOutputRequest {
ResourcePath path = 1;
OutputConfig config = 2;
}
message NewOutputReply {
uint64 id = 1;
}
message RecoderConfig {}
message NewRecoderRequest {
RecoderConfig config = 1;
}
message NewRecoderReply {
uint64 id = 1;
}
message CloseInputRequest {
uint64 inputID = 1;
}
message CloseInputReply {}
message CloseOutputRequest {
uint64 outputID = 2;
}
message CloseOutputReply {}
message GetRecoderStatsRequest {
uint64 recoderID = 1;
}
message GetRecoderStatsReply {
uint64 bytesCountRead = 1;
uint64 bytesCountWrote = 2;
}
message StartRecodingRequest {
uint64 recoderID = 1;
uint64 inputID = 2;
uint64 outputID = 3;
}
message StartRecodingReply {}
message RecodingEndedChanRequest {
uint64 recoderID = 1;
}
message RecodingEndedChanReply {}