mirror of
https://github.com/criyle/go-judge.git
synced 2025-11-04 14:50:02 +08:00
chore(pb): migrate step 1 with hybrid API
This commit is contained in:
parent
6582aaea4f
commit
51423d7110
@ -66,9 +66,9 @@ func (p *execProxy) FileGet(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fid := &pb.FileID{
|
fid := pb.FileID_builder{
|
||||||
FileID: uri.FileID,
|
FileID: uri.FileID,
|
||||||
}
|
}.Build()
|
||||||
rep, err := p.client.FileGet(c, fid)
|
rep, err := p.client.FileGet(c, fid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AbortWithError(http.StatusInternalServerError, err)
|
c.AbortWithError(http.StatusInternalServerError, err)
|
||||||
@ -95,10 +95,10 @@ func (p *execProxy) FilePost(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
req := &pb.FileContent{
|
req := pb.FileContent_builder{
|
||||||
Name: fh.Filename,
|
Name: fh.Filename,
|
||||||
Content: b,
|
Content: b,
|
||||||
}
|
}.Build()
|
||||||
rep, err := p.client.FileAdd(c, req)
|
rep, err := p.client.FileAdd(c, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AbortWithError(http.StatusInternalServerError, err)
|
c.AbortWithError(http.StatusInternalServerError, err)
|
||||||
@ -117,9 +117,9 @@ func (p *execProxy) FileDelete(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fid := &pb.FileID{
|
fid := pb.FileID_builder{
|
||||||
FileID: uri.FileID,
|
FileID: uri.FileID,
|
||||||
}
|
}.Build()
|
||||||
rep, err := p.client.FileDelete(c, fid)
|
rep, err := p.client.FileDelete(c, fid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AbortWithError(http.StatusInternalServerError, err)
|
c.AbortWithError(http.StatusInternalServerError, err)
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
|
"google.golang.org/protobuf/types/known/emptypb"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ Stream = &grpcWrapper{}
|
var _ Stream = &grpcWrapper{}
|
||||||
@ -45,22 +46,22 @@ func (w *grpcWrapper) Send(req *stream.Request) error {
|
|||||||
case req.Request != nil:
|
case req.Request != nil:
|
||||||
w.sc.Send(convertPBRequest(req.Request))
|
w.sc.Send(convertPBRequest(req.Request))
|
||||||
case req.Input != nil:
|
case req.Input != nil:
|
||||||
w.sc.Send(&pb.StreamRequest{Request: &pb.StreamRequest_ExecInput{ExecInput: &pb.StreamRequest_Input{
|
w.sc.Send(pb.StreamRequest_builder{ExecInput: pb.StreamRequest_Input_builder{
|
||||||
Index: uint32(req.Input.Index),
|
Index: uint32(req.Input.Index),
|
||||||
Fd: uint32(req.Input.Fd),
|
Fd: uint32(req.Input.Fd),
|
||||||
Content: req.Input.Content,
|
Content: req.Input.Content,
|
||||||
}}})
|
}.Build()}.Build())
|
||||||
case req.Resize != nil:
|
case req.Resize != nil:
|
||||||
w.sc.Send(&pb.StreamRequest{Request: &pb.StreamRequest_ExecResize{ExecResize: &pb.StreamRequest_Resize{
|
w.sc.Send(pb.StreamRequest_builder{ExecResize: pb.StreamRequest_Resize_builder{
|
||||||
Index: uint32(req.Resize.Index),
|
Index: uint32(req.Resize.Index),
|
||||||
Fd: uint32(req.Resize.Fd),
|
Fd: uint32(req.Resize.Fd),
|
||||||
Rows: uint32(req.Resize.Rows),
|
Rows: uint32(req.Resize.Rows),
|
||||||
Cols: uint32(req.Resize.Cols),
|
Cols: uint32(req.Resize.Cols),
|
||||||
X: uint32(req.Resize.X),
|
X: uint32(req.Resize.X),
|
||||||
Y: uint32(req.Resize.Y),
|
Y: uint32(req.Resize.Y),
|
||||||
}}})
|
}.Build()}.Build())
|
||||||
case req.Cancel != nil:
|
case req.Cancel != nil:
|
||||||
w.sc.Send(&pb.StreamRequest{Request: &pb.StreamRequest_ExecCancel{}})
|
w.sc.Send(pb.StreamRequest_builder{ExecCancel: &emptypb.Empty{}}.Build())
|
||||||
default:
|
default:
|
||||||
return errors.New("send: unknown operation")
|
return errors.New("send: unknown operation")
|
||||||
}
|
}
|
||||||
@ -72,18 +73,18 @@ func (w *grpcWrapper) Recv() (*stream.Response, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
switch i := resp.Response.(type) {
|
switch resp.WhichResponse() {
|
||||||
case *pb.StreamResponse_ExecOutput:
|
case pb.StreamResponse_ExecOutput_case:
|
||||||
return &stream.Response{Output: &stream.OutputResponse{
|
return &stream.Response{Output: &stream.OutputResponse{
|
||||||
Index: int(i.ExecOutput.Index),
|
Index: int(resp.GetExecOutput().GetIndex()),
|
||||||
Fd: int(i.ExecOutput.Fd),
|
Fd: int(resp.GetExecOutput().GetFd()),
|
||||||
Content: i.ExecOutput.Content,
|
Content: resp.GetExecOutput().GetContent(),
|
||||||
}}, nil
|
}}, nil
|
||||||
case *pb.StreamResponse_ExecResponse:
|
case pb.StreamResponse_ExecResponse_case:
|
||||||
return &stream.Response{Response: &model.Response{
|
return &stream.Response{Response: &model.Response{
|
||||||
RequestID: i.ExecResponse.RequestID,
|
RequestID: resp.GetExecResponse().GetRequestID(),
|
||||||
Results: convertPBResult(i.ExecResponse.Results),
|
Results: convertPBResult(resp.GetExecResponse().GetResults()),
|
||||||
ErrorMsg: i.ExecResponse.Error,
|
ErrorMsg: resp.GetExecResponse().GetError(),
|
||||||
}}, nil
|
}}, nil
|
||||||
}
|
}
|
||||||
return nil, errors.New("recv: invalid response")
|
return nil, errors.New("recv: invalid response")
|
||||||
@ -93,16 +94,16 @@ func convertPBResult(res []*pb.Response_Result) []model.Result {
|
|||||||
var ret []model.Result
|
var ret []model.Result
|
||||||
for _, r := range res {
|
for _, r := range res {
|
||||||
ret = append(ret, model.Result{
|
ret = append(ret, model.Result{
|
||||||
Status: model.Status(r.Status),
|
Status: model.Status(r.GetStatus()),
|
||||||
ExitStatus: int(r.ExitStatus),
|
ExitStatus: int(r.GetExitStatus()),
|
||||||
Error: r.Error,
|
Error: r.GetError(),
|
||||||
Time: r.Time,
|
Time: r.GetTime(),
|
||||||
RunTime: r.RunTime,
|
RunTime: r.GetRunTime(),
|
||||||
Memory: r.Memory,
|
Memory: r.GetMemory(),
|
||||||
Files: convertFiles(r.Files),
|
Files: convertFiles(r.GetFiles()),
|
||||||
Buffs: r.Files,
|
Buffs: r.GetFiles(),
|
||||||
FileIDs: r.FileIDs,
|
FileIDs: r.GetFileIDs(),
|
||||||
FileError: convertPBFileError(r.FileError),
|
FileError: convertPBFileError(r.GetFileError()),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
@ -117,15 +118,13 @@ func convertFiles(buf map[string][]byte) map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func convertPBRequest(req *model.Request) *pb.StreamRequest {
|
func convertPBRequest(req *model.Request) *pb.StreamRequest {
|
||||||
ret := &pb.StreamRequest{
|
ret := pb.StreamRequest_builder{
|
||||||
Request: &pb.StreamRequest_ExecRequest{
|
ExecRequest: pb.Request_builder{
|
||||||
ExecRequest: &pb.Request{
|
RequestID: req.RequestID,
|
||||||
RequestID: req.RequestID,
|
Cmd: convertPBCmd(req.Cmd),
|
||||||
Cmd: convertPBCmd(req.Cmd),
|
PipeMapping: convertPBPipeMapping(req.PipeMapping),
|
||||||
PipeMapping: convertPBPipeMapping(req.PipeMapping),
|
}.Build(),
|
||||||
},
|
}.Build()
|
||||||
},
|
|
||||||
}
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,9 +132,9 @@ func convertPBFileError(fe []*pb.Response_FileError) []model.FileError {
|
|||||||
var ret []model.FileError
|
var ret []model.FileError
|
||||||
for _, v := range fe {
|
for _, v := range fe {
|
||||||
ret = append(ret, model.FileError{
|
ret = append(ret, model.FileError{
|
||||||
Name: v.Name,
|
Name: v.GetName(),
|
||||||
Type: model.FileErrorType(v.Type),
|
Type: model.FileErrorType(v.GetType()),
|
||||||
Message: v.Message,
|
Message: v.GetMessage(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
@ -144,7 +143,7 @@ func convertPBFileError(fe []*pb.Response_FileError) []model.FileError {
|
|||||||
func convertPBCmd(cmd []model.Cmd) []*pb.Request_CmdType {
|
func convertPBCmd(cmd []model.Cmd) []*pb.Request_CmdType {
|
||||||
var ret []*pb.Request_CmdType
|
var ret []*pb.Request_CmdType
|
||||||
for _, c := range cmd {
|
for _, c := range cmd {
|
||||||
ret = append(ret, &pb.Request_CmdType{
|
ret = append(ret, pb.Request_CmdType_builder{
|
||||||
Args: c.Args,
|
Args: c.Args,
|
||||||
Env: c.Env,
|
Env: c.Env,
|
||||||
Tty: c.TTY,
|
Tty: c.TTY,
|
||||||
@ -164,7 +163,7 @@ func convertPBCmd(cmd []model.Cmd) []*pb.Request_CmdType {
|
|||||||
CopyOutMax: c.CopyOutMax,
|
CopyOutMax: c.CopyOutMax,
|
||||||
CopyOutDir: c.CopyOutDir,
|
CopyOutDir: c.CopyOutDir,
|
||||||
Symlinks: convertSymlink(c.CopyIn),
|
Symlinks: convertSymlink(c.CopyIn),
|
||||||
})
|
}.Build())
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
@ -188,10 +187,10 @@ func convertPBCopyOut(copyOut []string) []*pb.Request_CmdCopyOutFile {
|
|||||||
optional = true
|
optional = true
|
||||||
n = strings.TrimSuffix(n, "?")
|
n = strings.TrimSuffix(n, "?")
|
||||||
}
|
}
|
||||||
rt = append(rt, &pb.Request_CmdCopyOutFile{
|
rt = append(rt, pb.Request_CmdCopyOutFile_builder{
|
||||||
Name: n,
|
Name: n,
|
||||||
Optional: optional,
|
Optional: optional,
|
||||||
})
|
}.Build())
|
||||||
}
|
}
|
||||||
return rt
|
return rt
|
||||||
}
|
}
|
||||||
@ -222,18 +221,18 @@ func convertPBFiles(files []*model.CmdFile) []*pb.Request_File {
|
|||||||
func convertPBFile(i model.CmdFile) *pb.Request_File {
|
func convertPBFile(i model.CmdFile) *pb.Request_File {
|
||||||
switch {
|
switch {
|
||||||
case i.Src != nil:
|
case i.Src != nil:
|
||||||
return &pb.Request_File{File: &pb.Request_File_Local{Local: &pb.Request_LocalFile{Src: *i.Src}}}
|
return pb.Request_File_builder{Local: pb.Request_LocalFile_builder{Src: *i.Src}.Build()}.Build()
|
||||||
case i.Content != nil:
|
case i.Content != nil:
|
||||||
s := strToBytes(*i.Content)
|
s := strToBytes(*i.Content)
|
||||||
return &pb.Request_File{File: &pb.Request_File_Memory{Memory: &pb.Request_MemoryFile{Content: s}}}
|
return pb.Request_File_builder{Memory: pb.Request_MemoryFile_builder{Content: s}.Build()}.Build()
|
||||||
case i.FileID != nil:
|
case i.FileID != nil:
|
||||||
return &pb.Request_File{File: &pb.Request_File_Cached{Cached: &pb.Request_CachedFile{FileID: *i.FileID}}}
|
return pb.Request_File_builder{Cached: pb.Request_CachedFile_builder{FileID: *i.FileID}.Build()}.Build()
|
||||||
case i.Name != nil && i.Max != nil:
|
case i.Name != nil && i.Max != nil:
|
||||||
return &pb.Request_File{File: &pb.Request_File_Pipe{Pipe: &pb.Request_PipeCollector{Name: *i.Name, Max: *i.Max, Pipe: i.Pipe}}}
|
return pb.Request_File_builder{Pipe: pb.Request_PipeCollector_builder{Name: *i.Name, Max: *i.Max, Pipe: i.Pipe}.Build()}.Build()
|
||||||
case i.StreamIn:
|
case i.StreamIn:
|
||||||
return &pb.Request_File{File: &pb.Request_File_StreamIn{}}
|
return pb.Request_File_builder{StreamIn: &emptypb.Empty{}}.Build()
|
||||||
case i.StreamOut:
|
case i.StreamOut:
|
||||||
return &pb.Request_File{File: &pb.Request_File_StreamOut{}}
|
return pb.Request_File_builder{StreamOut: &emptypb.Empty{}}.Build()
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -241,19 +240,19 @@ func convertPBFile(i model.CmdFile) *pb.Request_File {
|
|||||||
func convertPBPipeMapping(pm []model.PipeMap) []*pb.Request_PipeMap {
|
func convertPBPipeMapping(pm []model.PipeMap) []*pb.Request_PipeMap {
|
||||||
var ret []*pb.Request_PipeMap
|
var ret []*pb.Request_PipeMap
|
||||||
for _, p := range pm {
|
for _, p := range pm {
|
||||||
ret = append(ret, &pb.Request_PipeMap{
|
ret = append(ret, pb.Request_PipeMap_builder{
|
||||||
In: convertPBPipeIndex(p.In),
|
In: convertPBPipeIndex(p.In),
|
||||||
Out: convertPBPipeIndex(p.Out),
|
Out: convertPBPipeIndex(p.Out),
|
||||||
Name: p.Name,
|
Name: p.Name,
|
||||||
Proxy: p.Proxy,
|
Proxy: p.Proxy,
|
||||||
Max: uint64(p.Max),
|
Max: uint64(p.Max),
|
||||||
})
|
}.Build())
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBPipeIndex(pi model.PipeIndex) *pb.Request_PipeMap_PipeIndex {
|
func convertPBPipeIndex(pi model.PipeIndex) *pb.Request_PipeMap_PipeIndex {
|
||||||
return &pb.Request_PipeMap_PipeIndex{Index: int32(pi.Index), Fd: int32(pi.Fd)}
|
return pb.Request_PipeMap_PipeIndex_builder{Index: int32(pi.Index), Fd: int32(pi.Fd)}.Build()
|
||||||
}
|
}
|
||||||
|
|
||||||
type tokenAuth struct {
|
type tokenAuth struct {
|
||||||
|
|||||||
@ -63,9 +63,9 @@ func (e *execServer) Exec(ctx context.Context, req *pb.Request) (*pb.Response, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (e *execServer) FileList(c context.Context, n *emptypb.Empty) (*pb.FileListType, error) {
|
func (e *execServer) FileList(c context.Context, n *emptypb.Empty) (*pb.FileListType, error) {
|
||||||
return &pb.FileListType{
|
return pb.FileListType_builder{
|
||||||
FileIDs: e.fs.List(),
|
FileIDs: e.fs.List(),
|
||||||
}, nil
|
}.Build(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *execServer) FileGet(c context.Context, f *pb.FileID) (*pb.FileContent, error) {
|
func (e *execServer) FileGet(c context.Context, f *pb.FileID) (*pb.FileContent, error) {
|
||||||
@ -83,10 +83,10 @@ func (e *execServer) FileGet(c context.Context, f *pb.FileID) (*pb.FileContent,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Error(codes.Internal, err.Error())
|
return nil, status.Error(codes.Internal, err.Error())
|
||||||
}
|
}
|
||||||
return &pb.FileContent{
|
return pb.FileContent_builder{
|
||||||
Name: name,
|
Name: name,
|
||||||
Content: content,
|
Content: content,
|
||||||
}, nil
|
}.Build(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *execServer) FileAdd(c context.Context, fc *pb.FileContent) (*pb.FileID, error) {
|
func (e *execServer) FileAdd(c context.Context, fc *pb.FileContent) (*pb.FileID, error) {
|
||||||
@ -103,9 +103,9 @@ func (e *execServer) FileAdd(c context.Context, fc *pb.FileContent) (*pb.FileID,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Error(codes.Internal, err.Error())
|
return nil, status.Error(codes.Internal, err.Error())
|
||||||
}
|
}
|
||||||
return &pb.FileID{
|
return pb.FileID_builder{
|
||||||
FileID: fid,
|
FileID: fid,
|
||||||
}, nil
|
}.Build(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *execServer) FileDelete(c context.Context, f *pb.FileID) (*emptypb.Empty, error) {
|
func (e *execServer) FileDelete(c context.Context, f *pb.FileID) (*emptypb.Empty, error) {
|
||||||
@ -117,23 +117,23 @@ func (e *execServer) FileDelete(c context.Context, f *pb.FileID) (*emptypb.Empty
|
|||||||
}
|
}
|
||||||
|
|
||||||
func convertPBResponse(r model.Response) (*pb.Response, error) {
|
func convertPBResponse(r model.Response) (*pb.Response, error) {
|
||||||
res := &pb.Response{
|
res := pb.Response_builder{
|
||||||
RequestID: r.RequestID,
|
RequestID: r.RequestID,
|
||||||
Results: make([]*pb.Response_Result, 0, len(r.Results)),
|
Results: make([]*pb.Response_Result, 0, len(r.Results)),
|
||||||
Error: r.ErrorMsg,
|
Error: r.ErrorMsg,
|
||||||
}
|
}.Build()
|
||||||
for _, c := range r.Results {
|
for _, c := range r.Results {
|
||||||
rt, err := convertPBResult(c)
|
rt, err := convertPBResult(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
res.Results = append(res.Results, rt)
|
res.SetResults(append(res.GetResults(), rt))
|
||||||
}
|
}
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBResult(r model.Result) (*pb.Response_Result, error) {
|
func convertPBResult(r model.Result) (*pb.Response_Result, error) {
|
||||||
return &pb.Response_Result{
|
return pb.Response_Result_builder{
|
||||||
Status: pb.Response_Result_StatusType(r.Status),
|
Status: pb.Response_Result_StatusType(r.Status),
|
||||||
ExitStatus: int32(r.ExitStatus),
|
ExitStatus: int32(r.ExitStatus),
|
||||||
Error: r.Error,
|
Error: r.Error,
|
||||||
@ -144,35 +144,35 @@ func convertPBResult(r model.Result) (*pb.Response_Result, error) {
|
|||||||
Files: r.Buffs,
|
Files: r.Buffs,
|
||||||
FileIDs: r.FileIDs,
|
FileIDs: r.FileIDs,
|
||||||
FileError: convertPBFileError(r.FileError),
|
FileError: convertPBFileError(r.FileError),
|
||||||
}, nil
|
}.Build(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBFileError(fe []envexec.FileError) []*pb.Response_FileError {
|
func convertPBFileError(fe []envexec.FileError) []*pb.Response_FileError {
|
||||||
rt := make([]*pb.Response_FileError, 0, len(fe))
|
rt := make([]*pb.Response_FileError, 0, len(fe))
|
||||||
for _, e := range fe {
|
for _, e := range fe {
|
||||||
rt = append(rt, &pb.Response_FileError{
|
rt = append(rt, pb.Response_FileError_builder{
|
||||||
Name: e.Name,
|
Name: e.Name,
|
||||||
Type: pb.Response_FileError_ErrorType(e.Type),
|
Type: pb.Response_FileError_ErrorType(e.Type),
|
||||||
Message: e.Message,
|
Message: e.Message,
|
||||||
})
|
}.Build())
|
||||||
}
|
}
|
||||||
return rt
|
return rt
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBRequest(r *pb.Request, srcPrefix []string) (req *worker.Request, err error) {
|
func convertPBRequest(r *pb.Request, srcPrefix []string) (req *worker.Request, err error) {
|
||||||
req = &worker.Request{
|
req = &worker.Request{
|
||||||
RequestID: r.RequestID,
|
RequestID: r.GetRequestID(),
|
||||||
Cmd: make([]worker.Cmd, 0, len(r.Cmd)),
|
Cmd: make([]worker.Cmd, 0, len(r.GetCmd())),
|
||||||
PipeMapping: make([]worker.PipeMap, 0, len(r.PipeMapping)),
|
PipeMapping: make([]worker.PipeMap, 0, len(r.GetPipeMapping())),
|
||||||
}
|
}
|
||||||
for _, c := range r.Cmd {
|
for _, c := range r.GetCmd() {
|
||||||
cm, err := convertPBCmd(c, srcPrefix)
|
cm, err := convertPBCmd(c, srcPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
req.Cmd = append(req.Cmd, cm)
|
req.Cmd = append(req.Cmd, cm)
|
||||||
}
|
}
|
||||||
for _, p := range r.PipeMapping {
|
for _, p := range r.GetPipeMapping() {
|
||||||
pm := convertPBPipeMap(p)
|
pm := convertPBPipeMap(p)
|
||||||
req.PipeMapping = append(req.PipeMapping, pm)
|
req.PipeMapping = append(req.PipeMapping, pm)
|
||||||
}
|
}
|
||||||
@ -185,7 +185,7 @@ func convertPBPipeMap(p *pb.Request_PipeMap) worker.PipeMap {
|
|||||||
Out: convertPBPipeIndex(p.GetOut()),
|
Out: convertPBPipeIndex(p.GetOut()),
|
||||||
Proxy: p.GetProxy(),
|
Proxy: p.GetProxy(),
|
||||||
Name: p.GetName(),
|
Name: p.GetName(),
|
||||||
Limit: worker.Size(p.Max),
|
Limit: worker.Size(p.GetMax()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,26 +234,26 @@ func convertPBCmd(c *pb.Request_CmdType, srcPrefix []string) (cm worker.Cmd, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
func convertPBFile(c *pb.Request_File, srcPrefix []string) (worker.CmdFile, error) {
|
func convertPBFile(c *pb.Request_File, srcPrefix []string) (worker.CmdFile, error) {
|
||||||
switch c := c.File.(type) {
|
switch c.WhichFile() {
|
||||||
case nil:
|
case 0:
|
||||||
return nil, nil
|
return nil, nil
|
||||||
case *pb.Request_File_Local:
|
case pb.Request_File_Local_case:
|
||||||
if len(srcPrefix) > 0 {
|
if len(srcPrefix) > 0 {
|
||||||
ok, err := model.CheckPathPrefixes(c.Local.GetSrc(), srcPrefix)
|
ok, err := model.CheckPathPrefixes(c.GetLocal().GetSrc(), srcPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("check path prefixes: %w", err)
|
return nil, fmt.Errorf("check path prefixes: %w", err)
|
||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("file outside of prefix: %q, %q", c.Local.GetSrc(), srcPrefix)
|
return nil, fmt.Errorf("file outside of prefix: %q, %q", c.GetLocal().GetSrc(), srcPrefix)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &worker.LocalFile{Src: c.Local.GetSrc()}, nil
|
return &worker.LocalFile{Src: c.GetLocal().GetSrc()}, nil
|
||||||
case *pb.Request_File_Memory:
|
case pb.Request_File_Memory_case:
|
||||||
return &worker.MemoryFile{Content: c.Memory.GetContent()}, nil
|
return &worker.MemoryFile{Content: c.GetMemory().GetContent()}, nil
|
||||||
case *pb.Request_File_Cached:
|
case pb.Request_File_Cached_case:
|
||||||
return &worker.CachedFile{FileID: c.Cached.GetFileID()}, nil
|
return &worker.CachedFile{FileID: c.GetCached().GetFileID()}, nil
|
||||||
case *pb.Request_File_Pipe:
|
case pb.Request_File_Pipe_case:
|
||||||
return &worker.Collector{Name: c.Pipe.GetName(), Max: envexec.Size(c.Pipe.GetMax()), Pipe: c.Pipe.GetPipe()}, nil
|
return &worker.Collector{Name: c.GetPipe().GetName(), Max: envexec.Size(c.GetPipe().GetMax()), Pipe: c.GetPipe().GetPipe()}, nil
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("request file type not supported: %T", c)
|
return nil, fmt.Errorf("request file type not supported: %T", c)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/criyle/go-judge/pb"
|
"github.com/criyle/go-judge/pb"
|
||||||
"google.golang.org/grpc/codes"
|
"google.golang.org/grpc/codes"
|
||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ stream.Stream = &streamWrapper{}
|
var _ stream.Stream = &streamWrapper{}
|
||||||
@ -24,13 +25,13 @@ func (sw *streamWrapper) Send(r stream.Response) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return status.Errorf(codes.Aborted, "response: %v", err)
|
return status.Errorf(codes.Aborted, "response: %v", err)
|
||||||
}
|
}
|
||||||
res.Response = &pb.StreamResponse_ExecResponse{ExecResponse: resp}
|
res.SetExecResponse(proto.ValueOrDefault(resp))
|
||||||
case r.Output != nil:
|
case r.Output != nil:
|
||||||
res.Response = &pb.StreamResponse_ExecOutput{ExecOutput: &pb.StreamResponse_Output{
|
res.SetExecOutput(pb.StreamResponse_Output_builder{
|
||||||
Index: uint32(r.Output.Index),
|
Index: uint32(r.Output.Index),
|
||||||
Fd: uint32(r.Output.Fd),
|
Fd: uint32(r.Output.Fd),
|
||||||
Content: r.Output.Content,
|
Content: r.Output.Content,
|
||||||
}}
|
}.Build())
|
||||||
}
|
}
|
||||||
return sw.es.Send(res)
|
return sw.es.Send(res)
|
||||||
}
|
}
|
||||||
@ -40,25 +41,25 @@ func (sw *streamWrapper) Recv() (*stream.Request, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
switch i := req.Request.(type) {
|
switch req.WhichRequest() {
|
||||||
case *pb.StreamRequest_ExecRequest:
|
case pb.StreamRequest_ExecRequest_case:
|
||||||
return &stream.Request{Request: convertPBStreamRequest(i.ExecRequest)}, nil
|
return &stream.Request{Request: convertPBStreamRequest(req.GetExecRequest())}, nil
|
||||||
case *pb.StreamRequest_ExecInput:
|
case pb.StreamRequest_ExecInput_case:
|
||||||
return &stream.Request{Input: &stream.InputRequest{
|
return &stream.Request{Input: &stream.InputRequest{
|
||||||
Index: int(i.ExecInput.Index),
|
Index: int(req.GetExecInput().GetIndex()),
|
||||||
Fd: int(i.ExecInput.Fd),
|
Fd: int(req.GetExecInput().GetFd()),
|
||||||
Content: i.ExecInput.Content,
|
Content: req.GetExecInput().GetContent(),
|
||||||
}}, nil
|
}}, nil
|
||||||
case *pb.StreamRequest_ExecResize:
|
case pb.StreamRequest_ExecResize_case:
|
||||||
return &stream.Request{Resize: &stream.ResizeRequest{
|
return &stream.Request{Resize: &stream.ResizeRequest{
|
||||||
Index: int(i.ExecResize.Index),
|
Index: int(req.GetExecResize().GetIndex()),
|
||||||
Fd: int(i.ExecResize.Fd),
|
Fd: int(req.GetExecResize().GetFd()),
|
||||||
Rows: int(i.ExecResize.Rows),
|
Rows: int(req.GetExecResize().GetRows()),
|
||||||
Cols: int(i.ExecResize.Cols),
|
Cols: int(req.GetExecResize().GetCols()),
|
||||||
X: int(i.ExecResize.X),
|
X: int(req.GetExecResize().GetX()),
|
||||||
Y: int(i.ExecResize.Y),
|
Y: int(req.GetExecResize().GetY()),
|
||||||
}}, nil
|
}}, nil
|
||||||
case *pb.StreamRequest_ExecCancel:
|
case pb.StreamRequest_ExecCancel_case:
|
||||||
return &stream.Request{Cancel: &struct{}{}}, nil
|
return &stream.Request{Cancel: &struct{}{}}, nil
|
||||||
}
|
}
|
||||||
return nil, errors.ErrUnsupported
|
return nil, errors.ErrUnsupported
|
||||||
@ -66,44 +67,44 @@ func (sw *streamWrapper) Recv() (*stream.Request, error) {
|
|||||||
|
|
||||||
func convertPBStreamRequest(req *pb.Request) *model.Request {
|
func convertPBStreamRequest(req *pb.Request) *model.Request {
|
||||||
ret := &model.Request{
|
ret := &model.Request{
|
||||||
RequestID: req.RequestID,
|
RequestID: req.GetRequestID(),
|
||||||
}
|
}
|
||||||
for _, cmd := range req.Cmd {
|
for _, cmd := range req.GetCmd() {
|
||||||
ret.Cmd = append(ret.Cmd, model.Cmd{
|
ret.Cmd = append(ret.Cmd, model.Cmd{
|
||||||
Args: cmd.Args,
|
Args: cmd.GetArgs(),
|
||||||
Env: cmd.Env,
|
Env: cmd.GetEnv(),
|
||||||
TTY: cmd.Tty,
|
TTY: cmd.GetTty(),
|
||||||
Files: convertPBStreamFiles(cmd.Files),
|
Files: convertPBStreamFiles(cmd.GetFiles()),
|
||||||
CPULimit: cmd.CpuTimeLimit,
|
CPULimit: cmd.GetCpuTimeLimit(),
|
||||||
ClockLimit: cmd.ClockTimeLimit,
|
ClockLimit: cmd.GetClockTimeLimit(),
|
||||||
MemoryLimit: cmd.MemoryLimit,
|
MemoryLimit: cmd.GetMemoryLimit(),
|
||||||
StackLimit: cmd.StackLimit,
|
StackLimit: cmd.GetStackLimit(),
|
||||||
ProcLimit: cmd.ProcLimit,
|
ProcLimit: cmd.GetProcLimit(),
|
||||||
CPURateLimit: cmd.CpuRateLimit,
|
CPURateLimit: cmd.GetCpuRateLimit(),
|
||||||
CPUSetLimit: cmd.CpuSetLimit,
|
CPUSetLimit: cmd.GetCpuSetLimit(),
|
||||||
DataSegmentLimit: cmd.DataSegmentLimit,
|
DataSegmentLimit: cmd.GetDataSegmentLimit(),
|
||||||
AddressSpaceLimit: cmd.AddressSpaceLimit,
|
AddressSpaceLimit: cmd.GetAddressSpaceLimit(),
|
||||||
CopyIn: convertPBStreamCopyIn(cmd),
|
CopyIn: convertPBStreamCopyIn(cmd),
|
||||||
CopyOut: convertStreamCopyOut(cmd.CopyOut),
|
CopyOut: convertStreamCopyOut(cmd.GetCopyOut()),
|
||||||
CopyOutCached: convertStreamCopyOut(cmd.CopyOutCached),
|
CopyOutCached: convertStreamCopyOut(cmd.GetCopyOutCached()),
|
||||||
CopyOutMax: cmd.CopyOutMax,
|
CopyOutMax: cmd.GetCopyOutMax(),
|
||||||
CopyOutDir: cmd.CopyOutDir,
|
CopyOutDir: cmd.GetCopyOutDir(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for _, p := range req.PipeMapping {
|
for _, p := range req.GetPipeMapping() {
|
||||||
ret.PipeMapping = append(ret.PipeMapping, model.PipeMap{
|
ret.PipeMapping = append(ret.PipeMapping, model.PipeMap{
|
||||||
In: convertPBStreamPipeIndex(p.In),
|
In: convertPBStreamPipeIndex(p.GetIn()),
|
||||||
Out: convertPBStreamPipeIndex(p.Out),
|
Out: convertPBStreamPipeIndex(p.GetOut()),
|
||||||
Max: int64(p.Max),
|
Max: int64(p.GetMax()),
|
||||||
Name: p.Name,
|
Name: p.GetName(),
|
||||||
Proxy: p.Proxy,
|
Proxy: p.GetProxy(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBStreamPipeIndex(pi *pb.Request_PipeMap_PipeIndex) model.PipeIndex {
|
func convertPBStreamPipeIndex(pi *pb.Request_PipeMap_PipeIndex) model.PipeIndex {
|
||||||
return model.PipeIndex{Index: int(pi.Index), Fd: int(pi.Fd)}
|
return model.PipeIndex{Index: int(pi.GetIndex()), Fd: int(pi.GetFd())}
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBStreamFiles(files []*pb.Request_File) []*model.CmdFile {
|
func convertPBStreamFiles(files []*pb.Request_File) []*model.CmdFile {
|
||||||
@ -120,33 +121,33 @@ func convertPBStreamFiles(files []*pb.Request_File) []*model.CmdFile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func convertPBStreamCopyIn(cmd *pb.Request_CmdType) map[string]model.CmdFile {
|
func convertPBStreamCopyIn(cmd *pb.Request_CmdType) map[string]model.CmdFile {
|
||||||
rt := make(map[string]model.CmdFile, len(cmd.CopyIn)+len(cmd.Symlinks))
|
rt := make(map[string]model.CmdFile, len(cmd.GetCopyIn())+len(cmd.GetSymlinks()))
|
||||||
for k, i := range cmd.CopyIn {
|
for k, i := range cmd.GetCopyIn() {
|
||||||
if i.File == nil {
|
if !i.HasFile() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
rt[k] = convertPBStreamFile(i)
|
rt[k] = convertPBStreamFile(i)
|
||||||
}
|
}
|
||||||
for k, v := range cmd.Symlinks {
|
for k, v := range cmd.GetSymlinks() {
|
||||||
rt[k] = model.CmdFile{Symlink: &v}
|
rt[k] = model.CmdFile{Symlink: &v}
|
||||||
}
|
}
|
||||||
return rt
|
return rt
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertPBStreamFile(i *pb.Request_File) model.CmdFile {
|
func convertPBStreamFile(i *pb.Request_File) model.CmdFile {
|
||||||
switch c := i.File.(type) {
|
switch i.WhichFile() {
|
||||||
case *pb.Request_File_Local:
|
case pb.Request_File_Local_case:
|
||||||
return model.CmdFile{Src: &c.Local.Src}
|
return model.CmdFile{Src: proto.String(i.GetLocal().GetSrc())}
|
||||||
case *pb.Request_File_Memory:
|
case pb.Request_File_Memory_case:
|
||||||
s := byteArrayToString(c.Memory.Content)
|
s := byteArrayToString(i.GetMemory().GetContent())
|
||||||
return model.CmdFile{Content: &s}
|
return model.CmdFile{Content: &s}
|
||||||
case *pb.Request_File_Cached:
|
case pb.Request_File_Cached_case:
|
||||||
return model.CmdFile{FileID: &c.Cached.FileID}
|
return model.CmdFile{FileID: proto.String(i.GetCached().GetFileID())}
|
||||||
case *pb.Request_File_Pipe:
|
case pb.Request_File_Pipe_case:
|
||||||
return model.CmdFile{Name: &c.Pipe.Name, Max: &c.Pipe.Max, Pipe: c.Pipe.Pipe}
|
return model.CmdFile{Name: proto.String(i.GetPipe().GetName()), Max: proto.Int64(i.GetPipe().GetMax()), Pipe: i.GetPipe().GetPipe()}
|
||||||
case *pb.Request_File_StreamIn:
|
case pb.Request_File_StreamIn_case:
|
||||||
return model.CmdFile{StreamIn: true}
|
return model.CmdFile{StreamIn: true}
|
||||||
case *pb.Request_File_StreamOut:
|
case pb.Request_File_StreamOut_case:
|
||||||
return model.CmdFile{StreamOut: true}
|
return model.CmdFile{StreamOut: true}
|
||||||
}
|
}
|
||||||
return model.CmdFile{}
|
return model.CmdFile{}
|
||||||
@ -155,8 +156,8 @@ func convertPBStreamFile(i *pb.Request_File) model.CmdFile {
|
|||||||
func convertStreamCopyOut(copyOut []*pb.Request_CmdCopyOutFile) []string {
|
func convertStreamCopyOut(copyOut []*pb.Request_CmdCopyOutFile) []string {
|
||||||
rt := make([]string, 0, len(copyOut))
|
rt := make([]string, 0, len(copyOut))
|
||||||
for _, n := range copyOut {
|
for _, n := range copyOut {
|
||||||
name := n.Name
|
name := n.GetName()
|
||||||
if n.Optional {
|
if n.GetOptional() {
|
||||||
name += "?"
|
name += "?"
|
||||||
}
|
}
|
||||||
rt = append(rt, name)
|
rt = append(rt, name)
|
||||||
|
|||||||
18
pb/README.md
Normal file
18
pb/README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# go-judge protobuf package
|
||||||
|
|
||||||
|
## Migration
|
||||||
|
|
||||||
|
Following the [Blog](https://go.dev/blog/protobuf-opaque) opaque API migration the pb package will be adapted to newer API for the future.
|
||||||
|
|
||||||
|
Although The client integration should stays the same giving the backwards compatibility promised by the protobuf team, it is still recommended to migrate to newer version.
|
||||||
|
|
||||||
|
[FAQ](https://protobuf.dev/reference/go/opaque-faq/)
|
||||||
|
|
||||||
|
For clients with older API, it is recommended to stick with `v1.0.1` for now.
|
||||||
|
|
||||||
|
To migration to newer version:
|
||||||
|
|
||||||
|
- Upgrade to `v1.1.0`
|
||||||
|
- Following the [migration guide](https://protobuf.dev/reference/go/opaque-migration/) to install the `open2opaque` tool
|
||||||
|
- Use the tool to migrate existing code to use newer version
|
||||||
|
- Upgrade to `v1.2.0` to finish the migration
|
||||||
104
pb/file.pb.go
104
pb/file.pb.go
@ -4,13 +4,15 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: file.proto
|
// source: file.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type FileID struct {
|
type FileID struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
FileID string `protobuf:"bytes,1,opt,name=fileID" json:"fileID,omitempty"`
|
FileID string `protobuf:"bytes,1,opt,name=fileID" json:"fileID,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -53,11 +55,6 @@ func (x *FileID) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use FileID.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FileID) Descriptor() ([]byte, []int) {
|
|
||||||
return file_file_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileID) GetFileID() string {
|
func (x *FileID) GetFileID() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.FileID
|
return x.FileID
|
||||||
@ -65,8 +62,26 @@ func (x *FileID) GetFileID() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *FileID) SetFileID(v string) {
|
||||||
|
x.FileID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileID_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
FileID string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileID_builder) Build() *FileID {
|
||||||
|
m0 := &FileID{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.FileID = b.FileID
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type FileContent struct {
|
type FileContent struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
||||||
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
@ -98,11 +113,6 @@ func (x *FileContent) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use FileContent.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FileContent) Descriptor() ([]byte, []int) {
|
|
||||||
return file_file_proto_rawDescGZIP(), []int{1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileContent) GetName() string {
|
func (x *FileContent) GetName() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Name
|
return x.Name
|
||||||
@ -117,8 +127,35 @@ func (x *FileContent) GetContent() []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) SetName(v string) {
|
||||||
|
x.Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileContent_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileContent_builder) Build() *FileContent {
|
||||||
|
m0 := &FileContent{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Name = b.Name
|
||||||
|
x.Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type FileListType struct {
|
type FileListType struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
FileIDs map[string]string `protobuf:"bytes,1,rep,name=fileIDs" json:"fileIDs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
FileIDs map[string]string `protobuf:"bytes,1,rep,name=fileIDs" json:"fileIDs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -149,11 +186,6 @@ func (x *FileListType) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use FileListType.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FileListType) Descriptor() ([]byte, []int) {
|
|
||||||
return file_file_proto_rawDescGZIP(), []int{2}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileListType) GetFileIDs() map[string]string {
|
func (x *FileListType) GetFileIDs() map[string]string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.FileIDs
|
return x.FileIDs
|
||||||
@ -161,12 +193,30 @@ func (x *FileListType) GetFileIDs() map[string]string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *FileListType) SetFileIDs(v map[string]string) {
|
||||||
|
x.FileIDs = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileListType_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
FileIDs map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileListType_builder) Build() *FileListType {
|
||||||
|
m0 := &FileListType{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.FileIDs = b.FileIDs
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
var File_file_proto protoreflect.FileDescriptor
|
var File_file_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_file_proto_rawDesc = "" +
|
const file_file_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"file.proto\x12\x02pb\" \n" +
|
"file.proto\x12\x02pb\x1a!google/protobuf/go_features.proto\" \n" +
|
||||||
"\x06FileID\x12\x16\n" +
|
"\x06FileID\x12\x16\n" +
|
||||||
"\x06fileID\x18\x01 \x01(\tR\x06fileID\";\n" +
|
"\x06fileID\x18\x01 \x01(\tR\x06fileID\";\n" +
|
||||||
"\vFileContent\x12\x12\n" +
|
"\vFileContent\x12\x12\n" +
|
||||||
@ -176,19 +226,7 @@ const file_file_proto_rawDesc = "" +
|
|||||||
"\afileIDs\x18\x01 \x03(\v2\x1d.pb.FileListType.FileIDsEntryR\afileIDs\x1a:\n" +
|
"\afileIDs\x18\x01 \x03(\v2\x1d.pb.FileListType.FileIDsEntryR\afileIDs\x1a:\n" +
|
||||||
"\fFileIDsEntry\x12\x10\n" +
|
"\fFileIDsEntry\x12\x10\n" +
|
||||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var (
|
|
||||||
file_file_proto_rawDescOnce sync.Once
|
|
||||||
file_file_proto_rawDescData []byte
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_file_proto_rawDescGZIP() []byte {
|
|
||||||
file_file_proto_rawDescOnce.Do(func() {
|
|
||||||
file_file_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_file_proto_rawDesc), len(file_file_proto_rawDesc)))
|
|
||||||
})
|
|
||||||
return file_file_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_file_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
var file_file_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||||
var file_file_proto_goTypes = []any{
|
var file_file_proto_goTypes = []any{
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
edition = "2023";
|
edition = "2023";
|
||||||
|
|
||||||
package pb;
|
package pb;
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
message FileID { string fileID = 1; }
|
message FileID { string fileID = 1; }
|
||||||
|
|
||||||
|
|||||||
269
pb/file_protoopaque.pb.go
Normal file
269
pb/file_protoopaque.pb.go
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.36.6
|
||||||
|
// protoc v6.31.1
|
||||||
|
// source: file.proto
|
||||||
|
|
||||||
|
//go:build protoopaque
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
|
reflect "reflect"
|
||||||
|
unsafe "unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type FileID struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_FileID string `protobuf:"bytes,1,opt,name=fileID"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileID) Reset() {
|
||||||
|
*x = FileID{}
|
||||||
|
mi := &file_file_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileID) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*FileID) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *FileID) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_file_proto_msgTypes[0]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileID) GetFileID() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_FileID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileID) SetFileID(v string) {
|
||||||
|
x.xxx_hidden_FileID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileID_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
FileID string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileID_builder) Build() *FileID {
|
||||||
|
m0 := &FileID{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_FileID = b.FileID
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileContent struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Name string `protobuf:"bytes,1,opt,name=name"`
|
||||||
|
xxx_hidden_Content []byte `protobuf:"bytes,2,opt,name=content"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) Reset() {
|
||||||
|
*x = FileContent{}
|
||||||
|
mi := &file_file_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*FileContent) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *FileContent) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_file_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) GetName() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Name
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) GetContent() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Content
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) SetName(v string) {
|
||||||
|
x.xxx_hidden_Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileContent) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileContent_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileContent_builder) Build() *FileContent {
|
||||||
|
m0 := &FileContent{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Name = b.Name
|
||||||
|
x.xxx_hidden_Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileListType struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_FileIDs map[string]string `protobuf:"bytes,1,rep,name=fileIDs" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileListType) Reset() {
|
||||||
|
*x = FileListType{}
|
||||||
|
mi := &file_file_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileListType) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*FileListType) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *FileListType) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_file_proto_msgTypes[2]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileListType) GetFileIDs() map[string]string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_FileIDs
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FileListType) SetFileIDs(v map[string]string) {
|
||||||
|
x.xxx_hidden_FileIDs = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileListType_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
FileIDs map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 FileListType_builder) Build() *FileListType {
|
||||||
|
m0 := &FileListType{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_FileIDs = b.FileIDs
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_file_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
const file_file_proto_rawDesc = "" +
|
||||||
|
"\n" +
|
||||||
|
"\n" +
|
||||||
|
"file.proto\x12\x02pb\x1a!google/protobuf/go_features.proto\" \n" +
|
||||||
|
"\x06FileID\x12\x16\n" +
|
||||||
|
"\x06fileID\x18\x01 \x01(\tR\x06fileID\";\n" +
|
||||||
|
"\vFileContent\x12\x12\n" +
|
||||||
|
"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
|
||||||
|
"\acontent\x18\x02 \x01(\fR\acontent\"\x83\x01\n" +
|
||||||
|
"\fFileListType\x127\n" +
|
||||||
|
"\afileIDs\x18\x01 \x03(\v2\x1d.pb.FileListType.FileIDsEntryR\afileIDs\x1a:\n" +
|
||||||
|
"\fFileIDsEntry\x12\x10\n" +
|
||||||
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||||
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
|
var file_file_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||||
|
var file_file_proto_goTypes = []any{
|
||||||
|
(*FileID)(nil), // 0: pb.FileID
|
||||||
|
(*FileContent)(nil), // 1: pb.FileContent
|
||||||
|
(*FileListType)(nil), // 2: pb.FileListType
|
||||||
|
nil, // 3: pb.FileListType.FileIDsEntry
|
||||||
|
}
|
||||||
|
var file_file_proto_depIdxs = []int32{
|
||||||
|
3, // 0: pb.FileListType.fileIDs:type_name -> pb.FileListType.FileIDsEntry
|
||||||
|
1, // [1:1] is the sub-list for method output_type
|
||||||
|
1, // [1:1] is the sub-list for method input_type
|
||||||
|
1, // [1:1] is the sub-list for extension type_name
|
||||||
|
1, // [1:1] is the sub-list for extension extendee
|
||||||
|
0, // [0:1] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_file_proto_init() }
|
||||||
|
func file_file_proto_init() {
|
||||||
|
if File_file_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_file_proto_rawDesc), len(file_file_proto_rawDesc)),
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 4,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_file_proto_goTypes,
|
||||||
|
DependencyIndexes: file_file_proto_depIdxs,
|
||||||
|
MessageInfos: file_file_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_file_proto = out.File
|
||||||
|
file_file_proto_goTypes = nil
|
||||||
|
file_file_proto_depIdxs = nil
|
||||||
|
}
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
// Package pb stores the protobuf implementation for the go-judge gRPC interface
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
//go:generate protoc --proto_path=./ --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative judge.proto request.proto response.proto stream_request.proto stream_response.proto file.proto
|
//go:generate protoc --proto_path=./ --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative judge.proto request.proto response.proto stream_request.proto stream_response.proto file.proto
|
||||||
|
|||||||
@ -4,11 +4,14 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: judge.proto
|
// source: judge.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
@ -26,7 +29,7 @@ var File_judge_proto protoreflect.FileDescriptor
|
|||||||
const file_judge_proto_rawDesc = "" +
|
const file_judge_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\vjudge.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\x1a\x0eresponse.proto\x1a\x14stream_request.proto\x1a\x15stream_response.proto\x1a\n" +
|
"\vjudge.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\x1a\x0eresponse.proto\x1a\x14stream_request.proto\x1a\x15stream_response.proto\x1a\n" +
|
||||||
"file.proto2\x9e\x02\n" +
|
"file.proto\x1a!google/protobuf/go_features.proto2\x9e\x02\n" +
|
||||||
"\bExecutor\x12!\n" +
|
"\bExecutor\x12!\n" +
|
||||||
"\x04Exec\x12\v.pb.Request\x1a\f.pb.Response\x127\n" +
|
"\x04Exec\x12\v.pb.Request\x1a\f.pb.Response\x127\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
@ -38,7 +41,7 @@ const file_judge_proto_rawDesc = "" +
|
|||||||
".pb.FileID\x120\n" +
|
".pb.FileID\x120\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"FileDelete\x12\n" +
|
"FileDelete\x12\n" +
|
||||||
".pb.FileID\x1a\x16.google.protobuf.EmptyB$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
".pb.FileID\x1a\x16.google.protobuf.EmptyB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var file_judge_proto_goTypes = []any{
|
var file_judge_proto_goTypes = []any{
|
||||||
(*Request)(nil), // 0: pb.Request
|
(*Request)(nil), // 0: pb.Request
|
||||||
|
|||||||
@ -4,6 +4,7 @@ package pb;
|
|||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
import "google/protobuf/empty.proto";
|
import "google/protobuf/empty.proto";
|
||||||
import "request.proto";
|
import "request.proto";
|
||||||
@ -11,6 +12,7 @@ import "response.proto";
|
|||||||
import "stream_request.proto";
|
import "stream_request.proto";
|
||||||
import "stream_response.proto";
|
import "stream_response.proto";
|
||||||
import "file.proto";
|
import "file.proto";
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
service Executor {
|
service Executor {
|
||||||
// Exec defines unary RPC to run a program with resource limitations
|
// Exec defines unary RPC to run a program with resource limitations
|
||||||
|
|||||||
102
pb/judge_protoopaque.pb.go
Normal file
102
pb/judge_protoopaque.pb.go
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.36.6
|
||||||
|
// protoc v6.31.1
|
||||||
|
// source: judge.proto
|
||||||
|
|
||||||
|
//go:build protoopaque
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
|
reflect "reflect"
|
||||||
|
unsafe "unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
var File_judge_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
const file_judge_proto_rawDesc = "" +
|
||||||
|
"\n" +
|
||||||
|
"\vjudge.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\x1a\x0eresponse.proto\x1a\x14stream_request.proto\x1a\x15stream_response.proto\x1a\n" +
|
||||||
|
"file.proto\x1a!google/protobuf/go_features.proto2\x9e\x02\n" +
|
||||||
|
"\bExecutor\x12!\n" +
|
||||||
|
"\x04Exec\x12\v.pb.Request\x1a\f.pb.Response\x127\n" +
|
||||||
|
"\n" +
|
||||||
|
"ExecStream\x12\x11.pb.StreamRequest\x1a\x12.pb.StreamResponse(\x010\x01\x124\n" +
|
||||||
|
"\bFileList\x12\x16.google.protobuf.Empty\x1a\x10.pb.FileListType\x12&\n" +
|
||||||
|
"\aFileGet\x12\n" +
|
||||||
|
".pb.FileID\x1a\x0f.pb.FileContent\x12&\n" +
|
||||||
|
"\aFileAdd\x12\x0f.pb.FileContent\x1a\n" +
|
||||||
|
".pb.FileID\x120\n" +
|
||||||
|
"\n" +
|
||||||
|
"FileDelete\x12\n" +
|
||||||
|
".pb.FileID\x1a\x16.google.protobuf.EmptyB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
|
var file_judge_proto_goTypes = []any{
|
||||||
|
(*Request)(nil), // 0: pb.Request
|
||||||
|
(*StreamRequest)(nil), // 1: pb.StreamRequest
|
||||||
|
(*emptypb.Empty)(nil), // 2: google.protobuf.Empty
|
||||||
|
(*FileID)(nil), // 3: pb.FileID
|
||||||
|
(*FileContent)(nil), // 4: pb.FileContent
|
||||||
|
(*Response)(nil), // 5: pb.Response
|
||||||
|
(*StreamResponse)(nil), // 6: pb.StreamResponse
|
||||||
|
(*FileListType)(nil), // 7: pb.FileListType
|
||||||
|
}
|
||||||
|
var file_judge_proto_depIdxs = []int32{
|
||||||
|
0, // 0: pb.Executor.Exec:input_type -> pb.Request
|
||||||
|
1, // 1: pb.Executor.ExecStream:input_type -> pb.StreamRequest
|
||||||
|
2, // 2: pb.Executor.FileList:input_type -> google.protobuf.Empty
|
||||||
|
3, // 3: pb.Executor.FileGet:input_type -> pb.FileID
|
||||||
|
4, // 4: pb.Executor.FileAdd:input_type -> pb.FileContent
|
||||||
|
3, // 5: pb.Executor.FileDelete:input_type -> pb.FileID
|
||||||
|
5, // 6: pb.Executor.Exec:output_type -> pb.Response
|
||||||
|
6, // 7: pb.Executor.ExecStream:output_type -> pb.StreamResponse
|
||||||
|
7, // 8: pb.Executor.FileList:output_type -> pb.FileListType
|
||||||
|
4, // 9: pb.Executor.FileGet:output_type -> pb.FileContent
|
||||||
|
3, // 10: pb.Executor.FileAdd:output_type -> pb.FileID
|
||||||
|
2, // 11: pb.Executor.FileDelete:output_type -> google.protobuf.Empty
|
||||||
|
6, // [6:12] is the sub-list for method output_type
|
||||||
|
0, // [0:6] is the sub-list for method input_type
|
||||||
|
0, // [0:0] is the sub-list for extension type_name
|
||||||
|
0, // [0:0] is the sub-list for extension extendee
|
||||||
|
0, // [0:0] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_judge_proto_init() }
|
||||||
|
func file_judge_proto_init() {
|
||||||
|
if File_judge_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
file_request_proto_init()
|
||||||
|
file_response_proto_init()
|
||||||
|
file_stream_request_proto_init()
|
||||||
|
file_stream_response_proto_init()
|
||||||
|
file_file_proto_init()
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_judge_proto_rawDesc), len(file_judge_proto_rawDesc)),
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 0,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 1,
|
||||||
|
},
|
||||||
|
GoTypes: file_judge_proto_goTypes,
|
||||||
|
DependencyIndexes: file_judge_proto_depIdxs,
|
||||||
|
}.Build()
|
||||||
|
File_judge_proto = out.File
|
||||||
|
file_judge_proto_goTypes = nil
|
||||||
|
file_judge_proto_depIdxs = nil
|
||||||
|
}
|
||||||
668
pb/request.pb.go
668
pb/request.pb.go
@ -4,14 +4,16 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: request.proto
|
// source: request.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -23,7 +25,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Request struct {
|
type Request struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
RequestID string `protobuf:"bytes,1,opt,name=requestID" json:"requestID,omitempty"`
|
RequestID string `protobuf:"bytes,1,opt,name=requestID" json:"requestID,omitempty"`
|
||||||
Cmd []*Request_CmdType `protobuf:"bytes,2,rep,name=cmd" json:"cmd,omitempty"`
|
Cmd []*Request_CmdType `protobuf:"bytes,2,rep,name=cmd" json:"cmd,omitempty"`
|
||||||
PipeMapping []*Request_PipeMap `protobuf:"bytes,3,rep,name=pipeMapping" json:"pipeMapping,omitempty"`
|
PipeMapping []*Request_PipeMap `protobuf:"bytes,3,rep,name=pipeMapping" json:"pipeMapping,omitempty"`
|
||||||
@ -56,11 +58,6 @@ func (x *Request) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request) GetRequestID() string {
|
func (x *Request) GetRequestID() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.RequestID
|
return x.RequestID
|
||||||
@ -82,8 +79,38 @@ func (x *Request) GetPipeMapping() []*Request_PipeMap {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request) SetRequestID(v string) {
|
||||||
|
x.RequestID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request) SetCmd(v []*Request_CmdType) {
|
||||||
|
x.Cmd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request) SetPipeMapping(v []*Request_PipeMap) {
|
||||||
|
x.PipeMapping = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
RequestID string
|
||||||
|
Cmd []*Request_CmdType
|
||||||
|
PipeMapping []*Request_PipeMap
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_builder) Build() *Request {
|
||||||
|
m0 := &Request{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.RequestID = b.RequestID
|
||||||
|
x.Cmd = b.Cmd
|
||||||
|
x.PipeMapping = b.PipeMapping
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_LocalFile struct {
|
type Request_LocalFile struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Src string `protobuf:"bytes,1,opt,name=src" json:"src,omitempty"`
|
Src string `protobuf:"bytes,1,opt,name=src" json:"src,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -114,11 +141,6 @@ func (x *Request_LocalFile) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_LocalFile.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_LocalFile) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_LocalFile) GetSrc() string {
|
func (x *Request_LocalFile) GetSrc() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Src
|
return x.Src
|
||||||
@ -126,8 +148,26 @@ func (x *Request_LocalFile) GetSrc() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_LocalFile) SetSrc(v string) {
|
||||||
|
x.Src = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_LocalFile_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Src string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_LocalFile_builder) Build() *Request_LocalFile {
|
||||||
|
m0 := &Request_LocalFile{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Src = b.Src
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_MemoryFile struct {
|
type Request_MemoryFile struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Content []byte `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
|
Content []byte `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -158,11 +198,6 @@ func (x *Request_MemoryFile) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_MemoryFile.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_MemoryFile) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_MemoryFile) GetContent() []byte {
|
func (x *Request_MemoryFile) GetContent() []byte {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Content
|
return x.Content
|
||||||
@ -170,8 +205,29 @@ func (x *Request_MemoryFile) GetContent() []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_MemoryFile) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_MemoryFile_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_MemoryFile_builder) Build() *Request_MemoryFile {
|
||||||
|
m0 := &Request_MemoryFile{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_CachedFile struct {
|
type Request_CachedFile struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
FileID string `protobuf:"bytes,1,opt,name=fileID" json:"fileID,omitempty"`
|
FileID string `protobuf:"bytes,1,opt,name=fileID" json:"fileID,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -202,11 +258,6 @@ func (x *Request_CachedFile) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_CachedFile.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_CachedFile) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 2}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_CachedFile) GetFileID() string {
|
func (x *Request_CachedFile) GetFileID() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.FileID
|
return x.FileID
|
||||||
@ -214,8 +265,26 @@ func (x *Request_CachedFile) GetFileID() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_CachedFile) SetFileID(v string) {
|
||||||
|
x.FileID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_CachedFile_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
FileID string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_CachedFile_builder) Build() *Request_CachedFile {
|
||||||
|
m0 := &Request_CachedFile{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.FileID = b.FileID
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_PipeCollector struct {
|
type Request_PipeCollector struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
||||||
Max int64 `protobuf:"varint,2,opt,name=max" json:"max,omitempty"`
|
Max int64 `protobuf:"varint,2,opt,name=max" json:"max,omitempty"`
|
||||||
Pipe bool `protobuf:"varint,3,opt,name=pipe" json:"pipe,omitempty"`
|
Pipe bool `protobuf:"varint,3,opt,name=pipe" json:"pipe,omitempty"`
|
||||||
@ -248,11 +317,6 @@ func (x *Request_PipeCollector) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_PipeCollector.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_PipeCollector) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 3}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_PipeCollector) GetName() string {
|
func (x *Request_PipeCollector) GetName() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Name
|
return x.Name
|
||||||
@ -274,8 +338,38 @@ func (x *Request_PipeCollector) GetPipe() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeCollector) SetName(v string) {
|
||||||
|
x.Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeCollector) SetMax(v int64) {
|
||||||
|
x.Max = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeCollector) SetPipe(v bool) {
|
||||||
|
x.Pipe = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_PipeCollector_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Max int64
|
||||||
|
Pipe bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_PipeCollector_builder) Build() *Request_PipeCollector {
|
||||||
|
m0 := &Request_PipeCollector{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Name = b.Name
|
||||||
|
x.Max = b.Max
|
||||||
|
x.Pipe = b.Pipe
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_File struct {
|
type Request_File struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
// Types that are valid to be assigned to File:
|
// Types that are valid to be assigned to File:
|
||||||
//
|
//
|
||||||
// *Request_File_Local
|
// *Request_File_Local
|
||||||
@ -314,11 +408,6 @@ func (x *Request_File) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_File.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_File) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 4}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_File) GetFile() isRequest_File_File {
|
func (x *Request_File) GetFile() isRequest_File_File {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.File
|
return x.File
|
||||||
@ -380,6 +469,229 @@ func (x *Request_File) GetStreamOut() *emptypb.Empty {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetLocal(v *Request_LocalFile) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_Local{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetMemory(v *Request_MemoryFile) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_Memory{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetCached(v *Request_CachedFile) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_Cached{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetPipe(v *Request_PipeCollector) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_Pipe{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetStreamIn(v *emptypb.Empty) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_StreamIn{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) SetStreamOut(v *emptypb.Empty) {
|
||||||
|
if v == nil {
|
||||||
|
x.File = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.File = &Request_File_StreamOut{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasFile() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.File != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasLocal() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_Local)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasMemory() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_Memory)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasCached() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_Cached)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasPipe() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_Pipe)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasStreamIn() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_StreamIn)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) HasStreamOut() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.File.(*Request_File_StreamOut)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearFile() {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearLocal() {
|
||||||
|
if _, ok := x.File.(*Request_File_Local); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearMemory() {
|
||||||
|
if _, ok := x.File.(*Request_File_Memory); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearCached() {
|
||||||
|
if _, ok := x.File.(*Request_File_Cached); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearPipe() {
|
||||||
|
if _, ok := x.File.(*Request_File_Pipe); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearStreamIn() {
|
||||||
|
if _, ok := x.File.(*Request_File_StreamIn); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_File) ClearStreamOut() {
|
||||||
|
if _, ok := x.File.(*Request_File_StreamOut); ok {
|
||||||
|
x.File = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Request_File_File_not_set_case case_Request_File_File = 0
|
||||||
|
const Request_File_Local_case case_Request_File_File = 1
|
||||||
|
const Request_File_Memory_case case_Request_File_File = 2
|
||||||
|
const Request_File_Cached_case case_Request_File_File = 3
|
||||||
|
const Request_File_Pipe_case case_Request_File_File = 4
|
||||||
|
const Request_File_StreamIn_case case_Request_File_File = 5
|
||||||
|
const Request_File_StreamOut_case case_Request_File_File = 6
|
||||||
|
|
||||||
|
func (x *Request_File) WhichFile() case_Request_File_File {
|
||||||
|
if x == nil {
|
||||||
|
return Request_File_File_not_set_case
|
||||||
|
}
|
||||||
|
switch x.File.(type) {
|
||||||
|
case *Request_File_Local:
|
||||||
|
return Request_File_Local_case
|
||||||
|
case *Request_File_Memory:
|
||||||
|
return Request_File_Memory_case
|
||||||
|
case *Request_File_Cached:
|
||||||
|
return Request_File_Cached_case
|
||||||
|
case *Request_File_Pipe:
|
||||||
|
return Request_File_Pipe_case
|
||||||
|
case *Request_File_StreamIn:
|
||||||
|
return Request_File_StreamIn_case
|
||||||
|
case *Request_File_StreamOut:
|
||||||
|
return Request_File_StreamOut_case
|
||||||
|
default:
|
||||||
|
return Request_File_File_not_set_case
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_File_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
// Fields of oneof File:
|
||||||
|
Local *Request_LocalFile
|
||||||
|
Memory *Request_MemoryFile
|
||||||
|
Cached *Request_CachedFile
|
||||||
|
Pipe *Request_PipeCollector
|
||||||
|
// streamIn only valid in streaming RPC
|
||||||
|
StreamIn *emptypb.Empty
|
||||||
|
// streamOut only valid in streaming RPC
|
||||||
|
StreamOut *emptypb.Empty
|
||||||
|
// -- end of File
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_File_builder) Build() *Request_File {
|
||||||
|
m0 := &Request_File{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
if b.Local != nil {
|
||||||
|
x.File = &Request_File_Local{b.Local}
|
||||||
|
}
|
||||||
|
if b.Memory != nil {
|
||||||
|
x.File = &Request_File_Memory{b.Memory}
|
||||||
|
}
|
||||||
|
if b.Cached != nil {
|
||||||
|
x.File = &Request_File_Cached{b.Cached}
|
||||||
|
}
|
||||||
|
if b.Pipe != nil {
|
||||||
|
x.File = &Request_File_Pipe{b.Pipe}
|
||||||
|
}
|
||||||
|
if b.StreamIn != nil {
|
||||||
|
x.File = &Request_File_StreamIn{b.StreamIn}
|
||||||
|
}
|
||||||
|
if b.StreamOut != nil {
|
||||||
|
x.File = &Request_File_StreamOut{b.StreamOut}
|
||||||
|
}
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type case_Request_File_File protoreflect.FieldNumber
|
||||||
|
|
||||||
|
func (x case_Request_File_File) String() string {
|
||||||
|
md := file_request_proto_msgTypes[5].Descriptor()
|
||||||
|
if x == 0 {
|
||||||
|
return "not set"
|
||||||
|
}
|
||||||
|
return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
type isRequest_File_File interface {
|
type isRequest_File_File interface {
|
||||||
isRequest_File_File()
|
isRequest_File_File()
|
||||||
}
|
}
|
||||||
@ -423,7 +735,7 @@ func (*Request_File_StreamIn) isRequest_File_File() {}
|
|||||||
func (*Request_File_StreamOut) isRequest_File_File() {}
|
func (*Request_File_StreamOut) isRequest_File_File() {}
|
||||||
|
|
||||||
type Request_CmdType struct {
|
type Request_CmdType struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Args []string `protobuf:"bytes,1,rep,name=args" json:"args,omitempty"`
|
Args []string `protobuf:"bytes,1,rep,name=args" json:"args,omitempty"`
|
||||||
Env []string `protobuf:"bytes,2,rep,name=env" json:"env,omitempty"`
|
Env []string `protobuf:"bytes,2,rep,name=env" json:"env,omitempty"`
|
||||||
Files []*Request_File `protobuf:"bytes,3,rep,name=files" json:"files,omitempty"`
|
Files []*Request_File `protobuf:"bytes,3,rep,name=files" json:"files,omitempty"`
|
||||||
@ -472,11 +784,6 @@ func (x *Request_CmdType) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_CmdType.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_CmdType) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 5}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_CmdType) GetArgs() []string {
|
func (x *Request_CmdType) GetArgs() []string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Args
|
return x.Args
|
||||||
@ -610,8 +917,134 @@ func (x *Request_CmdType) GetCopyOutMax() uint64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetArgs(v []string) {
|
||||||
|
x.Args = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetEnv(v []string) {
|
||||||
|
x.Env = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetFiles(v []*Request_File) {
|
||||||
|
x.Files = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetTty(v bool) {
|
||||||
|
x.Tty = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCpuTimeLimit(v uint64) {
|
||||||
|
x.CpuTimeLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetClockTimeLimit(v uint64) {
|
||||||
|
x.ClockTimeLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetMemoryLimit(v uint64) {
|
||||||
|
x.MemoryLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetStackLimit(v uint64) {
|
||||||
|
x.StackLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetProcLimit(v uint64) {
|
||||||
|
x.ProcLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCpuRateLimit(v uint64) {
|
||||||
|
x.CpuRateLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCpuSetLimit(v string) {
|
||||||
|
x.CpuSetLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetDataSegmentLimit(v bool) {
|
||||||
|
x.DataSegmentLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetAddressSpaceLimit(v bool) {
|
||||||
|
x.AddressSpaceLimit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCopyIn(v map[string]*Request_File) {
|
||||||
|
x.CopyIn = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetSymlinks(v map[string]string) {
|
||||||
|
x.Symlinks = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCopyOut(v []*Request_CmdCopyOutFile) {
|
||||||
|
x.CopyOut = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCopyOutCached(v []*Request_CmdCopyOutFile) {
|
||||||
|
x.CopyOutCached = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCopyOutDir(v string) {
|
||||||
|
x.CopyOutDir = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdType) SetCopyOutMax(v uint64) {
|
||||||
|
x.CopyOutMax = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_CmdType_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Args []string
|
||||||
|
Env []string
|
||||||
|
Files []*Request_File
|
||||||
|
Tty bool
|
||||||
|
CpuTimeLimit uint64
|
||||||
|
ClockTimeLimit uint64
|
||||||
|
MemoryLimit uint64
|
||||||
|
StackLimit uint64
|
||||||
|
ProcLimit uint64
|
||||||
|
CpuRateLimit uint64
|
||||||
|
CpuSetLimit string
|
||||||
|
DataSegmentLimit bool
|
||||||
|
AddressSpaceLimit bool
|
||||||
|
CopyIn map[string]*Request_File
|
||||||
|
Symlinks map[string]string
|
||||||
|
CopyOut []*Request_CmdCopyOutFile
|
||||||
|
CopyOutCached []*Request_CmdCopyOutFile
|
||||||
|
CopyOutDir string
|
||||||
|
CopyOutMax uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_CmdType_builder) Build() *Request_CmdType {
|
||||||
|
m0 := &Request_CmdType{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Args = b.Args
|
||||||
|
x.Env = b.Env
|
||||||
|
x.Files = b.Files
|
||||||
|
x.Tty = b.Tty
|
||||||
|
x.CpuTimeLimit = b.CpuTimeLimit
|
||||||
|
x.ClockTimeLimit = b.ClockTimeLimit
|
||||||
|
x.MemoryLimit = b.MemoryLimit
|
||||||
|
x.StackLimit = b.StackLimit
|
||||||
|
x.ProcLimit = b.ProcLimit
|
||||||
|
x.CpuRateLimit = b.CpuRateLimit
|
||||||
|
x.CpuSetLimit = b.CpuSetLimit
|
||||||
|
x.DataSegmentLimit = b.DataSegmentLimit
|
||||||
|
x.AddressSpaceLimit = b.AddressSpaceLimit
|
||||||
|
x.CopyIn = b.CopyIn
|
||||||
|
x.Symlinks = b.Symlinks
|
||||||
|
x.CopyOut = b.CopyOut
|
||||||
|
x.CopyOutCached = b.CopyOutCached
|
||||||
|
x.CopyOutDir = b.CopyOutDir
|
||||||
|
x.CopyOutMax = b.CopyOutMax
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_CmdCopyOutFile struct {
|
type Request_CmdCopyOutFile struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
||||||
Optional bool `protobuf:"varint,2,opt,name=optional" json:"optional,omitempty"`
|
Optional bool `protobuf:"varint,2,opt,name=optional" json:"optional,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
@ -643,11 +1076,6 @@ func (x *Request_CmdCopyOutFile) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_CmdCopyOutFile.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_CmdCopyOutFile) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 6}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_CmdCopyOutFile) GetName() string {
|
func (x *Request_CmdCopyOutFile) GetName() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Name
|
return x.Name
|
||||||
@ -662,8 +1090,32 @@ func (x *Request_CmdCopyOutFile) GetOptional() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdCopyOutFile) SetName(v string) {
|
||||||
|
x.Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_CmdCopyOutFile) SetOptional(v bool) {
|
||||||
|
x.Optional = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_CmdCopyOutFile_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Optional bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_CmdCopyOutFile_builder) Build() *Request_CmdCopyOutFile {
|
||||||
|
m0 := &Request_CmdCopyOutFile{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Name = b.Name
|
||||||
|
x.Optional = b.Optional
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_PipeMap struct {
|
type Request_PipeMap struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
In *Request_PipeMap_PipeIndex `protobuf:"bytes,1,opt,name=in" json:"in,omitempty"`
|
In *Request_PipeMap_PipeIndex `protobuf:"bytes,1,opt,name=in" json:"in,omitempty"`
|
||||||
Out *Request_PipeMap_PipeIndex `protobuf:"bytes,2,opt,name=out" json:"out,omitempty"`
|
Out *Request_PipeMap_PipeIndex `protobuf:"bytes,2,opt,name=out" json:"out,omitempty"`
|
||||||
Proxy bool `protobuf:"varint,3,opt,name=proxy" json:"proxy,omitempty"`
|
Proxy bool `protobuf:"varint,3,opt,name=proxy" json:"proxy,omitempty"`
|
||||||
@ -698,11 +1150,6 @@ func (x *Request_PipeMap) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_PipeMap.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_PipeMap) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 7}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_PipeMap) GetIn() *Request_PipeMap_PipeIndex {
|
func (x *Request_PipeMap) GetIn() *Request_PipeMap_PipeIndex {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.In
|
return x.In
|
||||||
@ -738,8 +1185,72 @@ func (x *Request_PipeMap) GetMax() uint64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) SetIn(v *Request_PipeMap_PipeIndex) {
|
||||||
|
x.In = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) SetOut(v *Request_PipeMap_PipeIndex) {
|
||||||
|
x.Out = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) SetProxy(v bool) {
|
||||||
|
x.Proxy = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) SetName(v string) {
|
||||||
|
x.Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) SetMax(v uint64) {
|
||||||
|
x.Max = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) HasIn() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.In != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) HasOut() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.Out != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) ClearIn() {
|
||||||
|
x.In = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap) ClearOut() {
|
||||||
|
x.Out = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_PipeMap_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
In *Request_PipeMap_PipeIndex
|
||||||
|
Out *Request_PipeMap_PipeIndex
|
||||||
|
Proxy bool
|
||||||
|
Name string
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_PipeMap_builder) Build() *Request_PipeMap {
|
||||||
|
m0 := &Request_PipeMap{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.In = b.In
|
||||||
|
x.Out = b.Out
|
||||||
|
x.Proxy = b.Proxy
|
||||||
|
x.Name = b.Name
|
||||||
|
x.Max = b.Max
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Request_PipeMap_PipeIndex struct {
|
type Request_PipeMap_PipeIndex struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Index int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
Index int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
||||||
Fd int32 `protobuf:"varint,2,opt,name=fd" json:"fd,omitempty"`
|
Fd int32 `protobuf:"varint,2,opt,name=fd" json:"fd,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
@ -771,11 +1282,6 @@ func (x *Request_PipeMap_PipeIndex) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Request_PipeMap_PipeIndex.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Request_PipeMap_PipeIndex) Descriptor() ([]byte, []int) {
|
|
||||||
return file_request_proto_rawDescGZIP(), []int{0, 7, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Request_PipeMap_PipeIndex) GetIndex() int32 {
|
func (x *Request_PipeMap_PipeIndex) GetIndex() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Index
|
return x.Index
|
||||||
@ -790,11 +1296,35 @@ func (x *Request_PipeMap_PipeIndex) GetFd() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap_PipeIndex) SetIndex(v int32) {
|
||||||
|
x.Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Request_PipeMap_PipeIndex) SetFd(v int32) {
|
||||||
|
x.Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Request_PipeMap_PipeIndex_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index int32
|
||||||
|
Fd int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Request_PipeMap_PipeIndex_builder) Build() *Request_PipeMap_PipeIndex {
|
||||||
|
m0 := &Request_PipeMap_PipeIndex{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Index = b.Index
|
||||||
|
x.Fd = b.Fd
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
var File_request_proto protoreflect.FileDescriptor
|
var File_request_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_request_proto_rawDesc = "" +
|
const file_request_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\rrequest.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\"\x8f\x0e\n" +
|
"\rrequest.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a!google/protobuf/go_features.proto\"\x8f\x0e\n" +
|
||||||
"\aRequest\x12\x1c\n" +
|
"\aRequest\x12\x1c\n" +
|
||||||
"\trequestID\x18\x01 \x01(\tR\trequestID\x12%\n" +
|
"\trequestID\x18\x01 \x01(\tR\trequestID\x12%\n" +
|
||||||
"\x03cmd\x18\x02 \x03(\v2\x13.pb.Request.CmdTypeR\x03cmd\x125\n" +
|
"\x03cmd\x18\x02 \x03(\v2\x13.pb.Request.CmdTypeR\x03cmd\x125\n" +
|
||||||
@ -863,19 +1393,7 @@ const file_request_proto_rawDesc = "" +
|
|||||||
"\x03max\x18\x05 \x01(\x04R\x03max\x1a1\n" +
|
"\x03max\x18\x05 \x01(\x04R\x03max\x1a1\n" +
|
||||||
"\tPipeIndex\x12\x14\n" +
|
"\tPipeIndex\x12\x14\n" +
|
||||||
"\x05index\x18\x01 \x01(\x05R\x05index\x12\x0e\n" +
|
"\x05index\x18\x01 \x01(\x05R\x05index\x12\x0e\n" +
|
||||||
"\x02fd\x18\x02 \x01(\x05R\x02fdB$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
"\x02fd\x18\x02 \x01(\x05R\x02fdB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var (
|
|
||||||
file_request_proto_rawDescOnce sync.Once
|
|
||||||
file_request_proto_rawDescData []byte
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_request_proto_rawDescGZIP() []byte {
|
|
||||||
file_request_proto_rawDescOnce.Do(func() {
|
|
||||||
file_request_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_request_proto_rawDesc), len(file_request_proto_rawDesc)))
|
|
||||||
})
|
|
||||||
return file_request_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_request_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
var file_request_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
||||||
var file_request_proto_goTypes = []any{
|
var file_request_proto_goTypes = []any{
|
||||||
|
|||||||
@ -4,8 +4,10 @@ package pb;
|
|||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
import "google/protobuf/empty.proto";
|
import "google/protobuf/empty.proto";
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
message Request {
|
message Request {
|
||||||
message LocalFile { string src = 1; }
|
message LocalFile { string src = 1; }
|
||||||
|
|||||||
1463
pb/request_protoopaque.pb.go
Normal file
1463
pb/request_protoopaque.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
@ -4,13 +4,15 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: response.proto
|
// source: response.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -86,11 +88,6 @@ func (x Response_FileError_ErrorType) Number() protoreflect.EnumNumber {
|
|||||||
return protoreflect.EnumNumber(x)
|
return protoreflect.EnumNumber(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Response_FileError_ErrorType.Descriptor instead.
|
|
||||||
func (Response_FileError_ErrorType) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_response_proto_rawDescGZIP(), []int{0, 0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Response_Result_StatusType int32
|
type Response_Result_StatusType int32
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -168,13 +165,8 @@ func (x Response_Result_StatusType) Number() protoreflect.EnumNumber {
|
|||||||
return protoreflect.EnumNumber(x)
|
return protoreflect.EnumNumber(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Response_Result_StatusType.Descriptor instead.
|
|
||||||
func (Response_Result_StatusType) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_response_proto_rawDescGZIP(), []int{0, 1, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Response struct {
|
type Response struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
RequestID string `protobuf:"bytes,1,opt,name=requestID" json:"requestID,omitempty"`
|
RequestID string `protobuf:"bytes,1,opt,name=requestID" json:"requestID,omitempty"`
|
||||||
Results []*Response_Result `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
|
Results []*Response_Result `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
|
||||||
Error string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
|
Error string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
|
||||||
@ -207,11 +199,6 @@ func (x *Response) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Response.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Response) Descriptor() ([]byte, []int) {
|
|
||||||
return file_response_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Response) GetRequestID() string {
|
func (x *Response) GetRequestID() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.RequestID
|
return x.RequestID
|
||||||
@ -233,8 +220,38 @@ func (x *Response) GetError() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetRequestID(v string) {
|
||||||
|
x.RequestID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetResults(v []*Response_Result) {
|
||||||
|
x.Results = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetError(v string) {
|
||||||
|
x.Error = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
RequestID string
|
||||||
|
Results []*Response_Result
|
||||||
|
Error string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_builder) Build() *Response {
|
||||||
|
m0 := &Response{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.RequestID = b.RequestID
|
||||||
|
x.Results = b.Results
|
||||||
|
x.Error = b.Error
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Response_FileError struct {
|
type Response_FileError struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
||||||
Type Response_FileError_ErrorType `protobuf:"varint,2,opt,name=type,enum=pb.Response_FileError_ErrorType" json:"type,omitempty"`
|
Type Response_FileError_ErrorType `protobuf:"varint,2,opt,name=type,enum=pb.Response_FileError_ErrorType" json:"type,omitempty"`
|
||||||
Message string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
|
Message string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
|
||||||
@ -267,11 +284,6 @@ func (x *Response_FileError) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Response_FileError.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Response_FileError) Descriptor() ([]byte, []int) {
|
|
||||||
return file_response_proto_rawDescGZIP(), []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Response_FileError) GetName() string {
|
func (x *Response_FileError) GetName() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Name
|
return x.Name
|
||||||
@ -293,8 +305,38 @@ func (x *Response_FileError) GetMessage() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetName(v string) {
|
||||||
|
x.Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetType(v Response_FileError_ErrorType) {
|
||||||
|
x.Type = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetMessage(v string) {
|
||||||
|
x.Message = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_FileError_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Type Response_FileError_ErrorType
|
||||||
|
Message string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_FileError_builder) Build() *Response_FileError {
|
||||||
|
m0 := &Response_FileError{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Name = b.Name
|
||||||
|
x.Type = b.Type
|
||||||
|
x.Message = b.Message
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type Response_Result struct {
|
type Response_Result struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Status Response_Result_StatusType `protobuf:"varint,1,opt,name=status,enum=pb.Response_Result_StatusType" json:"status,omitempty"`
|
Status Response_Result_StatusType `protobuf:"varint,1,opt,name=status,enum=pb.Response_Result_StatusType" json:"status,omitempty"`
|
||||||
ExitStatus int32 `protobuf:"varint,2,opt,name=exitStatus" json:"exitStatus,omitempty"`
|
ExitStatus int32 `protobuf:"varint,2,opt,name=exitStatus" json:"exitStatus,omitempty"`
|
||||||
Error string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
|
Error string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
|
||||||
@ -334,11 +376,6 @@ func (x *Response_Result) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use Response_Result.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Response_Result) Descriptor() ([]byte, []int) {
|
|
||||||
return file_response_proto_rawDescGZIP(), []int{0, 1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Response_Result) GetStatus() Response_Result_StatusType {
|
func (x *Response_Result) GetStatus() Response_Result_StatusType {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Status
|
return x.Status
|
||||||
@ -409,11 +446,83 @@ func (x *Response_Result) GetFileError() []*Response_FileError {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetStatus(v Response_Result_StatusType) {
|
||||||
|
x.Status = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetExitStatus(v int32) {
|
||||||
|
x.ExitStatus = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetError(v string) {
|
||||||
|
x.Error = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetTime(v uint64) {
|
||||||
|
x.Time = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetRunTime(v uint64) {
|
||||||
|
x.RunTime = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetProcPeak(v uint64) {
|
||||||
|
x.ProcPeak = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetMemory(v uint64) {
|
||||||
|
x.Memory = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFiles(v map[string][]byte) {
|
||||||
|
x.Files = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFileIDs(v map[string]string) {
|
||||||
|
x.FileIDs = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFileError(v []*Response_FileError) {
|
||||||
|
x.FileError = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_Result_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Status Response_Result_StatusType
|
||||||
|
ExitStatus int32
|
||||||
|
Error string
|
||||||
|
Time uint64
|
||||||
|
RunTime uint64
|
||||||
|
ProcPeak uint64
|
||||||
|
Memory uint64
|
||||||
|
Files map[string][]byte
|
||||||
|
FileIDs map[string]string
|
||||||
|
FileError []*Response_FileError
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_Result_builder) Build() *Response_Result {
|
||||||
|
m0 := &Response_Result{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Status = b.Status
|
||||||
|
x.ExitStatus = b.ExitStatus
|
||||||
|
x.Error = b.Error
|
||||||
|
x.Time = b.Time
|
||||||
|
x.RunTime = b.RunTime
|
||||||
|
x.ProcPeak = b.ProcPeak
|
||||||
|
x.Memory = b.Memory
|
||||||
|
x.Files = b.Files
|
||||||
|
x.FileIDs = b.FileIDs
|
||||||
|
x.FileError = b.FileError
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
var File_response_proto protoreflect.FileDescriptor
|
var File_response_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_response_proto_rawDesc = "" +
|
const file_response_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x0eresponse.proto\x12\x02pb\"\xe6\t\n" +
|
"\x0eresponse.proto\x12\x02pb\x1a!google/protobuf/go_features.proto\"\xe6\t\n" +
|
||||||
"\bResponse\x12\x1c\n" +
|
"\bResponse\x12\x1c\n" +
|
||||||
"\trequestID\x18\x01 \x01(\tR\trequestID\x12-\n" +
|
"\trequestID\x18\x01 \x01(\tR\trequestID\x12-\n" +
|
||||||
"\aresults\x18\x02 \x03(\v2\x13.pb.Response.ResultR\aresults\x12\x14\n" +
|
"\aresults\x18\x02 \x03(\v2\x13.pb.Response.ResultR\aresults\x12\x14\n" +
|
||||||
@ -470,19 +579,7 @@ const file_response_proto_rawDesc = "" +
|
|||||||
"\x12\x13\n" +
|
"\x12\x13\n" +
|
||||||
"\x0fJudgementFailed\x10\v\x12\x16\n" +
|
"\x0fJudgementFailed\x10\v\x12\x16\n" +
|
||||||
"\x12InvalidInteraction\x10\f\x12\x11\n" +
|
"\x12InvalidInteraction\x10\f\x12\x11\n" +
|
||||||
"\rInternalError\x10\rB$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
"\rInternalError\x10\rB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var (
|
|
||||||
file_response_proto_rawDescOnce sync.Once
|
|
||||||
file_response_proto_rawDescData []byte
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_response_proto_rawDescGZIP() []byte {
|
|
||||||
file_response_proto_rawDescOnce.Do(func() {
|
|
||||||
file_response_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_response_proto_rawDesc), len(file_response_proto_rawDesc)))
|
|
||||||
})
|
|
||||||
return file_response_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_response_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
var file_response_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
var file_response_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
var file_response_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
edition = "2023";
|
edition = "2023";
|
||||||
|
|
||||||
package pb;
|
package pb;
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
message Response {
|
message Response {
|
||||||
message FileError {
|
message FileError {
|
||||||
|
|||||||
636
pb/response_protoopaque.pb.go
Normal file
636
pb/response_protoopaque.pb.go
Normal file
@ -0,0 +1,636 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.36.6
|
||||||
|
// protoc v6.31.1
|
||||||
|
// source: response.proto
|
||||||
|
|
||||||
|
//go:build protoopaque
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
|
reflect "reflect"
|
||||||
|
unsafe "unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type Response_FileError_ErrorType int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
Response_FileError_CopyInOpenFile Response_FileError_ErrorType = 0
|
||||||
|
Response_FileError_CopyInCreateFile Response_FileError_ErrorType = 1
|
||||||
|
Response_FileError_CopyInCopyContent Response_FileError_ErrorType = 2
|
||||||
|
Response_FileError_CopyOutOpen Response_FileError_ErrorType = 3
|
||||||
|
Response_FileError_CopyOutNotRegularFile Response_FileError_ErrorType = 4
|
||||||
|
Response_FileError_CopyOutSizeExceeded Response_FileError_ErrorType = 5
|
||||||
|
Response_FileError_CopyOutCreateFile Response_FileError_ErrorType = 6
|
||||||
|
Response_FileError_CopyOutCopyContent Response_FileError_ErrorType = 7
|
||||||
|
Response_FileError_CollectSizeExceeded Response_FileError_ErrorType = 8
|
||||||
|
Response_FileError_Symlink Response_FileError_ErrorType = 9
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for Response_FileError_ErrorType.
|
||||||
|
var (
|
||||||
|
Response_FileError_ErrorType_name = map[int32]string{
|
||||||
|
0: "CopyInOpenFile",
|
||||||
|
1: "CopyInCreateFile",
|
||||||
|
2: "CopyInCopyContent",
|
||||||
|
3: "CopyOutOpen",
|
||||||
|
4: "CopyOutNotRegularFile",
|
||||||
|
5: "CopyOutSizeExceeded",
|
||||||
|
6: "CopyOutCreateFile",
|
||||||
|
7: "CopyOutCopyContent",
|
||||||
|
8: "CollectSizeExceeded",
|
||||||
|
9: "Symlink",
|
||||||
|
}
|
||||||
|
Response_FileError_ErrorType_value = map[string]int32{
|
||||||
|
"CopyInOpenFile": 0,
|
||||||
|
"CopyInCreateFile": 1,
|
||||||
|
"CopyInCopyContent": 2,
|
||||||
|
"CopyOutOpen": 3,
|
||||||
|
"CopyOutNotRegularFile": 4,
|
||||||
|
"CopyOutSizeExceeded": 5,
|
||||||
|
"CopyOutCreateFile": 6,
|
||||||
|
"CopyOutCopyContent": 7,
|
||||||
|
"CollectSizeExceeded": 8,
|
||||||
|
"Symlink": 9,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x Response_FileError_ErrorType) Enum() *Response_FileError_ErrorType {
|
||||||
|
p := new(Response_FileError_ErrorType)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Response_FileError_ErrorType) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Response_FileError_ErrorType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_response_proto_enumTypes[0].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Response_FileError_ErrorType) Type() protoreflect.EnumType {
|
||||||
|
return &file_response_proto_enumTypes[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Response_FileError_ErrorType) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_Result_StatusType int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
Response_Result_Invalid Response_Result_StatusType = 0
|
||||||
|
Response_Result_Accepted Response_Result_StatusType = 1
|
||||||
|
Response_Result_WrongAnswer Response_Result_StatusType = 2 // Not used
|
||||||
|
Response_Result_PartiallyCorrect Response_Result_StatusType = 3 // Not used
|
||||||
|
Response_Result_MemoryLimitExceeded Response_Result_StatusType = 4
|
||||||
|
Response_Result_TimeLimitExceeded Response_Result_StatusType = 5
|
||||||
|
Response_Result_OutputLimitExceeded Response_Result_StatusType = 6
|
||||||
|
Response_Result_FileError Response_Result_StatusType = 7
|
||||||
|
Response_Result_NonZeroExitStatus Response_Result_StatusType = 8
|
||||||
|
Response_Result_Signalled Response_Result_StatusType = 9
|
||||||
|
Response_Result_DangerousSyscall Response_Result_StatusType = 10
|
||||||
|
Response_Result_JudgementFailed Response_Result_StatusType = 11 // Not used
|
||||||
|
Response_Result_InvalidInteraction Response_Result_StatusType = 12 // Not used
|
||||||
|
Response_Result_InternalError Response_Result_StatusType = 13
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for Response_Result_StatusType.
|
||||||
|
var (
|
||||||
|
Response_Result_StatusType_name = map[int32]string{
|
||||||
|
0: "Invalid",
|
||||||
|
1: "Accepted",
|
||||||
|
2: "WrongAnswer",
|
||||||
|
3: "PartiallyCorrect",
|
||||||
|
4: "MemoryLimitExceeded",
|
||||||
|
5: "TimeLimitExceeded",
|
||||||
|
6: "OutputLimitExceeded",
|
||||||
|
7: "FileError",
|
||||||
|
8: "NonZeroExitStatus",
|
||||||
|
9: "Signalled",
|
||||||
|
10: "DangerousSyscall",
|
||||||
|
11: "JudgementFailed",
|
||||||
|
12: "InvalidInteraction",
|
||||||
|
13: "InternalError",
|
||||||
|
}
|
||||||
|
Response_Result_StatusType_value = map[string]int32{
|
||||||
|
"Invalid": 0,
|
||||||
|
"Accepted": 1,
|
||||||
|
"WrongAnswer": 2,
|
||||||
|
"PartiallyCorrect": 3,
|
||||||
|
"MemoryLimitExceeded": 4,
|
||||||
|
"TimeLimitExceeded": 5,
|
||||||
|
"OutputLimitExceeded": 6,
|
||||||
|
"FileError": 7,
|
||||||
|
"NonZeroExitStatus": 8,
|
||||||
|
"Signalled": 9,
|
||||||
|
"DangerousSyscall": 10,
|
||||||
|
"JudgementFailed": 11,
|
||||||
|
"InvalidInteraction": 12,
|
||||||
|
"InternalError": 13,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x Response_Result_StatusType) Enum() *Response_Result_StatusType {
|
||||||
|
p := new(Response_Result_StatusType)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Response_Result_StatusType) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Response_Result_StatusType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_response_proto_enumTypes[1].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Response_Result_StatusType) Type() protoreflect.EnumType {
|
||||||
|
return &file_response_proto_enumTypes[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Response_Result_StatusType) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_RequestID string `protobuf:"bytes,1,opt,name=requestID"`
|
||||||
|
xxx_hidden_Results *[]*Response_Result `protobuf:"bytes,2,rep,name=results"`
|
||||||
|
xxx_hidden_Error string `protobuf:"bytes,3,opt,name=error"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) Reset() {
|
||||||
|
*x = Response{}
|
||||||
|
mi := &file_response_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Response) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *Response) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_response_proto_msgTypes[0]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) GetRequestID() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_RequestID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) GetResults() []*Response_Result {
|
||||||
|
if x != nil {
|
||||||
|
if x.xxx_hidden_Results != nil {
|
||||||
|
return *x.xxx_hidden_Results
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) GetError() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Error
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetRequestID(v string) {
|
||||||
|
x.xxx_hidden_RequestID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetResults(v []*Response_Result) {
|
||||||
|
x.xxx_hidden_Results = &v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response) SetError(v string) {
|
||||||
|
x.xxx_hidden_Error = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
RequestID string
|
||||||
|
Results []*Response_Result
|
||||||
|
Error string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_builder) Build() *Response {
|
||||||
|
m0 := &Response{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_RequestID = b.RequestID
|
||||||
|
x.xxx_hidden_Results = &b.Results
|
||||||
|
x.xxx_hidden_Error = b.Error
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_FileError struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Name string `protobuf:"bytes,1,opt,name=name"`
|
||||||
|
xxx_hidden_Type Response_FileError_ErrorType `protobuf:"varint,2,opt,name=type,enum=pb.Response_FileError_ErrorType"`
|
||||||
|
xxx_hidden_Message string `protobuf:"bytes,3,opt,name=message"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) Reset() {
|
||||||
|
*x = Response_FileError{}
|
||||||
|
mi := &file_response_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Response_FileError) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *Response_FileError) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_response_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) GetName() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Name
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) GetType() Response_FileError_ErrorType {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Type
|
||||||
|
}
|
||||||
|
return Response_FileError_CopyInOpenFile
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) GetMessage() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Message
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetName(v string) {
|
||||||
|
x.xxx_hidden_Name = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetType(v Response_FileError_ErrorType) {
|
||||||
|
x.xxx_hidden_Type = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_FileError) SetMessage(v string) {
|
||||||
|
x.xxx_hidden_Message = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_FileError_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Type Response_FileError_ErrorType
|
||||||
|
Message string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_FileError_builder) Build() *Response_FileError {
|
||||||
|
m0 := &Response_FileError{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Name = b.Name
|
||||||
|
x.xxx_hidden_Type = b.Type
|
||||||
|
x.xxx_hidden_Message = b.Message
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_Result struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Status Response_Result_StatusType `protobuf:"varint,1,opt,name=status,enum=pb.Response_Result_StatusType"`
|
||||||
|
xxx_hidden_ExitStatus int32 `protobuf:"varint,2,opt,name=exitStatus"`
|
||||||
|
xxx_hidden_Error string `protobuf:"bytes,3,opt,name=error"`
|
||||||
|
xxx_hidden_Time uint64 `protobuf:"varint,4,opt,name=time"`
|
||||||
|
xxx_hidden_RunTime uint64 `protobuf:"varint,8,opt,name=runTime"`
|
||||||
|
xxx_hidden_ProcPeak uint64 `protobuf:"varint,10,opt,name=procPeak"`
|
||||||
|
xxx_hidden_Memory uint64 `protobuf:"varint,5,opt,name=memory"`
|
||||||
|
xxx_hidden_Files map[string][]byte `protobuf:"bytes,6,rep,name=files" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
||||||
|
xxx_hidden_FileIDs map[string]string `protobuf:"bytes,7,rep,name=fileIDs" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
||||||
|
xxx_hidden_FileError *[]*Response_FileError `protobuf:"bytes,9,rep,name=fileError"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) Reset() {
|
||||||
|
*x = Response_Result{}
|
||||||
|
mi := &file_response_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Response_Result) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *Response_Result) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_response_proto_msgTypes[2]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetStatus() Response_Result_StatusType {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Status
|
||||||
|
}
|
||||||
|
return Response_Result_Invalid
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetExitStatus() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_ExitStatus
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetError() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Error
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetTime() uint64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Time
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetRunTime() uint64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_RunTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetProcPeak() uint64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_ProcPeak
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetMemory() uint64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Memory
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetFiles() map[string][]byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Files
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetFileIDs() map[string]string {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_FileIDs
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) GetFileError() []*Response_FileError {
|
||||||
|
if x != nil {
|
||||||
|
if x.xxx_hidden_FileError != nil {
|
||||||
|
return *x.xxx_hidden_FileError
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetStatus(v Response_Result_StatusType) {
|
||||||
|
x.xxx_hidden_Status = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetExitStatus(v int32) {
|
||||||
|
x.xxx_hidden_ExitStatus = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetError(v string) {
|
||||||
|
x.xxx_hidden_Error = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetTime(v uint64) {
|
||||||
|
x.xxx_hidden_Time = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetRunTime(v uint64) {
|
||||||
|
x.xxx_hidden_RunTime = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetProcPeak(v uint64) {
|
||||||
|
x.xxx_hidden_ProcPeak = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetMemory(v uint64) {
|
||||||
|
x.xxx_hidden_Memory = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFiles(v map[string][]byte) {
|
||||||
|
x.xxx_hidden_Files = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFileIDs(v map[string]string) {
|
||||||
|
x.xxx_hidden_FileIDs = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Response_Result) SetFileError(v []*Response_FileError) {
|
||||||
|
x.xxx_hidden_FileError = &v
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response_Result_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Status Response_Result_StatusType
|
||||||
|
ExitStatus int32
|
||||||
|
Error string
|
||||||
|
Time uint64
|
||||||
|
RunTime uint64
|
||||||
|
ProcPeak uint64
|
||||||
|
Memory uint64
|
||||||
|
Files map[string][]byte
|
||||||
|
FileIDs map[string]string
|
||||||
|
FileError []*Response_FileError
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 Response_Result_builder) Build() *Response_Result {
|
||||||
|
m0 := &Response_Result{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Status = b.Status
|
||||||
|
x.xxx_hidden_ExitStatus = b.ExitStatus
|
||||||
|
x.xxx_hidden_Error = b.Error
|
||||||
|
x.xxx_hidden_Time = b.Time
|
||||||
|
x.xxx_hidden_RunTime = b.RunTime
|
||||||
|
x.xxx_hidden_ProcPeak = b.ProcPeak
|
||||||
|
x.xxx_hidden_Memory = b.Memory
|
||||||
|
x.xxx_hidden_Files = b.Files
|
||||||
|
x.xxx_hidden_FileIDs = b.FileIDs
|
||||||
|
x.xxx_hidden_FileError = &b.FileError
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_response_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
const file_response_proto_rawDesc = "" +
|
||||||
|
"\n" +
|
||||||
|
"\x0eresponse.proto\x12\x02pb\x1a!google/protobuf/go_features.proto\"\xe6\t\n" +
|
||||||
|
"\bResponse\x12\x1c\n" +
|
||||||
|
"\trequestID\x18\x01 \x01(\tR\trequestID\x12-\n" +
|
||||||
|
"\aresults\x18\x02 \x03(\v2\x13.pb.Response.ResultR\aresults\x12\x14\n" +
|
||||||
|
"\x05error\x18\x03 \x01(\tR\x05error\x1a\xd8\x02\n" +
|
||||||
|
"\tFileError\x12\x12\n" +
|
||||||
|
"\x04name\x18\x01 \x01(\tR\x04name\x124\n" +
|
||||||
|
"\x04type\x18\x02 \x01(\x0e2 .pb.Response.FileError.ErrorTypeR\x04type\x12\x18\n" +
|
||||||
|
"\amessage\x18\x03 \x01(\tR\amessage\"\xe6\x01\n" +
|
||||||
|
"\tErrorType\x12\x12\n" +
|
||||||
|
"\x0eCopyInOpenFile\x10\x00\x12\x14\n" +
|
||||||
|
"\x10CopyInCreateFile\x10\x01\x12\x15\n" +
|
||||||
|
"\x11CopyInCopyContent\x10\x02\x12\x0f\n" +
|
||||||
|
"\vCopyOutOpen\x10\x03\x12\x19\n" +
|
||||||
|
"\x15CopyOutNotRegularFile\x10\x04\x12\x17\n" +
|
||||||
|
"\x13CopyOutSizeExceeded\x10\x05\x12\x15\n" +
|
||||||
|
"\x11CopyOutCreateFile\x10\x06\x12\x16\n" +
|
||||||
|
"\x12CopyOutCopyContent\x10\a\x12\x17\n" +
|
||||||
|
"\x13CollectSizeExceeded\x10\b\x12\v\n" +
|
||||||
|
"\aSymlink\x10\t\x1a\x9b\x06\n" +
|
||||||
|
"\x06Result\x126\n" +
|
||||||
|
"\x06status\x18\x01 \x01(\x0e2\x1e.pb.Response.Result.StatusTypeR\x06status\x12\x1e\n" +
|
||||||
|
"\n" +
|
||||||
|
"exitStatus\x18\x02 \x01(\x05R\n" +
|
||||||
|
"exitStatus\x12\x14\n" +
|
||||||
|
"\x05error\x18\x03 \x01(\tR\x05error\x12\x12\n" +
|
||||||
|
"\x04time\x18\x04 \x01(\x04R\x04time\x12\x18\n" +
|
||||||
|
"\arunTime\x18\b \x01(\x04R\arunTime\x12\x1a\n" +
|
||||||
|
"\bprocPeak\x18\n" +
|
||||||
|
" \x01(\x04R\bprocPeak\x12\x16\n" +
|
||||||
|
"\x06memory\x18\x05 \x01(\x04R\x06memory\x124\n" +
|
||||||
|
"\x05files\x18\x06 \x03(\v2\x1e.pb.Response.Result.FilesEntryR\x05files\x12:\n" +
|
||||||
|
"\afileIDs\x18\a \x03(\v2 .pb.Response.Result.FileIDsEntryR\afileIDs\x124\n" +
|
||||||
|
"\tfileError\x18\t \x03(\v2\x16.pb.Response.FileErrorR\tfileError\x1a8\n" +
|
||||||
|
"\n" +
|
||||||
|
"FilesEntry\x12\x10\n" +
|
||||||
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||||
|
"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1a:\n" +
|
||||||
|
"\fFileIDsEntry\x12\x10\n" +
|
||||||
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||||
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa2\x02\n" +
|
||||||
|
"\n" +
|
||||||
|
"StatusType\x12\v\n" +
|
||||||
|
"\aInvalid\x10\x00\x12\f\n" +
|
||||||
|
"\bAccepted\x10\x01\x12\x0f\n" +
|
||||||
|
"\vWrongAnswer\x10\x02\x12\x14\n" +
|
||||||
|
"\x10PartiallyCorrect\x10\x03\x12\x17\n" +
|
||||||
|
"\x13MemoryLimitExceeded\x10\x04\x12\x15\n" +
|
||||||
|
"\x11TimeLimitExceeded\x10\x05\x12\x17\n" +
|
||||||
|
"\x13OutputLimitExceeded\x10\x06\x12\r\n" +
|
||||||
|
"\tFileError\x10\a\x12\x15\n" +
|
||||||
|
"\x11NonZeroExitStatus\x10\b\x12\r\n" +
|
||||||
|
"\tSignalled\x10\t\x12\x14\n" +
|
||||||
|
"\x10DangerousSyscall\x10\n" +
|
||||||
|
"\x12\x13\n" +
|
||||||
|
"\x0fJudgementFailed\x10\v\x12\x16\n" +
|
||||||
|
"\x12InvalidInteraction\x10\f\x12\x11\n" +
|
||||||
|
"\rInternalError\x10\rB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
|
var file_response_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
|
var file_response_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||||
|
var file_response_proto_goTypes = []any{
|
||||||
|
(Response_FileError_ErrorType)(0), // 0: pb.Response.FileError.ErrorType
|
||||||
|
(Response_Result_StatusType)(0), // 1: pb.Response.Result.StatusType
|
||||||
|
(*Response)(nil), // 2: pb.Response
|
||||||
|
(*Response_FileError)(nil), // 3: pb.Response.FileError
|
||||||
|
(*Response_Result)(nil), // 4: pb.Response.Result
|
||||||
|
nil, // 5: pb.Response.Result.FilesEntry
|
||||||
|
nil, // 6: pb.Response.Result.FileIDsEntry
|
||||||
|
}
|
||||||
|
var file_response_proto_depIdxs = []int32{
|
||||||
|
4, // 0: pb.Response.results:type_name -> pb.Response.Result
|
||||||
|
0, // 1: pb.Response.FileError.type:type_name -> pb.Response.FileError.ErrorType
|
||||||
|
1, // 2: pb.Response.Result.status:type_name -> pb.Response.Result.StatusType
|
||||||
|
5, // 3: pb.Response.Result.files:type_name -> pb.Response.Result.FilesEntry
|
||||||
|
6, // 4: pb.Response.Result.fileIDs:type_name -> pb.Response.Result.FileIDsEntry
|
||||||
|
3, // 5: pb.Response.Result.fileError:type_name -> pb.Response.FileError
|
||||||
|
6, // [6:6] is the sub-list for method output_type
|
||||||
|
6, // [6:6] is the sub-list for method input_type
|
||||||
|
6, // [6:6] is the sub-list for extension type_name
|
||||||
|
6, // [6:6] is the sub-list for extension extendee
|
||||||
|
0, // [0:6] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_response_proto_init() }
|
||||||
|
func file_response_proto_init() {
|
||||||
|
if File_response_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_response_proto_rawDesc), len(file_response_proto_rawDesc)),
|
||||||
|
NumEnums: 2,
|
||||||
|
NumMessages: 5,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_response_proto_goTypes,
|
||||||
|
DependencyIndexes: file_response_proto_depIdxs,
|
||||||
|
EnumInfos: file_response_proto_enumTypes,
|
||||||
|
MessageInfos: file_response_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_response_proto = out.File
|
||||||
|
file_response_proto_goTypes = nil
|
||||||
|
file_response_proto_depIdxs = nil
|
||||||
|
}
|
||||||
@ -4,14 +4,16 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: stream_request.proto
|
// source: stream_request.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -23,7 +25,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type StreamRequest struct {
|
type StreamRequest struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
// Types that are valid to be assigned to Request:
|
// Types that are valid to be assigned to Request:
|
||||||
//
|
//
|
||||||
// *StreamRequest_ExecRequest
|
// *StreamRequest_ExecRequest
|
||||||
@ -60,11 +62,6 @@ func (x *StreamRequest) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use StreamRequest.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamRequest) Descriptor() ([]byte, []int) {
|
|
||||||
return file_stream_request_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamRequest) GetRequest() isStreamRequest_Request {
|
func (x *StreamRequest) GetRequest() isStreamRequest_Request {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Request
|
return x.Request
|
||||||
@ -108,6 +105,169 @@ func (x *StreamRequest) GetExecCancel() *emptypb.Empty {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecRequest(v *Request) {
|
||||||
|
if v == nil {
|
||||||
|
x.Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Request = &StreamRequest_ExecRequest{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecInput(v *StreamRequest_Input) {
|
||||||
|
if v == nil {
|
||||||
|
x.Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Request = &StreamRequest_ExecInput{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecResize(v *StreamRequest_Resize) {
|
||||||
|
if v == nil {
|
||||||
|
x.Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Request = &StreamRequest_ExecResize{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecCancel(v *emptypb.Empty) {
|
||||||
|
if v == nil {
|
||||||
|
x.Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Request = &StreamRequest_ExecCancel{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasRequest() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.Request != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecRequest() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Request.(*StreamRequest_ExecRequest)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecInput() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Request.(*StreamRequest_ExecInput)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecResize() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Request.(*StreamRequest_ExecResize)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecCancel() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Request.(*StreamRequest_ExecCancel)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearRequest() {
|
||||||
|
x.Request = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecRequest() {
|
||||||
|
if _, ok := x.Request.(*StreamRequest_ExecRequest); ok {
|
||||||
|
x.Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecInput() {
|
||||||
|
if _, ok := x.Request.(*StreamRequest_ExecInput); ok {
|
||||||
|
x.Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecResize() {
|
||||||
|
if _, ok := x.Request.(*StreamRequest_ExecResize); ok {
|
||||||
|
x.Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecCancel() {
|
||||||
|
if _, ok := x.Request.(*StreamRequest_ExecCancel); ok {
|
||||||
|
x.Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const StreamRequest_Request_not_set_case case_StreamRequest_Request = 0
|
||||||
|
const StreamRequest_ExecRequest_case case_StreamRequest_Request = 1
|
||||||
|
const StreamRequest_ExecInput_case case_StreamRequest_Request = 2
|
||||||
|
const StreamRequest_ExecResize_case case_StreamRequest_Request = 3
|
||||||
|
const StreamRequest_ExecCancel_case case_StreamRequest_Request = 4
|
||||||
|
|
||||||
|
func (x *StreamRequest) WhichRequest() case_StreamRequest_Request {
|
||||||
|
if x == nil {
|
||||||
|
return StreamRequest_Request_not_set_case
|
||||||
|
}
|
||||||
|
switch x.Request.(type) {
|
||||||
|
case *StreamRequest_ExecRequest:
|
||||||
|
return StreamRequest_ExecRequest_case
|
||||||
|
case *StreamRequest_ExecInput:
|
||||||
|
return StreamRequest_ExecInput_case
|
||||||
|
case *StreamRequest_ExecResize:
|
||||||
|
return StreamRequest_ExecResize_case
|
||||||
|
case *StreamRequest_ExecCancel:
|
||||||
|
return StreamRequest_ExecCancel_case
|
||||||
|
default:
|
||||||
|
return StreamRequest_Request_not_set_case
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
// Fields of oneof Request:
|
||||||
|
ExecRequest *Request
|
||||||
|
ExecInput *StreamRequest_Input
|
||||||
|
ExecResize *StreamRequest_Resize
|
||||||
|
ExecCancel *emptypb.Empty
|
||||||
|
// -- end of Request
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_builder) Build() *StreamRequest {
|
||||||
|
m0 := &StreamRequest{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
if b.ExecRequest != nil {
|
||||||
|
x.Request = &StreamRequest_ExecRequest{b.ExecRequest}
|
||||||
|
}
|
||||||
|
if b.ExecInput != nil {
|
||||||
|
x.Request = &StreamRequest_ExecInput{b.ExecInput}
|
||||||
|
}
|
||||||
|
if b.ExecResize != nil {
|
||||||
|
x.Request = &StreamRequest_ExecResize{b.ExecResize}
|
||||||
|
}
|
||||||
|
if b.ExecCancel != nil {
|
||||||
|
x.Request = &StreamRequest_ExecCancel{b.ExecCancel}
|
||||||
|
}
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type case_StreamRequest_Request protoreflect.FieldNumber
|
||||||
|
|
||||||
|
func (x case_StreamRequest_Request) String() string {
|
||||||
|
md := file_stream_request_proto_msgTypes[0].Descriptor()
|
||||||
|
if x == 0 {
|
||||||
|
return "not set"
|
||||||
|
}
|
||||||
|
return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
type isStreamRequest_Request interface {
|
type isStreamRequest_Request interface {
|
||||||
isStreamRequest_Request()
|
isStreamRequest_Request()
|
||||||
}
|
}
|
||||||
@ -137,7 +297,7 @@ func (*StreamRequest_ExecResize) isStreamRequest_Request() {}
|
|||||||
func (*StreamRequest_ExecCancel) isStreamRequest_Request() {}
|
func (*StreamRequest_ExecCancel) isStreamRequest_Request() {}
|
||||||
|
|
||||||
type StreamRequest_Input struct {
|
type StreamRequest_Input struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
||||||
Fd uint32 `protobuf:"varint,3,opt,name=fd" json:"fd,omitempty"`
|
Fd uint32 `protobuf:"varint,3,opt,name=fd" json:"fd,omitempty"`
|
||||||
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
||||||
@ -170,11 +330,6 @@ func (x *StreamRequest_Input) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use StreamRequest_Input.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamRequest_Input) Descriptor() ([]byte, []int) {
|
|
||||||
return file_stream_request_proto_rawDescGZIP(), []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamRequest_Input) GetIndex() uint32 {
|
func (x *StreamRequest_Input) GetIndex() uint32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Index
|
return x.Index
|
||||||
@ -196,8 +351,41 @@ func (x *StreamRequest_Input) GetContent() []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetIndex(v uint32) {
|
||||||
|
x.Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetFd(v uint32) {
|
||||||
|
x.Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_Input_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_Input_builder) Build() *StreamRequest_Input {
|
||||||
|
m0 := &StreamRequest_Input{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Index = b.Index
|
||||||
|
x.Fd = b.Fd
|
||||||
|
x.Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
type StreamRequest_Resize struct {
|
type StreamRequest_Resize struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
||||||
Fd uint32 `protobuf:"varint,6,opt,name=fd" json:"fd,omitempty"`
|
Fd uint32 `protobuf:"varint,6,opt,name=fd" json:"fd,omitempty"`
|
||||||
Rows uint32 `protobuf:"varint,2,opt,name=rows" json:"rows,omitempty"`
|
Rows uint32 `protobuf:"varint,2,opt,name=rows" json:"rows,omitempty"`
|
||||||
@ -233,11 +421,6 @@ func (x *StreamRequest_Resize) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use StreamRequest_Resize.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamRequest_Resize) Descriptor() ([]byte, []int) {
|
|
||||||
return file_stream_request_proto_rawDescGZIP(), []int{0, 1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamRequest_Resize) GetIndex() uint32 {
|
func (x *StreamRequest_Resize) GetIndex() uint32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Index
|
return x.Index
|
||||||
@ -280,11 +463,59 @@ func (x *StreamRequest_Resize) GetY() uint32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetIndex(v uint32) {
|
||||||
|
x.Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetFd(v uint32) {
|
||||||
|
x.Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetRows(v uint32) {
|
||||||
|
x.Rows = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetCols(v uint32) {
|
||||||
|
x.Cols = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetX(v uint32) {
|
||||||
|
x.X = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetY(v uint32) {
|
||||||
|
x.Y = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_Resize_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Rows uint32
|
||||||
|
Cols uint32
|
||||||
|
X uint32
|
||||||
|
Y uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_Resize_builder) Build() *StreamRequest_Resize {
|
||||||
|
m0 := &StreamRequest_Resize{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Index = b.Index
|
||||||
|
x.Fd = b.Fd
|
||||||
|
x.Rows = b.Rows
|
||||||
|
x.Cols = b.Cols
|
||||||
|
x.X = b.X
|
||||||
|
x.Y = b.Y
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
var File_stream_request_proto protoreflect.FileDescriptor
|
var File_stream_request_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_stream_request_proto_rawDesc = "" +
|
const file_stream_request_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x14stream_request.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\"\xb7\x03\n" +
|
"\x14stream_request.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\x1a!google/protobuf/go_features.proto\"\xb7\x03\n" +
|
||||||
"\rStreamRequest\x12/\n" +
|
"\rStreamRequest\x12/\n" +
|
||||||
"\vexecRequest\x18\x01 \x01(\v2\v.pb.RequestH\x00R\vexecRequest\x127\n" +
|
"\vexecRequest\x18\x01 \x01(\v2\v.pb.RequestH\x00R\vexecRequest\x127\n" +
|
||||||
"\texecInput\x18\x02 \x01(\v2\x17.pb.StreamRequest.InputH\x00R\texecInput\x12:\n" +
|
"\texecInput\x18\x02 \x01(\v2\x17.pb.StreamRequest.InputH\x00R\texecInput\x12:\n" +
|
||||||
@ -305,19 +536,7 @@ const file_stream_request_proto_rawDesc = "" +
|
|||||||
"\x04cols\x18\x03 \x01(\rR\x04cols\x12\f\n" +
|
"\x04cols\x18\x03 \x01(\rR\x04cols\x12\f\n" +
|
||||||
"\x01x\x18\x04 \x01(\rR\x01x\x12\f\n" +
|
"\x01x\x18\x04 \x01(\rR\x01x\x12\f\n" +
|
||||||
"\x01y\x18\x05 \x01(\rR\x01yB\t\n" +
|
"\x01y\x18\x05 \x01(\rR\x01yB\t\n" +
|
||||||
"\arequestB$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
"\arequestB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var (
|
|
||||||
file_stream_request_proto_rawDescOnce sync.Once
|
|
||||||
file_stream_request_proto_rawDescData []byte
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_stream_request_proto_rawDescGZIP() []byte {
|
|
||||||
file_stream_request_proto_rawDescOnce.Do(func() {
|
|
||||||
file_stream_request_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_stream_request_proto_rawDesc), len(file_stream_request_proto_rawDesc)))
|
|
||||||
})
|
|
||||||
return file_stream_request_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_stream_request_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
var file_stream_request_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||||
var file_stream_request_proto_goTypes = []any{
|
var file_stream_request_proto_goTypes = []any{
|
||||||
|
|||||||
@ -4,9 +4,11 @@ package pb;
|
|||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
import "google/protobuf/empty.proto";
|
import "google/protobuf/empty.proto";
|
||||||
import "request.proto";
|
import "request.proto";
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
message StreamRequest {
|
message StreamRequest {
|
||||||
message Input {
|
message Input {
|
||||||
|
|||||||
577
pb/stream_request_protoopaque.pb.go
Normal file
577
pb/stream_request_protoopaque.pb.go
Normal file
@ -0,0 +1,577 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.36.6
|
||||||
|
// protoc v6.31.1
|
||||||
|
// source: stream_request.proto
|
||||||
|
|
||||||
|
//go:build protoopaque
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
|
reflect "reflect"
|
||||||
|
unsafe "unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type StreamRequest struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Request isStreamRequest_Request `protobuf_oneof:"request"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) Reset() {
|
||||||
|
*x = StreamRequest{}
|
||||||
|
mi := &file_stream_request_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StreamRequest) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stream_request_proto_msgTypes[0]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) GetExecRequest() *Request {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Request.(*streamRequest_ExecRequest); ok {
|
||||||
|
return x.ExecRequest
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) GetExecInput() *StreamRequest_Input {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Request.(*streamRequest_ExecInput); ok {
|
||||||
|
return x.ExecInput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) GetExecResize() *StreamRequest_Resize {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Request.(*streamRequest_ExecResize); ok {
|
||||||
|
return x.ExecResize
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) GetExecCancel() *emptypb.Empty {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Request.(*streamRequest_ExecCancel); ok {
|
||||||
|
return x.ExecCancel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecRequest(v *Request) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecRequest{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecInput(v *StreamRequest_Input) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecInput{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecResize(v *StreamRequest_Resize) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecResize{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) SetExecCancel(v *emptypb.Empty) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecCancel{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasRequest() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.xxx_hidden_Request != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecRequest() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Request.(*streamRequest_ExecRequest)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecInput() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Request.(*streamRequest_ExecInput)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecResize() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Request.(*streamRequest_ExecResize)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) HasExecCancel() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Request.(*streamRequest_ExecCancel)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearRequest() {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecRequest() {
|
||||||
|
if _, ok := x.xxx_hidden_Request.(*streamRequest_ExecRequest); ok {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecInput() {
|
||||||
|
if _, ok := x.xxx_hidden_Request.(*streamRequest_ExecInput); ok {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecResize() {
|
||||||
|
if _, ok := x.xxx_hidden_Request.(*streamRequest_ExecResize); ok {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest) ClearExecCancel() {
|
||||||
|
if _, ok := x.xxx_hidden_Request.(*streamRequest_ExecCancel); ok {
|
||||||
|
x.xxx_hidden_Request = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const StreamRequest_Request_not_set_case case_StreamRequest_Request = 0
|
||||||
|
const StreamRequest_ExecRequest_case case_StreamRequest_Request = 1
|
||||||
|
const StreamRequest_ExecInput_case case_StreamRequest_Request = 2
|
||||||
|
const StreamRequest_ExecResize_case case_StreamRequest_Request = 3
|
||||||
|
const StreamRequest_ExecCancel_case case_StreamRequest_Request = 4
|
||||||
|
|
||||||
|
func (x *StreamRequest) WhichRequest() case_StreamRequest_Request {
|
||||||
|
if x == nil {
|
||||||
|
return StreamRequest_Request_not_set_case
|
||||||
|
}
|
||||||
|
switch x.xxx_hidden_Request.(type) {
|
||||||
|
case *streamRequest_ExecRequest:
|
||||||
|
return StreamRequest_ExecRequest_case
|
||||||
|
case *streamRequest_ExecInput:
|
||||||
|
return StreamRequest_ExecInput_case
|
||||||
|
case *streamRequest_ExecResize:
|
||||||
|
return StreamRequest_ExecResize_case
|
||||||
|
case *streamRequest_ExecCancel:
|
||||||
|
return StreamRequest_ExecCancel_case
|
||||||
|
default:
|
||||||
|
return StreamRequest_Request_not_set_case
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
// Fields of oneof xxx_hidden_Request:
|
||||||
|
ExecRequest *Request
|
||||||
|
ExecInput *StreamRequest_Input
|
||||||
|
ExecResize *StreamRequest_Resize
|
||||||
|
ExecCancel *emptypb.Empty
|
||||||
|
// -- end of xxx_hidden_Request
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_builder) Build() *StreamRequest {
|
||||||
|
m0 := &StreamRequest{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
if b.ExecRequest != nil {
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecRequest{b.ExecRequest}
|
||||||
|
}
|
||||||
|
if b.ExecInput != nil {
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecInput{b.ExecInput}
|
||||||
|
}
|
||||||
|
if b.ExecResize != nil {
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecResize{b.ExecResize}
|
||||||
|
}
|
||||||
|
if b.ExecCancel != nil {
|
||||||
|
x.xxx_hidden_Request = &streamRequest_ExecCancel{b.ExecCancel}
|
||||||
|
}
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type case_StreamRequest_Request protoreflect.FieldNumber
|
||||||
|
|
||||||
|
func (x case_StreamRequest_Request) String() string {
|
||||||
|
md := file_stream_request_proto_msgTypes[0].Descriptor()
|
||||||
|
if x == 0 {
|
||||||
|
return "not set"
|
||||||
|
}
|
||||||
|
return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
type isStreamRequest_Request interface {
|
||||||
|
isStreamRequest_Request()
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamRequest_ExecRequest struct {
|
||||||
|
ExecRequest *Request `protobuf:"bytes,1,opt,name=execRequest,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamRequest_ExecInput struct {
|
||||||
|
ExecInput *StreamRequest_Input `protobuf:"bytes,2,opt,name=execInput,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamRequest_ExecResize struct {
|
||||||
|
ExecResize *StreamRequest_Resize `protobuf:"bytes,3,opt,name=execResize,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamRequest_ExecCancel struct {
|
||||||
|
ExecCancel *emptypb.Empty `protobuf:"bytes,4,opt,name=execCancel,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*streamRequest_ExecRequest) isStreamRequest_Request() {}
|
||||||
|
|
||||||
|
func (*streamRequest_ExecInput) isStreamRequest_Request() {}
|
||||||
|
|
||||||
|
func (*streamRequest_ExecResize) isStreamRequest_Request() {}
|
||||||
|
|
||||||
|
func (*streamRequest_ExecCancel) isStreamRequest_Request() {}
|
||||||
|
|
||||||
|
type StreamRequest_Input struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Index uint32 `protobuf:"varint,1,opt,name=index"`
|
||||||
|
xxx_hidden_Fd uint32 `protobuf:"varint,3,opt,name=fd"`
|
||||||
|
xxx_hidden_Content []byte `protobuf:"bytes,2,opt,name=content"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) Reset() {
|
||||||
|
*x = StreamRequest_Input{}
|
||||||
|
mi := &file_stream_request_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StreamRequest_Input) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stream_request_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) GetIndex() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Index
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) GetFd() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Fd
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) GetContent() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Content
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetIndex(v uint32) {
|
||||||
|
x.xxx_hidden_Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetFd(v uint32) {
|
||||||
|
x.xxx_hidden_Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Input) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_Input_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_Input_builder) Build() *StreamRequest_Input {
|
||||||
|
m0 := &StreamRequest_Input{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Index = b.Index
|
||||||
|
x.xxx_hidden_Fd = b.Fd
|
||||||
|
x.xxx_hidden_Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_Resize struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Index uint32 `protobuf:"varint,1,opt,name=index"`
|
||||||
|
xxx_hidden_Fd uint32 `protobuf:"varint,6,opt,name=fd"`
|
||||||
|
xxx_hidden_Rows uint32 `protobuf:"varint,2,opt,name=rows"`
|
||||||
|
xxx_hidden_Cols uint32 `protobuf:"varint,3,opt,name=cols"`
|
||||||
|
xxx_hidden_X uint32 `protobuf:"varint,4,opt,name=x"`
|
||||||
|
xxx_hidden_Y uint32 `protobuf:"varint,5,opt,name=y"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) Reset() {
|
||||||
|
*x = StreamRequest_Resize{}
|
||||||
|
mi := &file_stream_request_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StreamRequest_Resize) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stream_request_proto_msgTypes[2]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetIndex() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Index
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetFd() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Fd
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetRows() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Rows
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetCols() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Cols
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetX() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_X
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) GetY() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Y
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetIndex(v uint32) {
|
||||||
|
x.xxx_hidden_Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetFd(v uint32) {
|
||||||
|
x.xxx_hidden_Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetRows(v uint32) {
|
||||||
|
x.xxx_hidden_Rows = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetCols(v uint32) {
|
||||||
|
x.xxx_hidden_Cols = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetX(v uint32) {
|
||||||
|
x.xxx_hidden_X = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamRequest_Resize) SetY(v uint32) {
|
||||||
|
x.xxx_hidden_Y = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamRequest_Resize_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Rows uint32
|
||||||
|
Cols uint32
|
||||||
|
X uint32
|
||||||
|
Y uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamRequest_Resize_builder) Build() *StreamRequest_Resize {
|
||||||
|
m0 := &StreamRequest_Resize{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Index = b.Index
|
||||||
|
x.xxx_hidden_Fd = b.Fd
|
||||||
|
x.xxx_hidden_Rows = b.Rows
|
||||||
|
x.xxx_hidden_Cols = b.Cols
|
||||||
|
x.xxx_hidden_X = b.X
|
||||||
|
x.xxx_hidden_Y = b.Y
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_stream_request_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
const file_stream_request_proto_rawDesc = "" +
|
||||||
|
"\n" +
|
||||||
|
"\x14stream_request.proto\x12\x02pb\x1a\x1bgoogle/protobuf/empty.proto\x1a\rrequest.proto\x1a!google/protobuf/go_features.proto\"\xb7\x03\n" +
|
||||||
|
"\rStreamRequest\x12/\n" +
|
||||||
|
"\vexecRequest\x18\x01 \x01(\v2\v.pb.RequestH\x00R\vexecRequest\x127\n" +
|
||||||
|
"\texecInput\x18\x02 \x01(\v2\x17.pb.StreamRequest.InputH\x00R\texecInput\x12:\n" +
|
||||||
|
"\n" +
|
||||||
|
"execResize\x18\x03 \x01(\v2\x18.pb.StreamRequest.ResizeH\x00R\n" +
|
||||||
|
"execResize\x128\n" +
|
||||||
|
"\n" +
|
||||||
|
"execCancel\x18\x04 \x01(\v2\x16.google.protobuf.EmptyH\x00R\n" +
|
||||||
|
"execCancel\x1aG\n" +
|
||||||
|
"\x05Input\x12\x14\n" +
|
||||||
|
"\x05index\x18\x01 \x01(\rR\x05index\x12\x0e\n" +
|
||||||
|
"\x02fd\x18\x03 \x01(\rR\x02fd\x12\x18\n" +
|
||||||
|
"\acontent\x18\x02 \x01(\fR\acontent\x1ar\n" +
|
||||||
|
"\x06Resize\x12\x14\n" +
|
||||||
|
"\x05index\x18\x01 \x01(\rR\x05index\x12\x0e\n" +
|
||||||
|
"\x02fd\x18\x06 \x01(\rR\x02fd\x12\x12\n" +
|
||||||
|
"\x04rows\x18\x02 \x01(\rR\x04rows\x12\x12\n" +
|
||||||
|
"\x04cols\x18\x03 \x01(\rR\x04cols\x12\f\n" +
|
||||||
|
"\x01x\x18\x04 \x01(\rR\x01x\x12\f\n" +
|
||||||
|
"\x01y\x18\x05 \x01(\rR\x01yB\t\n" +
|
||||||
|
"\arequestB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
|
var file_stream_request_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||||
|
var file_stream_request_proto_goTypes = []any{
|
||||||
|
(*StreamRequest)(nil), // 0: pb.StreamRequest
|
||||||
|
(*StreamRequest_Input)(nil), // 1: pb.StreamRequest.Input
|
||||||
|
(*StreamRequest_Resize)(nil), // 2: pb.StreamRequest.Resize
|
||||||
|
(*Request)(nil), // 3: pb.Request
|
||||||
|
(*emptypb.Empty)(nil), // 4: google.protobuf.Empty
|
||||||
|
}
|
||||||
|
var file_stream_request_proto_depIdxs = []int32{
|
||||||
|
3, // 0: pb.StreamRequest.execRequest:type_name -> pb.Request
|
||||||
|
1, // 1: pb.StreamRequest.execInput:type_name -> pb.StreamRequest.Input
|
||||||
|
2, // 2: pb.StreamRequest.execResize:type_name -> pb.StreamRequest.Resize
|
||||||
|
4, // 3: pb.StreamRequest.execCancel:type_name -> google.protobuf.Empty
|
||||||
|
4, // [4:4] is the sub-list for method output_type
|
||||||
|
4, // [4:4] is the sub-list for method input_type
|
||||||
|
4, // [4:4] is the sub-list for extension type_name
|
||||||
|
4, // [4:4] is the sub-list for extension extendee
|
||||||
|
0, // [0:4] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_stream_request_proto_init() }
|
||||||
|
func file_stream_request_proto_init() {
|
||||||
|
if File_stream_request_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
file_request_proto_init()
|
||||||
|
file_stream_request_proto_msgTypes[0].OneofWrappers = []any{
|
||||||
|
(*streamRequest_ExecRequest)(nil),
|
||||||
|
(*streamRequest_ExecInput)(nil),
|
||||||
|
(*streamRequest_ExecResize)(nil),
|
||||||
|
(*streamRequest_ExecCancel)(nil),
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_stream_request_proto_rawDesc), len(file_stream_request_proto_rawDesc)),
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 3,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_stream_request_proto_goTypes,
|
||||||
|
DependencyIndexes: file_stream_request_proto_depIdxs,
|
||||||
|
MessageInfos: file_stream_request_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_stream_request_proto = out.File
|
||||||
|
file_stream_request_proto_goTypes = nil
|
||||||
|
file_stream_request_proto_depIdxs = nil
|
||||||
|
}
|
||||||
@ -4,13 +4,15 @@
|
|||||||
// protoc v6.31.1
|
// protoc v6.31.1
|
||||||
// source: stream_response.proto
|
// source: stream_response.proto
|
||||||
|
|
||||||
|
//go:build !protoopaque
|
||||||
|
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type StreamResponse struct {
|
type StreamResponse struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
// Types that are valid to be assigned to Response:
|
// Types that are valid to be assigned to Response:
|
||||||
//
|
//
|
||||||
// *StreamResponse_ExecResponse
|
// *StreamResponse_ExecResponse
|
||||||
@ -57,11 +59,6 @@ func (x *StreamResponse) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use StreamResponse.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamResponse) Descriptor() ([]byte, []int) {
|
|
||||||
return file_stream_response_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamResponse) GetResponse() isStreamResponse_Response {
|
func (x *StreamResponse) GetResponse() isStreamResponse_Response {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Response
|
return x.Response
|
||||||
@ -87,6 +84,111 @@ func (x *StreamResponse) GetExecOutput() *StreamResponse_Output {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) SetExecResponse(v *Response) {
|
||||||
|
if v == nil {
|
||||||
|
x.Response = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Response = &StreamResponse_ExecResponse{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) SetExecOutput(v *StreamResponse_Output) {
|
||||||
|
if v == nil {
|
||||||
|
x.Response = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.Response = &StreamResponse_ExecOutput{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasResponse() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.Response != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasExecResponse() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Response.(*StreamResponse_ExecResponse)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasExecOutput() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.Response.(*StreamResponse_ExecOutput)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearResponse() {
|
||||||
|
x.Response = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearExecResponse() {
|
||||||
|
if _, ok := x.Response.(*StreamResponse_ExecResponse); ok {
|
||||||
|
x.Response = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearExecOutput() {
|
||||||
|
if _, ok := x.Response.(*StreamResponse_ExecOutput); ok {
|
||||||
|
x.Response = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const StreamResponse_Response_not_set_case case_StreamResponse_Response = 0
|
||||||
|
const StreamResponse_ExecResponse_case case_StreamResponse_Response = 1
|
||||||
|
const StreamResponse_ExecOutput_case case_StreamResponse_Response = 2
|
||||||
|
|
||||||
|
func (x *StreamResponse) WhichResponse() case_StreamResponse_Response {
|
||||||
|
if x == nil {
|
||||||
|
return StreamResponse_Response_not_set_case
|
||||||
|
}
|
||||||
|
switch x.Response.(type) {
|
||||||
|
case *StreamResponse_ExecResponse:
|
||||||
|
return StreamResponse_ExecResponse_case
|
||||||
|
case *StreamResponse_ExecOutput:
|
||||||
|
return StreamResponse_ExecOutput_case
|
||||||
|
default:
|
||||||
|
return StreamResponse_Response_not_set_case
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamResponse_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
// Fields of oneof Response:
|
||||||
|
ExecResponse *Response
|
||||||
|
ExecOutput *StreamResponse_Output
|
||||||
|
// -- end of Response
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamResponse_builder) Build() *StreamResponse {
|
||||||
|
m0 := &StreamResponse{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
if b.ExecResponse != nil {
|
||||||
|
x.Response = &StreamResponse_ExecResponse{b.ExecResponse}
|
||||||
|
}
|
||||||
|
if b.ExecOutput != nil {
|
||||||
|
x.Response = &StreamResponse_ExecOutput{b.ExecOutput}
|
||||||
|
}
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type case_StreamResponse_Response protoreflect.FieldNumber
|
||||||
|
|
||||||
|
func (x case_StreamResponse_Response) String() string {
|
||||||
|
md := file_stream_response_proto_msgTypes[0].Descriptor()
|
||||||
|
if x == 0 {
|
||||||
|
return "not set"
|
||||||
|
}
|
||||||
|
return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
type isStreamResponse_Response interface {
|
type isStreamResponse_Response interface {
|
||||||
isStreamResponse_Response()
|
isStreamResponse_Response()
|
||||||
}
|
}
|
||||||
@ -104,7 +206,7 @@ func (*StreamResponse_ExecResponse) isStreamResponse_Response() {}
|
|||||||
func (*StreamResponse_ExecOutput) isStreamResponse_Response() {}
|
func (*StreamResponse_ExecOutput) isStreamResponse_Response() {}
|
||||||
|
|
||||||
type StreamResponse_Output struct {
|
type StreamResponse_Output struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"hybrid.v1"`
|
||||||
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
||||||
Fd uint32 `protobuf:"varint,3,opt,name=fd" json:"fd,omitempty"`
|
Fd uint32 `protobuf:"varint,3,opt,name=fd" json:"fd,omitempty"`
|
||||||
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
Content []byte `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
|
||||||
@ -137,11 +239,6 @@ func (x *StreamResponse_Output) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use StreamResponse_Output.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamResponse_Output) Descriptor() ([]byte, []int) {
|
|
||||||
return file_stream_response_proto_rawDescGZIP(), []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamResponse_Output) GetIndex() uint32 {
|
func (x *StreamResponse_Output) GetIndex() uint32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Index
|
return x.Index
|
||||||
@ -163,11 +260,44 @@ func (x *StreamResponse_Output) GetContent() []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetIndex(v uint32) {
|
||||||
|
x.Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetFd(v uint32) {
|
||||||
|
x.Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamResponse_Output_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamResponse_Output_builder) Build() *StreamResponse_Output {
|
||||||
|
m0 := &StreamResponse_Output{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.Index = b.Index
|
||||||
|
x.Fd = b.Fd
|
||||||
|
x.Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
var File_stream_response_proto protoreflect.FileDescriptor
|
var File_stream_response_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_stream_response_proto_rawDesc = "" +
|
const file_stream_response_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x15stream_response.proto\x12\x02pb\x1a\x0eresponse.proto\"\xd7\x01\n" +
|
"\x15stream_response.proto\x12\x02pb\x1a\x0eresponse.proto\x1a!google/protobuf/go_features.proto\"\xd7\x01\n" +
|
||||||
"\x0eStreamResponse\x122\n" +
|
"\x0eStreamResponse\x122\n" +
|
||||||
"\fexecResponse\x18\x01 \x01(\v2\f.pb.ResponseH\x00R\fexecResponse\x12;\n" +
|
"\fexecResponse\x18\x01 \x01(\v2\f.pb.ResponseH\x00R\fexecResponse\x12;\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
@ -178,19 +308,7 @@ const file_stream_response_proto_rawDesc = "" +
|
|||||||
"\x02fd\x18\x03 \x01(\rR\x02fd\x12\x18\n" +
|
"\x02fd\x18\x03 \x01(\rR\x02fd\x12\x18\n" +
|
||||||
"\acontent\x18\x02 \x01(\fR\acontentB\n" +
|
"\acontent\x18\x02 \x01(\fR\acontentB\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\bresponseB$Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\x02\b\x02b\beditionsp\xe8\a"
|
"\bresponseB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
var (
|
|
||||||
file_stream_response_proto_rawDescOnce sync.Once
|
|
||||||
file_stream_response_proto_rawDescData []byte
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_stream_response_proto_rawDescGZIP() []byte {
|
|
||||||
file_stream_response_proto_rawDescOnce.Do(func() {
|
|
||||||
file_stream_response_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_stream_response_proto_rawDesc), len(file_stream_response_proto_rawDesc)))
|
|
||||||
})
|
|
||||||
return file_stream_response_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_stream_response_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
var file_stream_response_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||||
var file_stream_response_proto_goTypes = []any{
|
var file_stream_response_proto_goTypes = []any{
|
||||||
|
|||||||
@ -4,8 +4,10 @@ package pb;
|
|||||||
|
|
||||||
option features.field_presence = IMPLICIT;
|
option features.field_presence = IMPLICIT;
|
||||||
option go_package = "github.com/criyle/go-judge/pb";
|
option go_package = "github.com/criyle/go-judge/pb";
|
||||||
|
option features.(pb.go).api_level = API_HYBRID;
|
||||||
|
|
||||||
import "response.proto";
|
import "response.proto";
|
||||||
|
import "google/protobuf/go_features.proto";
|
||||||
|
|
||||||
message StreamResponse {
|
message StreamResponse {
|
||||||
message Output {
|
message Output {
|
||||||
|
|||||||
345
pb/stream_response_protoopaque.pb.go
Normal file
345
pb/stream_response_protoopaque.pb.go
Normal file
@ -0,0 +1,345 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.36.6
|
||||||
|
// protoc v6.31.1
|
||||||
|
// source: stream_response.proto
|
||||||
|
|
||||||
|
//go:build protoopaque
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
_ "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
|
reflect "reflect"
|
||||||
|
unsafe "unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type StreamResponse struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Response isStreamResponse_Response `protobuf_oneof:"response"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) Reset() {
|
||||||
|
*x = StreamResponse{}
|
||||||
|
mi := &file_stream_response_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StreamResponse) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stream_response_proto_msgTypes[0]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) GetExecResponse() *Response {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Response.(*streamResponse_ExecResponse); ok {
|
||||||
|
return x.ExecResponse
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) GetExecOutput() *StreamResponse_Output {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.xxx_hidden_Response.(*streamResponse_ExecOutput); ok {
|
||||||
|
return x.ExecOutput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) SetExecResponse(v *Response) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Response = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Response = &streamResponse_ExecResponse{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) SetExecOutput(v *StreamResponse_Output) {
|
||||||
|
if v == nil {
|
||||||
|
x.xxx_hidden_Response = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Response = &streamResponse_ExecOutput{v}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasResponse() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return x.xxx_hidden_Response != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasExecResponse() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Response.(*streamResponse_ExecResponse)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) HasExecOutput() bool {
|
||||||
|
if x == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := x.xxx_hidden_Response.(*streamResponse_ExecOutput)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearResponse() {
|
||||||
|
x.xxx_hidden_Response = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearExecResponse() {
|
||||||
|
if _, ok := x.xxx_hidden_Response.(*streamResponse_ExecResponse); ok {
|
||||||
|
x.xxx_hidden_Response = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse) ClearExecOutput() {
|
||||||
|
if _, ok := x.xxx_hidden_Response.(*streamResponse_ExecOutput); ok {
|
||||||
|
x.xxx_hidden_Response = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const StreamResponse_Response_not_set_case case_StreamResponse_Response = 0
|
||||||
|
const StreamResponse_ExecResponse_case case_StreamResponse_Response = 1
|
||||||
|
const StreamResponse_ExecOutput_case case_StreamResponse_Response = 2
|
||||||
|
|
||||||
|
func (x *StreamResponse) WhichResponse() case_StreamResponse_Response {
|
||||||
|
if x == nil {
|
||||||
|
return StreamResponse_Response_not_set_case
|
||||||
|
}
|
||||||
|
switch x.xxx_hidden_Response.(type) {
|
||||||
|
case *streamResponse_ExecResponse:
|
||||||
|
return StreamResponse_ExecResponse_case
|
||||||
|
case *streamResponse_ExecOutput:
|
||||||
|
return StreamResponse_ExecOutput_case
|
||||||
|
default:
|
||||||
|
return StreamResponse_Response_not_set_case
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamResponse_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
// Fields of oneof xxx_hidden_Response:
|
||||||
|
ExecResponse *Response
|
||||||
|
ExecOutput *StreamResponse_Output
|
||||||
|
// -- end of xxx_hidden_Response
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamResponse_builder) Build() *StreamResponse {
|
||||||
|
m0 := &StreamResponse{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
if b.ExecResponse != nil {
|
||||||
|
x.xxx_hidden_Response = &streamResponse_ExecResponse{b.ExecResponse}
|
||||||
|
}
|
||||||
|
if b.ExecOutput != nil {
|
||||||
|
x.xxx_hidden_Response = &streamResponse_ExecOutput{b.ExecOutput}
|
||||||
|
}
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
type case_StreamResponse_Response protoreflect.FieldNumber
|
||||||
|
|
||||||
|
func (x case_StreamResponse_Response) String() string {
|
||||||
|
md := file_stream_response_proto_msgTypes[0].Descriptor()
|
||||||
|
if x == 0 {
|
||||||
|
return "not set"
|
||||||
|
}
|
||||||
|
return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
type isStreamResponse_Response interface {
|
||||||
|
isStreamResponse_Response()
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamResponse_ExecResponse struct {
|
||||||
|
ExecResponse *Response `protobuf:"bytes,1,opt,name=execResponse,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type streamResponse_ExecOutput struct {
|
||||||
|
ExecOutput *StreamResponse_Output `protobuf:"bytes,2,opt,name=execOutput,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*streamResponse_ExecResponse) isStreamResponse_Response() {}
|
||||||
|
|
||||||
|
func (*streamResponse_ExecOutput) isStreamResponse_Response() {}
|
||||||
|
|
||||||
|
type StreamResponse_Output struct {
|
||||||
|
state protoimpl.MessageState `protogen:"opaque.v1"`
|
||||||
|
xxx_hidden_Index uint32 `protobuf:"varint,1,opt,name=index"`
|
||||||
|
xxx_hidden_Fd uint32 `protobuf:"varint,3,opt,name=fd"`
|
||||||
|
xxx_hidden_Content []byte `protobuf:"bytes,2,opt,name=content"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) Reset() {
|
||||||
|
*x = StreamResponse_Output{}
|
||||||
|
mi := &file_stream_response_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StreamResponse_Output) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stream_response_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) GetIndex() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Index
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) GetFd() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Fd
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) GetContent() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.xxx_hidden_Content
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetIndex(v uint32) {
|
||||||
|
x.xxx_hidden_Index = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetFd(v uint32) {
|
||||||
|
x.xxx_hidden_Fd = v
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StreamResponse_Output) SetContent(v []byte) {
|
||||||
|
if v == nil {
|
||||||
|
v = []byte{}
|
||||||
|
}
|
||||||
|
x.xxx_hidden_Content = v
|
||||||
|
}
|
||||||
|
|
||||||
|
type StreamResponse_Output_builder struct {
|
||||||
|
_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
|
||||||
|
|
||||||
|
Index uint32
|
||||||
|
Fd uint32
|
||||||
|
Content []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b0 StreamResponse_Output_builder) Build() *StreamResponse_Output {
|
||||||
|
m0 := &StreamResponse_Output{}
|
||||||
|
b, x := &b0, m0
|
||||||
|
_, _ = b, x
|
||||||
|
x.xxx_hidden_Index = b.Index
|
||||||
|
x.xxx_hidden_Fd = b.Fd
|
||||||
|
x.xxx_hidden_Content = b.Content
|
||||||
|
return m0
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_stream_response_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
const file_stream_response_proto_rawDesc = "" +
|
||||||
|
"\n" +
|
||||||
|
"\x15stream_response.proto\x12\x02pb\x1a\x0eresponse.proto\x1a!google/protobuf/go_features.proto\"\xd7\x01\n" +
|
||||||
|
"\x0eStreamResponse\x122\n" +
|
||||||
|
"\fexecResponse\x18\x01 \x01(\v2\f.pb.ResponseH\x00R\fexecResponse\x12;\n" +
|
||||||
|
"\n" +
|
||||||
|
"execOutput\x18\x02 \x01(\v2\x19.pb.StreamResponse.OutputH\x00R\n" +
|
||||||
|
"execOutput\x1aH\n" +
|
||||||
|
"\x06Output\x12\x14\n" +
|
||||||
|
"\x05index\x18\x01 \x01(\rR\x05index\x12\x0e\n" +
|
||||||
|
"\x02fd\x18\x03 \x01(\rR\x02fd\x12\x18\n" +
|
||||||
|
"\acontent\x18\x02 \x01(\fR\acontentB\n" +
|
||||||
|
"\n" +
|
||||||
|
"\bresponseB)Z\x1dgithub.com/criyle/go-judge/pb\x92\x03\a\xd2>\x02\x10\x02\b\x02b\beditionsp\xe8\a"
|
||||||
|
|
||||||
|
var file_stream_response_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||||
|
var file_stream_response_proto_goTypes = []any{
|
||||||
|
(*StreamResponse)(nil), // 0: pb.StreamResponse
|
||||||
|
(*StreamResponse_Output)(nil), // 1: pb.StreamResponse.Output
|
||||||
|
(*Response)(nil), // 2: pb.Response
|
||||||
|
}
|
||||||
|
var file_stream_response_proto_depIdxs = []int32{
|
||||||
|
2, // 0: pb.StreamResponse.execResponse:type_name -> pb.Response
|
||||||
|
1, // 1: pb.StreamResponse.execOutput:type_name -> pb.StreamResponse.Output
|
||||||
|
2, // [2:2] is the sub-list for method output_type
|
||||||
|
2, // [2:2] is the sub-list for method input_type
|
||||||
|
2, // [2:2] is the sub-list for extension type_name
|
||||||
|
2, // [2:2] is the sub-list for extension extendee
|
||||||
|
0, // [0:2] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_stream_response_proto_init() }
|
||||||
|
func file_stream_response_proto_init() {
|
||||||
|
if File_stream_response_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
file_response_proto_init()
|
||||||
|
file_stream_response_proto_msgTypes[0].OneofWrappers = []any{
|
||||||
|
(*streamResponse_ExecResponse)(nil),
|
||||||
|
(*streamResponse_ExecOutput)(nil),
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_stream_response_proto_rawDesc), len(file_stream_response_proto_rawDesc)),
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 2,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_stream_response_proto_goTypes,
|
||||||
|
DependencyIndexes: file_stream_response_proto_depIdxs,
|
||||||
|
MessageInfos: file_stream_response_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_stream_response_proto = out.File
|
||||||
|
file_stream_response_proto_goTypes = nil
|
||||||
|
file_stream_response_proto_depIdxs = nil
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user