145 lines
3.8 KiB
Go
145 lines
3.8 KiB
Go
package hubrpc
|
|
|
|
import (
|
|
context "context"
|
|
"io"
|
|
|
|
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch/exec"
|
|
rpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc"
|
|
)
|
|
|
|
type IOSwitchSvc interface {
|
|
ExecuteIOPlan(ctx context.Context, req *ExecuteIOPlan) (*ExecuteIOPlanResp, *rpc.CodeError)
|
|
SendIOStream(ctx context.Context, req *SendIOStream) (*SendIOStreamResp, *rpc.CodeError)
|
|
GetIOStream(ctx context.Context, req *GetIOStream) (*GetIOStreamResp, *rpc.CodeError)
|
|
SendIOVar(ctx context.Context, req *SendIOVar) (*SendIOVarResp, *rpc.CodeError)
|
|
GetIOVar(ctx context.Context, req *GetIOVar) (*GetIOVarResp, *rpc.CodeError)
|
|
}
|
|
|
|
// 执行IO计划
|
|
type ExecuteIOPlan struct {
|
|
Plan exec.Plan
|
|
WorkerName string
|
|
}
|
|
type ExecuteIOPlanResp struct {
|
|
Result exec.ExecutorResult
|
|
}
|
|
|
|
var _ = TokenAuth(Hub_ExecuteIOPlan_FullMethodName)
|
|
|
|
func (c *Client) ExecuteIOPlan(ctx context.Context, req *ExecuteIOPlan) (*ExecuteIOPlanResp, *rpc.CodeError) {
|
|
if c.fusedErr != nil {
|
|
return nil, c.fusedErr
|
|
}
|
|
return rpc.UnaryClient[*ExecuteIOPlanResp](c.cli.ExecuteIOPlan, ctx, req)
|
|
}
|
|
|
|
func (s *Server) ExecuteIOPlan(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
|
|
return rpc.UnaryServer(s.svrImpl.ExecuteIOPlan, ctx, req)
|
|
}
|
|
|
|
// 发送IO流
|
|
type SendIOStream struct {
|
|
PlanID exec.PlanID
|
|
VarID exec.VarID
|
|
Stream io.Reader `json:"-"`
|
|
}
|
|
|
|
func (s *SendIOStream) GetStream() io.Reader {
|
|
return s.Stream
|
|
}
|
|
func (s *SendIOStream) SetStream(str io.Reader) {
|
|
s.Stream = str
|
|
}
|
|
|
|
type SendIOStreamResp struct{}
|
|
|
|
var _ = TokenAuth(Hub_SendIOStream_FullMethodName)
|
|
|
|
func (c *Client) SendIOStream(ctx context.Context, req *SendIOStream) (*SendIOStreamResp, *rpc.CodeError) {
|
|
if c.fusedErr != nil {
|
|
return nil, c.fusedErr
|
|
}
|
|
return rpc.UploadStreamClient[*SendIOStreamResp](c.cli.SendIOStream, ctx, req)
|
|
}
|
|
func (s *Server) SendIOStream(req Hub_SendIOStreamServer) error {
|
|
return rpc.UploadStreamServer(s.svrImpl.SendIOStream, req)
|
|
}
|
|
|
|
// 获取IO流
|
|
type GetIOStream struct {
|
|
PlanID exec.PlanID
|
|
VarID exec.VarID
|
|
SignalID exec.VarID
|
|
Signal exec.VarValue
|
|
}
|
|
|
|
type GetIOStreamResp struct {
|
|
Stream io.ReadCloser `json:"-"`
|
|
}
|
|
|
|
var _ = TokenAuth(Hub_GetIOStream_FullMethodName)
|
|
|
|
func (r *GetIOStreamResp) GetStream() io.ReadCloser {
|
|
return r.Stream
|
|
}
|
|
func (r *GetIOStreamResp) SetStream(str io.ReadCloser) {
|
|
r.Stream = str
|
|
}
|
|
|
|
func (c *Client) GetIOStream(ctx context.Context, req *GetIOStream) (*GetIOStreamResp, *rpc.CodeError) {
|
|
if c.fusedErr != nil {
|
|
return nil, c.fusedErr
|
|
}
|
|
|
|
return rpc.DownloadStreamClient[*GetIOStreamResp](c.cli.GetIOStream, ctx, req)
|
|
}
|
|
func (s *Server) GetIOStream(req *rpc.Request, ret Hub_GetIOStreamServer) error {
|
|
return rpc.DownloadStreamServer(s.svrImpl.GetIOStream, req, ret)
|
|
}
|
|
|
|
// 发送IO变量
|
|
type SendIOVar struct {
|
|
PlanID exec.PlanID
|
|
VarID exec.VarID
|
|
Value exec.VarValue
|
|
}
|
|
type SendIOVarResp struct{}
|
|
|
|
var _ = TokenAuth(Hub_SendIOVar_FullMethodName)
|
|
|
|
func (c *Client) SendIOVar(ctx context.Context, req *SendIOVar) (*SendIOVarResp, *rpc.CodeError) {
|
|
if c.fusedErr != nil {
|
|
return nil, c.fusedErr
|
|
}
|
|
return rpc.UnaryClient[*SendIOVarResp](c.cli.SendIOVar, ctx, req)
|
|
}
|
|
|
|
func (s *Server) SendIOVar(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
|
|
return rpc.UnaryServer(s.svrImpl.SendIOVar, ctx, req)
|
|
}
|
|
|
|
// 获取IO变量
|
|
type GetIOVar struct {
|
|
PlanID exec.PlanID
|
|
VarID exec.VarID
|
|
SignalID exec.VarID
|
|
Signal exec.VarValue
|
|
}
|
|
type GetIOVarResp struct {
|
|
Value exec.VarValue
|
|
}
|
|
|
|
var _ = TokenAuth(Hub_GetIOVar_FullMethodName)
|
|
|
|
func (c *Client) GetIOVar(ctx context.Context, req *GetIOVar) (*GetIOVarResp, *rpc.CodeError) {
|
|
if c.fusedErr != nil {
|
|
return nil, c.fusedErr
|
|
}
|
|
return rpc.UnaryClient[*GetIOVarResp](c.cli.GetIOVar, ctx, req)
|
|
}
|
|
|
|
func (s *Server) GetIOVar(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
|
|
return rpc.UnaryServer(s.svrImpl.GetIOVar, ctx, req)
|
|
}
|