优化代码结构
This commit is contained in:
parent
e322f9c2c6
commit
aaae2d526e
|
@ -25,8 +25,6 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func migrate(configPath string) {
|
func migrate(configPath string) {
|
||||||
// TODO 将create_database.sql的内容逐渐移动到这里来
|
|
||||||
|
|
||||||
err := config.Init(configPath)
|
err := config.Init(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
|
|
|
@ -54,12 +54,6 @@ func (s *Server) Start() *ServerEventChan {
|
||||||
logger.Infof("start serving http at: %s", s.cfg.Listen)
|
logger.Infof("start serving http at: %s", s.cfg.Listen)
|
||||||
|
|
||||||
err := s.httpSrv.ListenAndServe()
|
err := s.httpSrv.ListenAndServe()
|
||||||
if err != nil {
|
|
||||||
logger.Infof("http stopped with error: %s", err.Error())
|
|
||||||
} else {
|
|
||||||
logger.Infof("http stopped")
|
|
||||||
}
|
|
||||||
|
|
||||||
s.eventChan.Send(ExitEvent{Err: err})
|
s.eventChan.Send(ExitEvent{Err: err})
|
||||||
}()
|
}()
|
||||||
return s.eventChan
|
return s.eventChan
|
||||||
|
|
|
@ -68,8 +68,6 @@ func (r *FuseBucket) Child(ctx context.Context, name string) (fuse.FsEntry, erro
|
||||||
ca := r.vfs.cache.Stat(childPathComps)
|
ca := r.vfs.cache.Stat(childPathComps)
|
||||||
|
|
||||||
if ca == nil {
|
if ca == nil {
|
||||||
// TODO UserID
|
|
||||||
|
|
||||||
pkg, err := r.vfs.db.Package().GetByFullName(r.vfs.db.DefCtx(), r.bktName, name)
|
pkg, err := r.vfs.db.Package().GetByFullName(r.vfs.db.DefCtx(), r.bktName, name)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
dir := r.vfs.cache.LoadDir(childPathComps, &cache.CreateDirOption{
|
dir := r.vfs.cache.LoadDir(childPathComps, &cache.CreateDirOption{
|
||||||
|
@ -156,7 +154,6 @@ func (r *FuseBucket) NewDir(ctx context.Context, name string) (fuse.FsDir, error
|
||||||
return nil, fuse.ErrPermission
|
return nil, fuse.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 用户ID,失败了可以打个日志
|
|
||||||
// TODO 生成系统事件
|
// TODO 生成系统事件
|
||||||
// 不关注创建是否成功,仅尝试一下
|
// 不关注创建是否成功,仅尝试一下
|
||||||
r.vfs.db.DoTx(func(tx db.SQLContext) error {
|
r.vfs.db.DoTx(func(tx db.SQLContext) error {
|
||||||
|
|
|
@ -142,7 +142,6 @@ func (r *FuseRoot) NewDir(ctx context.Context, name string) (fuse.FsDir, error)
|
||||||
return nil, fuse.ErrPermission
|
return nil, fuse.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 用户ID,失败了可以打个日志
|
|
||||||
// TODO 生成系统事件
|
// TODO 生成系统事件
|
||||||
// 不关注创建是否成功,仅尝试一下
|
// 不关注创建是否成功,仅尝试一下
|
||||||
r.vfs.db.Bucket().Create(r.vfs.db.DefCtx(), name, cache.ModTime())
|
r.vfs.db.Bucket().Create(r.vfs.db.DefCtx(), name, cache.ModTime())
|
||||||
|
|
|
@ -78,7 +78,6 @@ func (svc *ObjectService) GetByPath(req api.ObjectListByPath) (api.ObjectListByP
|
||||||
func (svc *ObjectService) GetByIDs(objectIDs []types.ObjectID) ([]*types.Object, error) {
|
func (svc *ObjectService) GetByIDs(objectIDs []types.ObjectID) ([]*types.Object, error) {
|
||||||
var ret []*types.Object
|
var ret []*types.Object
|
||||||
err := svc.DB.DoTx(func(tx db.SQLContext) error {
|
err := svc.DB.DoTx(func(tx db.SQLContext) error {
|
||||||
// TODO 应该检查用户是否有每一个Object所在Package的权限
|
|
||||||
objs, err := svc.DB.Object().BatchGet(tx, objectIDs)
|
objs, err := svc.DB.Object().BatchGet(tx, objectIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -252,7 +251,6 @@ func (svc *ObjectService) Move(movings []api.MovingObject) ([]types.ObjectID, er
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *ObjectService) Download(req downloader.DownloadReqeust) (*downloader.Downloading, error) {
|
func (svc *ObjectService) Download(req downloader.DownloadReqeust) (*downloader.Downloading, error) {
|
||||||
// TODO 检查用户ID
|
|
||||||
iter := svc.Downloader.DownloadObjects([]downloader.DownloadReqeust{req})
|
iter := svc.Downloader.DownloadObjects([]downloader.DownloadReqeust{req})
|
||||||
|
|
||||||
// 初始化下载过程
|
// 初始化下载过程
|
||||||
|
@ -408,7 +406,6 @@ func (svc *ObjectService) Clone(clonings []api.CloningObject) ([]*types.Object,
|
||||||
|
|
||||||
var evt []*datamap.BodyNewOrUpdateObject
|
var evt []*datamap.BodyNewOrUpdateObject
|
||||||
|
|
||||||
// TODO 要检查用户是否有Object、Package的权限
|
|
||||||
cloningMap := make(map[types.PackageID]*PackageClonings)
|
cloningMap := make(map[types.PackageID]*PackageClonings)
|
||||||
for i, cloning := range clonings {
|
for i, cloning := range clonings {
|
||||||
pkg, ok := cloningMap[cloning.NewPackageID]
|
pkg, ok := cloningMap[cloning.NewPackageID]
|
||||||
|
|
|
@ -48,7 +48,6 @@ func (svc *PackageService) Create(bucketID types.BucketID, name string) (types.P
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *PackageService) DownloadPackage(packageID types.PackageID) (downloader.DownloadIterator, error) {
|
func (svc *PackageService) DownloadPackage(packageID types.PackageID) (downloader.DownloadIterator, error) {
|
||||||
// TODO 检查用户ID
|
|
||||||
return svc.Downloader.DownloadPackage(packageID), nil
|
return svc.Downloader.DownloadPackage(packageID), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
"rpc": {
|
"rpc": {
|
||||||
"listen": "127.0.0.1:5010"
|
"listen": "127.0.0.1:5010"
|
||||||
},
|
},
|
||||||
|
"http": {
|
||||||
|
"listen": "127.0.0.1:5110"
|
||||||
|
},
|
||||||
"coordinatorRPC": {
|
"coordinatorRPC": {
|
||||||
"address": "127.0.0.1:5009"
|
"address": "127.0.0.1:5009"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
package grpc
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
type Config struct {
|
|
||||||
IP string `json:"ip"`
|
|
||||||
Port int `json:"port"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Config) MakeListenAddress() string {
|
|
||||||
return fmt.Sprintf("%s:%d", c.IP, c.Port)
|
|
||||||
}
|
|
|
@ -1,206 +0,0 @@
|
||||||
package hub
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
|
|
||||||
"gitlink.org.cn/cloudream/common/pkgs/ioswitch/exec"
|
|
||||||
"gitlink.org.cn/cloudream/common/utils/serder"
|
|
||||||
"google.golang.org/grpc"
|
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Client struct {
|
|
||||||
con *grpc.ClientConn
|
|
||||||
cli HubClient
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewClient(addr string) (*Client, error) {
|
|
||||||
con, err := grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &Client{
|
|
||||||
con: con,
|
|
||||||
cli: NewHubClient(con),
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) ExecuteIOPlan(ctx context.Context, plan exec.Plan) error {
|
|
||||||
data, err := serder.ObjectToJSONEx(plan)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = c.cli.ExecuteIOPlan(ctx, &ExecuteIOPlanReq{
|
|
||||||
Plan: string(data),
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
type grpcStreamReadCloser struct {
|
|
||||||
io.ReadCloser
|
|
||||||
stream Hub_GetStreamClient
|
|
||||||
cancelFn context.CancelFunc
|
|
||||||
readingData []byte
|
|
||||||
recvEOF bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *grpcStreamReadCloser) Read(p []byte) (int, error) {
|
|
||||||
if len(s.readingData) == 0 && !s.recvEOF {
|
|
||||||
resp, err := s.stream.Recv()
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if resp.Type == StreamDataPacketType_Data {
|
|
||||||
s.readingData = resp.Data
|
|
||||||
|
|
||||||
} else if resp.Type == StreamDataPacketType_EOF {
|
|
||||||
s.readingData = resp.Data
|
|
||||||
s.recvEOF = true
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return 0, fmt.Errorf("unsupported packt type: %v", resp.Type)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cnt := copy(p, s.readingData)
|
|
||||||
s.readingData = s.readingData[cnt:]
|
|
||||||
|
|
||||||
if len(s.readingData) == 0 && s.recvEOF {
|
|
||||||
return cnt, io.EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
return cnt, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *grpcStreamReadCloser) Close() error {
|
|
||||||
s.cancelFn()
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) SendStream(ctx context.Context, planID exec.PlanID, varID exec.VarID, str io.Reader) error {
|
|
||||||
sendCli, err := c.cli.SendStream(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = sendCli.Send(&StreamDataPacket{
|
|
||||||
Type: StreamDataPacketType_SendArgs,
|
|
||||||
PlanID: string(planID),
|
|
||||||
VarID: int32(varID),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("sending first stream packet: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
buf := make([]byte, 1024*64)
|
|
||||||
for {
|
|
||||||
rd, err := str.Read(buf)
|
|
||||||
if err == io.EOF {
|
|
||||||
err := sendCli.Send(&StreamDataPacket{
|
|
||||||
Type: StreamDataPacketType_EOF,
|
|
||||||
Data: buf[:rd],
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("sending EOF packet: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = sendCli.CloseAndRecv()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("receiving response: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("reading stream data: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = sendCli.Send(&StreamDataPacket{
|
|
||||||
Type: StreamDataPacketType_Data,
|
|
||||||
Data: buf[:rd],
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("sending data packet: %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) GetStream(ctx context.Context, planID exec.PlanID, varID exec.VarID, signalID exec.VarID, signal exec.VarValue) (io.ReadCloser, error) {
|
|
||||||
ctx, cancel := context.WithCancel(ctx)
|
|
||||||
|
|
||||||
sdata, err := serder.ObjectToJSONEx(signal)
|
|
||||||
if err != nil {
|
|
||||||
cancel()
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
stream, err := c.cli.GetStream(ctx, &GetStreamReq{
|
|
||||||
PlanID: string(planID),
|
|
||||||
VarID: int32(varID),
|
|
||||||
SignalID: int32(signalID),
|
|
||||||
Signal: string(sdata),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
cancel()
|
|
||||||
return nil, fmt.Errorf("request grpc failed, err: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &grpcStreamReadCloser{
|
|
||||||
stream: stream,
|
|
||||||
cancelFn: cancel,
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) SendVar(ctx context.Context, planID exec.PlanID, id exec.VarID, value exec.VarValue) error {
|
|
||||||
data, err := serder.ObjectToJSONEx(value)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = c.cli.SendVar(ctx, &SendVarReq{
|
|
||||||
PlanID: string(planID),
|
|
||||||
VarID: int32(id),
|
|
||||||
VarValue: string(data),
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) GetVar(ctx context.Context, planID exec.PlanID, varID exec.VarID, signalID exec.VarID, signal exec.VarValue) (exec.VarValue, error) {
|
|
||||||
sdata, err := serder.ObjectToJSONEx(signal)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
resp, err := c.cli.GetVar(ctx, &GetVarReq{
|
|
||||||
PlanID: string(planID),
|
|
||||||
VarID: int32(varID),
|
|
||||||
SignalID: int32(signalID),
|
|
||||||
Signal: string(sdata),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
getVar, err := serder.JSONToObjectEx[exec.VarValue]([]byte(resp.Var))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return getVar, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Ping() error {
|
|
||||||
_, err := c.cli.Ping(context.Background(), &PingReq{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Close() {
|
|
||||||
c.con.Close()
|
|
||||||
}
|
|
|
@ -1,983 +0,0 @@
|
||||||
// 使用的语法版本
|
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// protoc-gen-go v1.34.2
|
|
||||||
// protoc v4.22.3
|
|
||||||
// source: pkgs/grpc/hub/hub.proto
|
|
||||||
|
|
||||||
package hub
|
|
||||||
|
|
||||||
import (
|
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
||||||
reflect "reflect"
|
|
||||||
sync "sync"
|
|
||||||
)
|
|
||||||
|
|
||||||
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 StreamDataPacketType int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
StreamDataPacketType_EOF StreamDataPacketType = 0
|
|
||||||
StreamDataPacketType_Data StreamDataPacketType = 1
|
|
||||||
StreamDataPacketType_SendArgs StreamDataPacketType = 2
|
|
||||||
)
|
|
||||||
|
|
||||||
// Enum value maps for StreamDataPacketType.
|
|
||||||
var (
|
|
||||||
StreamDataPacketType_name = map[int32]string{
|
|
||||||
0: "EOF",
|
|
||||||
1: "Data",
|
|
||||||
2: "SendArgs",
|
|
||||||
}
|
|
||||||
StreamDataPacketType_value = map[string]int32{
|
|
||||||
"EOF": 0,
|
|
||||||
"Data": 1,
|
|
||||||
"SendArgs": 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func (x StreamDataPacketType) Enum() *StreamDataPacketType {
|
|
||||||
p := new(StreamDataPacketType)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x StreamDataPacketType) String() string {
|
|
||||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (StreamDataPacketType) Descriptor() protoreflect.EnumDescriptor {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_enumTypes[0].Descriptor()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (StreamDataPacketType) Type() protoreflect.EnumType {
|
|
||||||
return &file_pkgs_grpc_hub_hub_proto_enumTypes[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x StreamDataPacketType) Number() protoreflect.EnumNumber {
|
|
||||||
return protoreflect.EnumNumber(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use StreamDataPacketType.Descriptor instead.
|
|
||||||
func (StreamDataPacketType) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type ExecuteIOPlanReq struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Plan string `protobuf:"bytes,1,opt,name=Plan,proto3" json:"Plan,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanReq) Reset() {
|
|
||||||
*x = ExecuteIOPlanReq{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[0]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanReq) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ExecuteIOPlanReq) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanReq) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[0]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ExecuteIOPlanReq.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ExecuteIOPlanReq) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanReq) GetPlan() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Plan
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type ExecuteIOPlanResp struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanResp) Reset() {
|
|
||||||
*x = ExecuteIOPlanResp{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[1]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanResp) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ExecuteIOPlanResp) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ExecuteIOPlanResp) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[1]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ExecuteIOPlanResp.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ExecuteIOPlanResp) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{1}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 文件数据。注意:只在Type为Data或EOF的时候,Data字段才能有数据
|
|
||||||
type FileDataPacket struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Type StreamDataPacketType `protobuf:"varint,1,opt,name=Type,proto3,enum=StreamDataPacketType" json:"Type,omitempty"`
|
|
||||||
Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileDataPacket) Reset() {
|
|
||||||
*x = FileDataPacket{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[2]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileDataPacket) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*FileDataPacket) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *FileDataPacket) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[2]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use FileDataPacket.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FileDataPacket) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{2}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileDataPacket) GetType() StreamDataPacketType {
|
|
||||||
if x != nil {
|
|
||||||
return x.Type
|
|
||||||
}
|
|
||||||
return StreamDataPacketType_EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileDataPacket) GetData() []byte {
|
|
||||||
if x != nil {
|
|
||||||
return x.Data
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// 注:EOF时data也可能有数据
|
|
||||||
type StreamDataPacket struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Type StreamDataPacketType `protobuf:"varint,1,opt,name=Type,proto3,enum=StreamDataPacketType" json:"Type,omitempty"`
|
|
||||||
PlanID string `protobuf:"bytes,2,opt,name=PlanID,proto3" json:"PlanID,omitempty"`
|
|
||||||
VarID int32 `protobuf:"varint,3,opt,name=VarID,proto3" json:"VarID,omitempty"`
|
|
||||||
Data []byte `protobuf:"bytes,4,opt,name=Data,proto3" json:"Data,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) Reset() {
|
|
||||||
*x = StreamDataPacket{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[3]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*StreamDataPacket) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[3]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use StreamDataPacket.ProtoReflect.Descriptor instead.
|
|
||||||
func (*StreamDataPacket) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{3}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) GetType() StreamDataPacketType {
|
|
||||||
if x != nil {
|
|
||||||
return x.Type
|
|
||||||
}
|
|
||||||
return StreamDataPacketType_EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) GetPlanID() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.PlanID
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) GetVarID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.VarID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *StreamDataPacket) GetData() []byte {
|
|
||||||
if x != nil {
|
|
||||||
return x.Data
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type SendStreamResp struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendStreamResp) Reset() {
|
|
||||||
*x = SendStreamResp{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[4]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendStreamResp) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*SendStreamResp) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *SendStreamResp) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[4]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use SendStreamResp.ProtoReflect.Descriptor instead.
|
|
||||||
func (*SendStreamResp) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{4}
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetStreamReq struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
PlanID string `protobuf:"bytes,1,opt,name=PlanID,proto3" json:"PlanID,omitempty"`
|
|
||||||
VarID int32 `protobuf:"varint,2,opt,name=VarID,proto3" json:"VarID,omitempty"`
|
|
||||||
SignalID int32 `protobuf:"varint,3,opt,name=SignalID,proto3" json:"SignalID,omitempty"`
|
|
||||||
Signal string `protobuf:"bytes,4,opt,name=Signal,proto3" json:"Signal,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) Reset() {
|
|
||||||
*x = GetStreamReq{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[5]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GetStreamReq) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[5]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use GetStreamReq.ProtoReflect.Descriptor instead.
|
|
||||||
func (*GetStreamReq) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{5}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) GetPlanID() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.PlanID
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) GetVarID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.VarID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) GetSignalID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.SignalID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetStreamReq) GetSignal() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Signal
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type SendVarReq struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
PlanID string `protobuf:"bytes,1,opt,name=PlanID,proto3" json:"PlanID,omitempty"`
|
|
||||||
VarID int32 `protobuf:"varint,2,opt,name=VarID,proto3" json:"VarID,omitempty"`
|
|
||||||
VarValue string `protobuf:"bytes,3,opt,name=VarValue,proto3" json:"VarValue,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarReq) Reset() {
|
|
||||||
*x = SendVarReq{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[6]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarReq) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*SendVarReq) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *SendVarReq) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[6]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use SendVarReq.ProtoReflect.Descriptor instead.
|
|
||||||
func (*SendVarReq) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{6}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarReq) GetPlanID() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.PlanID
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarReq) GetVarID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.VarID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarReq) GetVarValue() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.VarValue
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type SendVarResp struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarResp) Reset() {
|
|
||||||
*x = SendVarResp{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[7]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SendVarResp) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*SendVarResp) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *SendVarResp) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[7]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use SendVarResp.ProtoReflect.Descriptor instead.
|
|
||||||
func (*SendVarResp) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{7}
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetVarReq struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
PlanID string `protobuf:"bytes,1,opt,name=PlanID,proto3" json:"PlanID,omitempty"`
|
|
||||||
VarID int32 `protobuf:"varint,2,opt,name=VarID,proto3" json:"VarID,omitempty"`
|
|
||||||
SignalID int32 `protobuf:"varint,3,opt,name=SignalID,proto3" json:"SignalID,omitempty"`
|
|
||||||
Signal string `protobuf:"bytes,4,opt,name=Signal,proto3" json:"Signal,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) Reset() {
|
|
||||||
*x = GetVarReq{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[8]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GetVarReq) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *GetVarReq) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[8]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use GetVarReq.ProtoReflect.Descriptor instead.
|
|
||||||
func (*GetVarReq) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{8}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) GetPlanID() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.PlanID
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) GetVarID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.VarID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) GetSignalID() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.SignalID
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarReq) GetSignal() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Signal
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetVarResp struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Var string `protobuf:"bytes,1,opt,name=Var,proto3" json:"Var,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarResp) Reset() {
|
|
||||||
*x = GetVarResp{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[9]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarResp) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GetVarResp) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *GetVarResp) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[9]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use GetVarResp.ProtoReflect.Descriptor instead.
|
|
||||||
func (*GetVarResp) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{9}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *GetVarResp) GetVar() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Var
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type PingReq struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *PingReq) Reset() {
|
|
||||||
*x = PingReq{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[10]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *PingReq) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*PingReq) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *PingReq) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[10]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use PingReq.ProtoReflect.Descriptor instead.
|
|
||||||
func (*PingReq) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{10}
|
|
||||||
}
|
|
||||||
|
|
||||||
type PingResp struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *PingResp) Reset() {
|
|
||||||
*x = PingResp{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[11]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *PingResp) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*PingResp) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *PingResp) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_pkgs_grpc_hub_hub_proto_msgTypes[11]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use PingResp.ProtoReflect.Descriptor instead.
|
|
||||||
func (*PingResp) Descriptor() ([]byte, []int) {
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescGZIP(), []int{11}
|
|
||||||
}
|
|
||||||
|
|
||||||
var File_pkgs_grpc_hub_hub_proto protoreflect.FileDescriptor
|
|
||||||
|
|
||||||
var file_pkgs_grpc_hub_hub_proto_rawDesc = []byte{
|
|
||||||
0x0a, 0x17, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x75, 0x62, 0x2f,
|
|
||||||
0x68, 0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x10, 0x45, 0x78, 0x65,
|
|
||||||
0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a,
|
|
||||||
0x04, 0x50, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x6c, 0x61,
|
|
||||||
0x6e, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c,
|
|
||||||
0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61,
|
|
||||||
0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
|
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44,
|
|
||||||
0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54,
|
|
||||||
0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x7f, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61,
|
|
||||||
0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x54,
|
|
||||||
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x53, 0x74, 0x72, 0x65,
|
|
||||||
0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65,
|
|
||||||
0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44,
|
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x14,
|
|
||||||
0x0a, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56,
|
|
||||||
0x61, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01,
|
|
||||||
0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64,
|
|
||||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x47, 0x65,
|
|
||||||
0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x6c,
|
|
||||||
0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x6e,
|
|
||||||
0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x05, 0x52, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e,
|
|
||||||
0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e,
|
|
||||||
0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x04,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x56, 0x0a, 0x0a,
|
|
||||||
0x53, 0x65, 0x6e, 0x64, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x6c,
|
|
||||||
0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x6e,
|
|
||||||
0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x05, 0x52, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x56,
|
|
||||||
0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x56, 0x61, 0x72, 0x56,
|
|
||||||
0x61, 0x6c, 0x75, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x56, 0x61, 0x72, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x22, 0x6d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71,
|
|
||||||
0x12, 0x16, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
|
||||||
0x52, 0x06, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x72, 0x49,
|
|
||||||
0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x61, 0x72, 0x49, 0x44, 0x12, 0x1a,
|
|
||||||
0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
|
|
||||||
0x52, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x69,
|
|
||||||
0x67, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x69, 0x67, 0x6e,
|
|
||||||
0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70,
|
|
||||||
0x12, 0x10, 0x0a, 0x03, 0x56, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x56,
|
|
||||||
0x61, 0x72, 0x22, 0x09, 0x0a, 0x07, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x22, 0x0a, 0x0a,
|
|
||||||
0x08, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x2a, 0x37, 0x0a, 0x14, 0x53, 0x74, 0x72,
|
|
||||||
0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70,
|
|
||||||
0x65, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x4f, 0x46, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61,
|
|
||||||
0x74, 0x61, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x72, 0x67, 0x73,
|
|
||||||
0x10, 0x02, 0x32, 0x94, 0x02, 0x0a, 0x03, 0x48, 0x75, 0x62, 0x12, 0x38, 0x0a, 0x0d, 0x45, 0x78,
|
|
||||||
0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x11, 0x2e, 0x45, 0x78,
|
|
||||||
0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x12,
|
|
||||||
0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65,
|
|
||||||
0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65,
|
|
||||||
0x61, 0x6d, 0x12, 0x11, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50,
|
|
||||||
0x61, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x0f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65,
|
|
||||||
0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x28, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x47, 0x65,
|
|
||||||
0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72,
|
|
||||||
0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44,
|
|
||||||
0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x26, 0x0a,
|
|
||||||
0x07, 0x53, 0x65, 0x6e, 0x64, 0x56, 0x61, 0x72, 0x12, 0x0b, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x56,
|
|
||||||
0x61, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x56, 0x61, 0x72, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x23, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x12,
|
|
||||||
0x0a, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0b, 0x2e, 0x47, 0x65,
|
|
||||||
0x74, 0x56, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x1d, 0x0a, 0x04, 0x50, 0x69,
|
|
||||||
0x6e, 0x67, 0x12, 0x08, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x50,
|
|
||||||
0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x68,
|
|
||||||
0x75, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
file_pkgs_grpc_hub_hub_proto_rawDescOnce sync.Once
|
|
||||||
file_pkgs_grpc_hub_hub_proto_rawDescData = file_pkgs_grpc_hub_hub_proto_rawDesc
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_pkgs_grpc_hub_hub_proto_rawDescGZIP() []byte {
|
|
||||||
file_pkgs_grpc_hub_hub_proto_rawDescOnce.Do(func() {
|
|
||||||
file_pkgs_grpc_hub_hub_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkgs_grpc_hub_hub_proto_rawDescData)
|
|
||||||
})
|
|
||||||
return file_pkgs_grpc_hub_hub_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_pkgs_grpc_hub_hub_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
|
||||||
var file_pkgs_grpc_hub_hub_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
|
||||||
var file_pkgs_grpc_hub_hub_proto_goTypes = []any{
|
|
||||||
(StreamDataPacketType)(0), // 0: StreamDataPacketType
|
|
||||||
(*ExecuteIOPlanReq)(nil), // 1: ExecuteIOPlanReq
|
|
||||||
(*ExecuteIOPlanResp)(nil), // 2: ExecuteIOPlanResp
|
|
||||||
(*FileDataPacket)(nil), // 3: FileDataPacket
|
|
||||||
(*StreamDataPacket)(nil), // 4: StreamDataPacket
|
|
||||||
(*SendStreamResp)(nil), // 5: SendStreamResp
|
|
||||||
(*GetStreamReq)(nil), // 6: GetStreamReq
|
|
||||||
(*SendVarReq)(nil), // 7: SendVarReq
|
|
||||||
(*SendVarResp)(nil), // 8: SendVarResp
|
|
||||||
(*GetVarReq)(nil), // 9: GetVarReq
|
|
||||||
(*GetVarResp)(nil), // 10: GetVarResp
|
|
||||||
(*PingReq)(nil), // 11: PingReq
|
|
||||||
(*PingResp)(nil), // 12: PingResp
|
|
||||||
}
|
|
||||||
var file_pkgs_grpc_hub_hub_proto_depIdxs = []int32{
|
|
||||||
0, // 0: FileDataPacket.Type:type_name -> StreamDataPacketType
|
|
||||||
0, // 1: StreamDataPacket.Type:type_name -> StreamDataPacketType
|
|
||||||
1, // 2: Hub.ExecuteIOPlan:input_type -> ExecuteIOPlanReq
|
|
||||||
4, // 3: Hub.SendStream:input_type -> StreamDataPacket
|
|
||||||
6, // 4: Hub.GetStream:input_type -> GetStreamReq
|
|
||||||
7, // 5: Hub.SendVar:input_type -> SendVarReq
|
|
||||||
9, // 6: Hub.GetVar:input_type -> GetVarReq
|
|
||||||
11, // 7: Hub.Ping:input_type -> PingReq
|
|
||||||
2, // 8: Hub.ExecuteIOPlan:output_type -> ExecuteIOPlanResp
|
|
||||||
5, // 9: Hub.SendStream:output_type -> SendStreamResp
|
|
||||||
4, // 10: Hub.GetStream:output_type -> StreamDataPacket
|
|
||||||
8, // 11: Hub.SendVar:output_type -> SendVarResp
|
|
||||||
10, // 12: Hub.GetVar:output_type -> GetVarResp
|
|
||||||
12, // 13: Hub.Ping:output_type -> PingResp
|
|
||||||
8, // [8:14] is the sub-list for method output_type
|
|
||||||
2, // [2:8] 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_pkgs_grpc_hub_hub_proto_init() }
|
|
||||||
func file_pkgs_grpc_hub_hub_proto_init() {
|
|
||||||
if File_pkgs_grpc_hub_hub_proto != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !protoimpl.UnsafeEnabled {
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[0].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*ExecuteIOPlanReq); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[1].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*ExecuteIOPlanResp); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[2].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*FileDataPacket); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[3].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*StreamDataPacket); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[4].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*SendStreamResp); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[5].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*GetStreamReq); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[6].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*SendVarReq); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[7].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*SendVarResp); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[8].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*GetVarReq); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[9].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*GetVarResp); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[10].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*PingReq); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_pkgs_grpc_hub_hub_proto_msgTypes[11].Exporter = func(v any, i int) any {
|
|
||||||
switch v := v.(*PingResp); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
type x struct{}
|
|
||||||
out := protoimpl.TypeBuilder{
|
|
||||||
File: protoimpl.DescBuilder{
|
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
||||||
RawDescriptor: file_pkgs_grpc_hub_hub_proto_rawDesc,
|
|
||||||
NumEnums: 1,
|
|
||||||
NumMessages: 12,
|
|
||||||
NumExtensions: 0,
|
|
||||||
NumServices: 1,
|
|
||||||
},
|
|
||||||
GoTypes: file_pkgs_grpc_hub_hub_proto_goTypes,
|
|
||||||
DependencyIndexes: file_pkgs_grpc_hub_hub_proto_depIdxs,
|
|
||||||
EnumInfos: file_pkgs_grpc_hub_hub_proto_enumTypes,
|
|
||||||
MessageInfos: file_pkgs_grpc_hub_hub_proto_msgTypes,
|
|
||||||
}.Build()
|
|
||||||
File_pkgs_grpc_hub_hub_proto = out.File
|
|
||||||
file_pkgs_grpc_hub_hub_proto_rawDesc = nil
|
|
||||||
file_pkgs_grpc_hub_hub_proto_goTypes = nil
|
|
||||||
file_pkgs_grpc_hub_hub_proto_depIdxs = nil
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
// 使用的语法版本
|
|
||||||
syntax = "proto3";
|
|
||||||
|
|
||||||
// 生成的go文件包
|
|
||||||
option go_package = ".;hub";//grpc这里生效了
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
message ExecuteIOPlanReq {
|
|
||||||
string Plan = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ExecuteIOPlanResp {
|
|
||||||
}
|
|
||||||
|
|
||||||
enum StreamDataPacketType {
|
|
||||||
EOF = 0;
|
|
||||||
Data = 1;
|
|
||||||
SendArgs = 2;
|
|
||||||
}
|
|
||||||
// 文件数据。注意:只在Type为Data或EOF的时候,Data字段才能有数据
|
|
||||||
message FileDataPacket {
|
|
||||||
StreamDataPacketType Type = 1;
|
|
||||||
bytes Data = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 注:EOF时data也可能有数据
|
|
||||||
message StreamDataPacket {
|
|
||||||
StreamDataPacketType Type = 1;
|
|
||||||
string PlanID = 2;
|
|
||||||
int32 VarID = 3;
|
|
||||||
bytes Data = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SendStreamResp {}
|
|
||||||
|
|
||||||
message GetStreamReq {
|
|
||||||
string PlanID = 1;
|
|
||||||
int32 VarID = 2;
|
|
||||||
int32 SignalID = 3;
|
|
||||||
string Signal = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SendVarReq {
|
|
||||||
string PlanID = 1;
|
|
||||||
int32 VarID = 2;
|
|
||||||
string VarValue = 3;
|
|
||||||
}
|
|
||||||
message SendVarResp {}
|
|
||||||
|
|
||||||
message GetVarReq {
|
|
||||||
string PlanID = 1;
|
|
||||||
int32 VarID = 2;
|
|
||||||
int32 SignalID = 3;
|
|
||||||
string Signal = 4;
|
|
||||||
}
|
|
||||||
message GetVarResp {
|
|
||||||
string Var = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message PingReq {}
|
|
||||||
message PingResp {}
|
|
||||||
|
|
||||||
service Hub {
|
|
||||||
rpc ExecuteIOPlan(ExecuteIOPlanReq) returns(ExecuteIOPlanResp){}
|
|
||||||
|
|
||||||
rpc SendStream(stream StreamDataPacket)returns(SendStreamResp){}
|
|
||||||
rpc GetStream(GetStreamReq)returns(stream StreamDataPacket){}
|
|
||||||
|
|
||||||
rpc SendVar(SendVarReq)returns(SendVarResp){}
|
|
||||||
rpc GetVar(GetVarReq)returns(GetVarResp){}
|
|
||||||
|
|
||||||
rpc Ping(PingReq) returns(PingResp){}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,358 +0,0 @@
|
||||||
// 使用的语法版本
|
|
||||||
|
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
|
||||||
// - protoc v4.22.3
|
|
||||||
// source: pkgs/grpc/hub/hub.proto
|
|
||||||
|
|
||||||
package hub
|
|
||||||
|
|
||||||
import (
|
|
||||||
context "context"
|
|
||||||
grpc "google.golang.org/grpc"
|
|
||||||
codes "google.golang.org/grpc/codes"
|
|
||||||
status "google.golang.org/grpc/status"
|
|
||||||
)
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the grpc package it is being compiled against.
|
|
||||||
// Requires gRPC-Go v1.32.0 or later.
|
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
|
||||||
|
|
||||||
const (
|
|
||||||
Hub_ExecuteIOPlan_FullMethodName = "/Hub/ExecuteIOPlan"
|
|
||||||
Hub_SendStream_FullMethodName = "/Hub/SendStream"
|
|
||||||
Hub_GetStream_FullMethodName = "/Hub/GetStream"
|
|
||||||
Hub_SendVar_FullMethodName = "/Hub/SendVar"
|
|
||||||
Hub_GetVar_FullMethodName = "/Hub/GetVar"
|
|
||||||
Hub_Ping_FullMethodName = "/Hub/Ping"
|
|
||||||
)
|
|
||||||
|
|
||||||
// HubClient is the client API for Hub service.
|
|
||||||
//
|
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
|
||||||
type HubClient interface {
|
|
||||||
ExecuteIOPlan(ctx context.Context, in *ExecuteIOPlanReq, opts ...grpc.CallOption) (*ExecuteIOPlanResp, error)
|
|
||||||
SendStream(ctx context.Context, opts ...grpc.CallOption) (Hub_SendStreamClient, error)
|
|
||||||
GetStream(ctx context.Context, in *GetStreamReq, opts ...grpc.CallOption) (Hub_GetStreamClient, error)
|
|
||||||
SendVar(ctx context.Context, in *SendVarReq, opts ...grpc.CallOption) (*SendVarResp, error)
|
|
||||||
GetVar(ctx context.Context, in *GetVarReq, opts ...grpc.CallOption) (*GetVarResp, error)
|
|
||||||
Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
type hubClient struct {
|
|
||||||
cc grpc.ClientConnInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewHubClient(cc grpc.ClientConnInterface) HubClient {
|
|
||||||
return &hubClient{cc}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) ExecuteIOPlan(ctx context.Context, in *ExecuteIOPlanReq, opts ...grpc.CallOption) (*ExecuteIOPlanResp, error) {
|
|
||||||
out := new(ExecuteIOPlanResp)
|
|
||||||
err := c.cc.Invoke(ctx, Hub_ExecuteIOPlan_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) SendStream(ctx context.Context, opts ...grpc.CallOption) (Hub_SendStreamClient, error) {
|
|
||||||
stream, err := c.cc.NewStream(ctx, &Hub_ServiceDesc.Streams[0], Hub_SendStream_FullMethodName, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
x := &hubSendStreamClient{stream}
|
|
||||||
return x, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type Hub_SendStreamClient interface {
|
|
||||||
Send(*StreamDataPacket) error
|
|
||||||
CloseAndRecv() (*SendStreamResp, error)
|
|
||||||
grpc.ClientStream
|
|
||||||
}
|
|
||||||
|
|
||||||
type hubSendStreamClient struct {
|
|
||||||
grpc.ClientStream
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubSendStreamClient) Send(m *StreamDataPacket) error {
|
|
||||||
return x.ClientStream.SendMsg(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubSendStreamClient) CloseAndRecv() (*SendStreamResp, error) {
|
|
||||||
if err := x.ClientStream.CloseSend(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
m := new(SendStreamResp)
|
|
||||||
if err := x.ClientStream.RecvMsg(m); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) GetStream(ctx context.Context, in *GetStreamReq, opts ...grpc.CallOption) (Hub_GetStreamClient, error) {
|
|
||||||
stream, err := c.cc.NewStream(ctx, &Hub_ServiceDesc.Streams[1], Hub_GetStream_FullMethodName, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
x := &hubGetStreamClient{stream}
|
|
||||||
if err := x.ClientStream.SendMsg(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err := x.ClientStream.CloseSend(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return x, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type Hub_GetStreamClient interface {
|
|
||||||
Recv() (*StreamDataPacket, error)
|
|
||||||
grpc.ClientStream
|
|
||||||
}
|
|
||||||
|
|
||||||
type hubGetStreamClient struct {
|
|
||||||
grpc.ClientStream
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubGetStreamClient) Recv() (*StreamDataPacket, error) {
|
|
||||||
m := new(StreamDataPacket)
|
|
||||||
if err := x.ClientStream.RecvMsg(m); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) SendVar(ctx context.Context, in *SendVarReq, opts ...grpc.CallOption) (*SendVarResp, error) {
|
|
||||||
out := new(SendVarResp)
|
|
||||||
err := c.cc.Invoke(ctx, Hub_SendVar_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) GetVar(ctx context.Context, in *GetVarReq, opts ...grpc.CallOption) (*GetVarResp, error) {
|
|
||||||
out := new(GetVarResp)
|
|
||||||
err := c.cc.Invoke(ctx, Hub_GetVar_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *hubClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) {
|
|
||||||
out := new(PingResp)
|
|
||||||
err := c.cc.Invoke(ctx, Hub_Ping_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// HubServer is the server API for Hub service.
|
|
||||||
// All implementations must embed UnimplementedHubServer
|
|
||||||
// for forward compatibility
|
|
||||||
type HubServer interface {
|
|
||||||
ExecuteIOPlan(context.Context, *ExecuteIOPlanReq) (*ExecuteIOPlanResp, error)
|
|
||||||
SendStream(Hub_SendStreamServer) error
|
|
||||||
GetStream(*GetStreamReq, Hub_GetStreamServer) error
|
|
||||||
SendVar(context.Context, *SendVarReq) (*SendVarResp, error)
|
|
||||||
GetVar(context.Context, *GetVarReq) (*GetVarResp, error)
|
|
||||||
Ping(context.Context, *PingReq) (*PingResp, error)
|
|
||||||
mustEmbedUnimplementedHubServer()
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnimplementedHubServer must be embedded to have forward compatible implementations.
|
|
||||||
type UnimplementedHubServer struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (UnimplementedHubServer) ExecuteIOPlan(context.Context, *ExecuteIOPlanReq) (*ExecuteIOPlanResp, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method ExecuteIOPlan not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) SendStream(Hub_SendStreamServer) error {
|
|
||||||
return status.Errorf(codes.Unimplemented, "method SendStream not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) GetStream(*GetStreamReq, Hub_GetStreamServer) error {
|
|
||||||
return status.Errorf(codes.Unimplemented, "method GetStream not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) SendVar(context.Context, *SendVarReq) (*SendVarResp, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method SendVar not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) GetVar(context.Context, *GetVarReq) (*GetVarResp, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetVar not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) Ping(context.Context, *PingReq) (*PingResp, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedHubServer) mustEmbedUnimplementedHubServer() {}
|
|
||||||
|
|
||||||
// UnsafeHubServer may be embedded to opt out of forward compatibility for this service.
|
|
||||||
// Use of this interface is not recommended, as added methods to HubServer will
|
|
||||||
// result in compilation errors.
|
|
||||||
type UnsafeHubServer interface {
|
|
||||||
mustEmbedUnimplementedHubServer()
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterHubServer(s grpc.ServiceRegistrar, srv HubServer) {
|
|
||||||
s.RegisterService(&Hub_ServiceDesc, srv)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_ExecuteIOPlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(ExecuteIOPlanReq)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(HubServer).ExecuteIOPlan(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: Hub_ExecuteIOPlan_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(HubServer).ExecuteIOPlan(ctx, req.(*ExecuteIOPlanReq))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_SendStream_Handler(srv interface{}, stream grpc.ServerStream) error {
|
|
||||||
return srv.(HubServer).SendStream(&hubSendStreamServer{stream})
|
|
||||||
}
|
|
||||||
|
|
||||||
type Hub_SendStreamServer interface {
|
|
||||||
SendAndClose(*SendStreamResp) error
|
|
||||||
Recv() (*StreamDataPacket, error)
|
|
||||||
grpc.ServerStream
|
|
||||||
}
|
|
||||||
|
|
||||||
type hubSendStreamServer struct {
|
|
||||||
grpc.ServerStream
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubSendStreamServer) SendAndClose(m *SendStreamResp) error {
|
|
||||||
return x.ServerStream.SendMsg(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubSendStreamServer) Recv() (*StreamDataPacket, error) {
|
|
||||||
m := new(StreamDataPacket)
|
|
||||||
if err := x.ServerStream.RecvMsg(m); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_GetStream_Handler(srv interface{}, stream grpc.ServerStream) error {
|
|
||||||
m := new(GetStreamReq)
|
|
||||||
if err := stream.RecvMsg(m); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return srv.(HubServer).GetStream(m, &hubGetStreamServer{stream})
|
|
||||||
}
|
|
||||||
|
|
||||||
type Hub_GetStreamServer interface {
|
|
||||||
Send(*StreamDataPacket) error
|
|
||||||
grpc.ServerStream
|
|
||||||
}
|
|
||||||
|
|
||||||
type hubGetStreamServer struct {
|
|
||||||
grpc.ServerStream
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *hubGetStreamServer) Send(m *StreamDataPacket) error {
|
|
||||||
return x.ServerStream.SendMsg(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_SendVar_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(SendVarReq)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(HubServer).SendVar(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: Hub_SendVar_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(HubServer).SendVar(ctx, req.(*SendVarReq))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_GetVar_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(GetVarReq)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(HubServer).GetVar(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: Hub_GetVar_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(HubServer).GetVar(ctx, req.(*GetVarReq))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _Hub_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(PingReq)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(HubServer).Ping(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: Hub_Ping_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(HubServer).Ping(ctx, req.(*PingReq))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hub_ServiceDesc is the grpc.ServiceDesc for Hub service.
|
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
|
||||||
// and not to be introspected or modified (even as a copy)
|
|
||||||
var Hub_ServiceDesc = grpc.ServiceDesc{
|
|
||||||
ServiceName: "Hub",
|
|
||||||
HandlerType: (*HubServer)(nil),
|
|
||||||
Methods: []grpc.MethodDesc{
|
|
||||||
{
|
|
||||||
MethodName: "ExecuteIOPlan",
|
|
||||||
Handler: _Hub_ExecuteIOPlan_Handler,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MethodName: "SendVar",
|
|
||||||
Handler: _Hub_SendVar_Handler,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MethodName: "GetVar",
|
|
||||||
Handler: _Hub_GetVar_Handler,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MethodName: "Ping",
|
|
||||||
Handler: _Hub_Ping_Handler,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Streams: []grpc.StreamDesc{
|
|
||||||
{
|
|
||||||
StreamName: "SendStream",
|
|
||||||
Handler: _Hub_SendStream_Handler,
|
|
||||||
ClientStreams: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
StreamName: "GetStream",
|
|
||||||
Handler: _Hub_GetStream_Handler,
|
|
||||||
ServerStreams: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Metadata: "pkgs/grpc/hub/hub.proto",
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
package hub
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
sync "sync"
|
|
||||||
)
|
|
||||||
|
|
||||||
type PoolConfig struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
type PoolClient struct {
|
|
||||||
*Client
|
|
||||||
owner *Pool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *PoolClient) Close() {
|
|
||||||
c.owner.Release(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
type Pool struct {
|
|
||||||
grpcCfg *PoolConfig
|
|
||||||
shareds map[string]*PoolClient
|
|
||||||
lock sync.Mutex
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPool(grpcCfg *PoolConfig) *Pool {
|
|
||||||
return &Pool{
|
|
||||||
grpcCfg: grpcCfg,
|
|
||||||
shareds: make(map[string]*PoolClient),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取一个GRPC客户端。由于事先不能知道所有hub的GRPC配置信息,所以只能让调用者把建立连接所需的配置都传递进来,
|
|
||||||
// Pool来决定要不要新建客户端。
|
|
||||||
func (p *Pool) Acquire(ip string, port int) (*PoolClient, error) {
|
|
||||||
addr := fmt.Sprintf("%s:%d", ip, port)
|
|
||||||
|
|
||||||
p.lock.Lock()
|
|
||||||
defer p.lock.Unlock()
|
|
||||||
|
|
||||||
cli, ok := p.shareds[addr]
|
|
||||||
if !ok {
|
|
||||||
c, err := NewClient(addr)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
cli = &PoolClient{
|
|
||||||
Client: c,
|
|
||||||
owner: p,
|
|
||||||
}
|
|
||||||
p.shareds[addr] = cli
|
|
||||||
}
|
|
||||||
|
|
||||||
return cli, nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *Pool) Release(cli *PoolClient) {
|
|
||||||
// TODO 释放长时间未使用的client
|
|
||||||
}
|
|
|
@ -54,6 +54,10 @@ func (p *Pool) Get() *Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
p.grpcCon = con
|
p.grpcCon = con
|
||||||
|
|
||||||
|
} else if con.stopClosing != nil {
|
||||||
|
close(con.stopClosing)
|
||||||
|
con.stopClosing = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
con.refCount++
|
con.refCount++
|
||||||
|
@ -86,8 +90,8 @@ func (p *Pool) release() {
|
||||||
p.lock.Lock()
|
p.lock.Lock()
|
||||||
defer p.lock.Unlock()
|
defer p.lock.Unlock()
|
||||||
|
|
||||||
if grpcCon.refCount == 0 {
|
if p.grpcCon.refCount == 0 {
|
||||||
grpcCon.grpcCon.Close()
|
p.grpcCon.grpcCon.Close()
|
||||||
p.grpcCon = nil
|
p.grpcCon = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,9 @@ func (p *Pool) Get(ip string, port int) *Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
p.grpcCons[ga] = con
|
p.grpcCons[ga] = con
|
||||||
|
} else if con.stopClosing != nil {
|
||||||
|
close(con.stopClosing)
|
||||||
|
con.stopClosing = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
con.refCount++
|
con.refCount++
|
||||||
|
@ -96,6 +99,11 @@ func (p *Pool) release(addr grpcAddr) {
|
||||||
p.lock.Lock()
|
p.lock.Lock()
|
||||||
defer p.lock.Unlock()
|
defer p.lock.Unlock()
|
||||||
|
|
||||||
|
grpcCon := p.grpcCons[addr]
|
||||||
|
if grpcCon == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if grpcCon.refCount == 0 {
|
if grpcCon.refCount == 0 {
|
||||||
grpcCon.grpcCon.Close()
|
grpcCon.grpcCon.Close()
|
||||||
delete(p.grpcCons, addr)
|
delete(p.grpcCons, addr)
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"gitlink.org.cn/cloudream/common/pkgs/async"
|
"gitlink.org.cn/cloudream/common/pkgs/async"
|
||||||
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -40,6 +41,7 @@ func NewServerBase(cfg Config, srvImpl any, svcDesc *grpc.ServiceDesc) *ServerBa
|
||||||
func (s *ServerBase) Start() *ServerEventChan {
|
func (s *ServerBase) Start() *ServerEventChan {
|
||||||
ch := async.NewUnboundChannel[RPCServerEvent]()
|
ch := async.NewUnboundChannel[RPCServerEvent]()
|
||||||
go func() {
|
go func() {
|
||||||
|
logger.Infof("start serving rpc at: %v", s.cfg.Listen)
|
||||||
lis, err := net.Listen("tcp", s.cfg.Listen)
|
lis, err := net.Listen("tcp", s.cfg.Listen)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ch.Send(&ExitEvent{Err: err})
|
ch.Send(&ExitEvent{Err: err})
|
||||||
|
|
|
@ -25,8 +25,6 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func migrate(configPath string) {
|
func migrate(configPath string) {
|
||||||
// TODO 将create_database.sql的内容逐渐移动到这里来
|
|
||||||
|
|
||||||
err := config.Init(configPath)
|
err := config.Init(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
|
|
|
@ -27,21 +27,26 @@ import (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
var configPath string
|
var configPath string
|
||||||
var httpAddr string
|
var opt serveOptions
|
||||||
|
cmd := cobra.Command{
|
||||||
cmd := &cobra.Command{
|
|
||||||
Use: "serve",
|
Use: "serve",
|
||||||
Short: "start jcs-pub hub service",
|
Short: "start serving hub",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
serve(configPath, httpAddr)
|
serve(configPath, opt)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
cmd.Flags().StringVarP(&configPath, "config", "c", "", "path to config file")
|
cmd.Flags().StringVarP(&configPath, "config", "c", "", "config file path")
|
||||||
cmd.Flags().StringVarP(&httpAddr, "http", "", "127.0.0.1:8890", "http listen address")
|
cmd.Flags().BoolVarP(&opt.DisableHTTP, "no-http", "", false, "disable http server")
|
||||||
RootCmd.AddCommand(cmd)
|
cmd.Flags().StringVarP(&opt.HTTPListenAddr, "http", "", "", "http listen address, will override config file")
|
||||||
|
RootCmd.AddCommand(&cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
func serve(configPath string, httpAddr string) {
|
type serveOptions struct {
|
||||||
|
DisableHTTP bool
|
||||||
|
HTTPListenAddr string
|
||||||
|
}
|
||||||
|
|
||||||
|
func serve(configPath string, opts serveOptions) {
|
||||||
err := config.Init(configPath)
|
err := config.Init(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("init config failed, err: %s", err.Error())
|
fmt.Printf("init config failed, err: %s", err.Error())
|
||||||
|
@ -67,12 +72,18 @@ func serve(configPath string, httpAddr string) {
|
||||||
// 初始化执行器
|
// 初始化执行器
|
||||||
worker := exec.NewWorker()
|
worker := exec.NewWorker()
|
||||||
|
|
||||||
// 初始化HTTP服务
|
// HTTP接口
|
||||||
httpSvr, err := http.NewServer(httpAddr, http.NewService(&worker, stgPool))
|
httpCfg := config.Cfg().HTTP
|
||||||
if err != nil {
|
if !opts.DisableHTTP && httpCfg != nil && httpCfg.Enabled {
|
||||||
logger.Fatalf("new http server failed, err: %s", err.Error())
|
if opts.HTTPListenAddr != "" {
|
||||||
|
httpCfg.Listen = opts.HTTPListenAddr
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
httpCfg = nil
|
||||||
}
|
}
|
||||||
go serveHTTP(httpSvr)
|
httpSvr := http.NewServer(httpCfg, http.NewService(&worker, stgPool))
|
||||||
|
httpChan := httpSvr.Start()
|
||||||
|
defer httpSvr.Stop()
|
||||||
|
|
||||||
// 启动访问统计服务
|
// 启动访问统计服务
|
||||||
// acStat := accessstat.NewAccessStat(accessstat.Config{
|
// acStat := accessstat.NewAccessStat(accessstat.Config{
|
||||||
|
@ -90,7 +101,8 @@ func serve(configPath string, httpAddr string) {
|
||||||
logger.Errorf("new sysevent publisher: %v", err)
|
logger.Errorf("new sysevent publisher: %v", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
go servePublisher(evtPub)
|
evtPubChan := evtPub.Start()
|
||||||
|
defer evtPub.Stop()
|
||||||
|
|
||||||
// 初始化定时任务执行器
|
// 初始化定时任务执行器
|
||||||
tktk := ticktock.New(config.Cfg().TickTock, config.Cfg().ID, stgPool)
|
tktk := ticktock.New(config.Cfg().TickTock, config.Cfg().ID, stgPool)
|
||||||
|
@ -103,11 +115,36 @@ func serve(configPath string, httpAddr string) {
|
||||||
defer rpcSvr.Stop()
|
defer rpcSvr.Stop()
|
||||||
|
|
||||||
/// 开始监听各个模块的事件
|
/// 开始监听各个模块的事件
|
||||||
|
evtPubEvt := evtPubChan.Receive()
|
||||||
rpcEvt := rpcSvrChan.Receive()
|
rpcEvt := rpcSvrChan.Receive()
|
||||||
|
httpEvt := httpChan.Receive()
|
||||||
|
|
||||||
loop:
|
loop:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
|
case e := <-evtPubEvt.Chan():
|
||||||
|
if e.Err != nil {
|
||||||
|
logger.Errorf("receive publisher event: %v", err)
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
|
||||||
|
switch val := e.Value.(type) {
|
||||||
|
case sysevent.PublishError:
|
||||||
|
logger.Errorf("publishing event: %v", val)
|
||||||
|
|
||||||
|
case sysevent.PublisherExited:
|
||||||
|
if val.Err != nil {
|
||||||
|
logger.Errorf("publisher exited with error: %v", val.Err)
|
||||||
|
} else {
|
||||||
|
logger.Info("publisher exited")
|
||||||
|
}
|
||||||
|
break loop
|
||||||
|
|
||||||
|
case sysevent.OtherError:
|
||||||
|
logger.Errorf("sysevent: %v", val)
|
||||||
|
}
|
||||||
|
evtPubEvt = evtPubChan.Receive()
|
||||||
|
|
||||||
case e := <-rpcEvt.Chan():
|
case e := <-rpcEvt.Chan():
|
||||||
if e.Err != nil {
|
if e.Err != nil {
|
||||||
logger.Errorf("receive rpc event: %v", e.Err)
|
logger.Errorf("receive rpc event: %v", e.Err)
|
||||||
|
@ -124,6 +161,19 @@ loop:
|
||||||
break loop
|
break loop
|
||||||
}
|
}
|
||||||
rpcEvt = rpcSvrChan.Receive()
|
rpcEvt = rpcSvrChan.Receive()
|
||||||
|
|
||||||
|
case e := <-httpEvt.Chan():
|
||||||
|
if e.Err != nil {
|
||||||
|
logger.Errorf("receive http event: %v", err)
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
|
||||||
|
switch e := e.Value.(type) {
|
||||||
|
case http.ExitEvent:
|
||||||
|
logger.Infof("http server exited, err: %v", e.Err)
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
httpEvt = httpChan.Receive()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,53 +194,3 @@ func downloadHubConfig() coormq.GetHubConfigResp {
|
||||||
|
|
||||||
return *cfgResp
|
return *cfgResp
|
||||||
}
|
}
|
||||||
|
|
||||||
func servePublisher(evtPub *sysevent.Publisher) {
|
|
||||||
logger.Info("start serving sysevent publisher")
|
|
||||||
|
|
||||||
ch := evtPub.Start()
|
|
||||||
|
|
||||||
loop:
|
|
||||||
for {
|
|
||||||
val, err := ch.Receive().Wait(context.Background())
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("sysevent publisher stopped with error: %s", err.Error())
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
switch val := val.(type) {
|
|
||||||
case sysevent.PublishError:
|
|
||||||
logger.Errorf("publishing event: %v", val)
|
|
||||||
|
|
||||||
case sysevent.PublisherExited:
|
|
||||||
if val.Err != nil {
|
|
||||||
logger.Errorf("publisher exited with error: %v", val.Err)
|
|
||||||
} else {
|
|
||||||
logger.Info("publisher exited")
|
|
||||||
}
|
|
||||||
break loop
|
|
||||||
|
|
||||||
case sysevent.OtherError:
|
|
||||||
logger.Errorf("sysevent: %v", val)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.Info("sysevent publisher stopped")
|
|
||||||
|
|
||||||
// TODO 仅简单结束了程序
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func serveHTTP(server *http.Server) {
|
|
||||||
logger.Info("start serving http")
|
|
||||||
|
|
||||||
err := server.Serve()
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("http stopped with error: %s", err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.Info("http stopped")
|
|
||||||
|
|
||||||
// TODO 仅简单结束了程序
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc"
|
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc"
|
||||||
corrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/coordinator"
|
corrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/coordinator"
|
||||||
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
|
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
|
||||||
|
"gitlink.org.cn/cloudream/jcs-pub/hub/internal/http"
|
||||||
"gitlink.org.cn/cloudream/jcs-pub/hub/internal/ticktock"
|
"gitlink.org.cn/cloudream/jcs-pub/hub/internal/ticktock"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,6 +16,7 @@ type Config struct {
|
||||||
ID cortypes.HubID `json:"id"`
|
ID cortypes.HubID `json:"id"`
|
||||||
Local stgglb.LocalMachineInfo `json:"local"`
|
Local stgglb.LocalMachineInfo `json:"local"`
|
||||||
RPC rpc.Config `json:"rpc"`
|
RPC rpc.Config `json:"rpc"`
|
||||||
|
HTTP *http.Config `json:"http"`
|
||||||
CoordinatorRPC corrpc.PoolConfig `json:"coordinatorRPC"`
|
CoordinatorRPC corrpc.PoolConfig `json:"coordinatorRPC"`
|
||||||
Logger log.Config `json:"logger"`
|
Logger log.Config `json:"logger"`
|
||||||
RabbitMQ mq.Config `json:"rabbitMQ"`
|
RabbitMQ mq.Config `json:"rabbitMQ"`
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
package http
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
Enabled bool `json:"enabled"`
|
||||||
|
Listen string `json:"listen"`
|
||||||
|
}
|
|
@ -1,46 +1,76 @@
|
||||||
package http
|
package http
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"gitlink.org.cn/cloudream/common/pkgs/async"
|
||||||
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
||||||
hubapi "gitlink.org.cn/cloudream/jcs-pub/hub/sdk/api"
|
hubapi "gitlink.org.cn/cloudream/jcs-pub/hub/sdk/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ServerEventChan = async.UnboundChannel[ServerEvent]
|
||||||
|
|
||||||
|
type ServerEvent interface {
|
||||||
|
IsServerEvent() bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type ExitEvent struct {
|
||||||
|
ServerEvent
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
type Server struct {
|
type Server struct {
|
||||||
engine *gin.Engine
|
cfg *Config
|
||||||
listenAddr string
|
httpSrv *http.Server
|
||||||
svc *Service
|
svc *Service
|
||||||
|
eventChan *ServerEventChan
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServer(listenAddr string, svc *Service) (*Server, error) {
|
func NewServer(cfg *Config, svc *Service) *Server {
|
||||||
engine := gin.New()
|
|
||||||
|
|
||||||
return &Server{
|
return &Server{
|
||||||
engine: engine,
|
cfg: cfg,
|
||||||
listenAddr: listenAddr,
|
svc: svc,
|
||||||
svc: svc,
|
eventChan: async.NewUnboundChannel[ServerEvent](),
|
||||||
}, nil
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) Serve() error {
|
func (s *Server) Start() *ServerEventChan {
|
||||||
s.initRouters()
|
go func() {
|
||||||
|
if s.cfg == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
logger.Infof("start serving http at: %s", s.listenAddr)
|
engine := gin.New()
|
||||||
err := s.engine.Run(s.listenAddr)
|
s.httpSrv = &http.Server{
|
||||||
|
Addr: s.cfg.Listen,
|
||||||
|
Handler: engine,
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
s.initRouters(engine)
|
||||||
logger.Infof("http stopped with error: %s", err.Error())
|
|
||||||
return err
|
logger.Infof("start serving http at: %s", s.cfg.Listen)
|
||||||
|
|
||||||
|
err := s.httpSrv.ListenAndServe()
|
||||||
|
s.eventChan.Send(ExitEvent{Err: err})
|
||||||
|
}()
|
||||||
|
return s.eventChan
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) Stop() {
|
||||||
|
if s.httpSrv == nil {
|
||||||
|
s.eventChan.Send(ExitEvent{})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Infof("http stopped")
|
s.httpSrv.Shutdown(context.Background())
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) initRouters() {
|
func (s *Server) initRouters(engine *gin.Engine) {
|
||||||
s.engine.GET(hubapi.GetStreamPath, s.IOSvc().GetStream)
|
engine.GET(hubapi.GetStreamPath, s.IOSvc().GetStream)
|
||||||
s.engine.POST(hubapi.SendStreamPath, s.IOSvc().SendStream)
|
engine.POST(hubapi.SendStreamPath, s.IOSvc().SendStream)
|
||||||
s.engine.POST(hubapi.ExecuteIOPlanPath, s.IOSvc().ExecuteIOPlan)
|
engine.POST(hubapi.ExecuteIOPlanPath, s.IOSvc().ExecuteIOPlan)
|
||||||
s.engine.POST(hubapi.SendVarPath, s.IOSvc().SendVar)
|
engine.POST(hubapi.SendVarPath, s.IOSvc().SendVar)
|
||||||
s.engine.GET(hubapi.GetVarPath, s.IOSvc().GetVar)
|
engine.GET(hubapi.GetVarPath, s.IOSvc().GetVar)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,6 @@ import (
|
||||||
"gitlink.org.cn/cloudream/common/utils/serder"
|
"gitlink.org.cn/cloudream/common/utils/serder"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO2 重新梳理代码
|
|
||||||
|
|
||||||
const GetStreamPath = "/hubIO/getStream"
|
const GetStreamPath = "/hubIO/getStream"
|
||||||
|
|
||||||
type GetStreamReq struct {
|
type GetStreamReq struct {
|
||||||
|
|
Loading…
Reference in New Issue