mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-15 08:14:46 +08:00
修改ws版本以及结点优化
This commit is contained in:
@@ -6,6 +6,8 @@ import (
|
||||
)
|
||||
|
||||
type Blueprint struct {
|
||||
execNodes []IExecNode // 注册的定义执行结点
|
||||
|
||||
execPool ExecPool
|
||||
graphPool GraphPool
|
||||
|
||||
@@ -15,13 +17,51 @@ type Blueprint struct {
|
||||
cancelTimer func(*uint64)bool
|
||||
}
|
||||
|
||||
func (bm *Blueprint) RegExecNode(execNode IExecNode) {
|
||||
bm.execNodes = append(bm.execNodes, execNode)
|
||||
}
|
||||
|
||||
func (bm *Blueprint) regSysNode(){
|
||||
bm.RegExecNode(&AddInt{})
|
||||
bm.RegExecNode(&SubInt{})
|
||||
bm.RegExecNode(&MulInt{})
|
||||
bm.RegExecNode(&DivInt{})
|
||||
bm.RegExecNode(&ModInt{})
|
||||
bm.RegExecNode(&RandNumber{})
|
||||
|
||||
bm.RegExecNode(&Entrance_ArrayParam{})
|
||||
bm.RegExecNode(&Entrance_IntParam{})
|
||||
bm.RegExecNode(&Entrance_Timer{})
|
||||
bm.RegExecNode(&Output{})
|
||||
bm.RegExecNode(&Sequence{})
|
||||
bm.RegExecNode(&Foreach{})
|
||||
bm.RegExecNode(&ForeachIntArray{})
|
||||
|
||||
bm.RegExecNode(&GetArrayInt{})
|
||||
bm.RegExecNode(&GetArrayString{})
|
||||
bm.RegExecNode(&GetArrayLen{})
|
||||
bm.RegExecNode(&CreateIntArray{})
|
||||
bm.RegExecNode(&CreateStringArray{})
|
||||
bm.RegExecNode(&AppendIntegerToArray{})
|
||||
bm.RegExecNode(&AppendStringToArray{})
|
||||
|
||||
bm.RegExecNode(&BoolIf{})
|
||||
bm.RegExecNode(&GreaterThanInteger{})
|
||||
bm.RegExecNode(&LessThanInteger{})
|
||||
bm.RegExecNode(&EqualInteger{})
|
||||
bm.RegExecNode(&RangeCompare{})
|
||||
bm.RegExecNode(&Probability{})
|
||||
bm.RegExecNode(&CreateTimer{})
|
||||
}
|
||||
|
||||
func (bm *Blueprint) Init(execDefFilePath string, graphFilePath string, blueprintModule IBlueprintModule,cancelTimer func(*uint64)bool) error {
|
||||
bm.regSysNode()
|
||||
err := bm.execPool.Load(execDefFilePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, e := range execNodes {
|
||||
for _, e := range bm.execNodes {
|
||||
if !bm.execPool.Register(e) {
|
||||
return fmt.Errorf("register exec failed,exec:%s", e.GetName())
|
||||
}
|
||||
|
||||
@@ -5,14 +5,6 @@ import (
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegExecNode(&AddInt{})
|
||||
RegExecNode(&SubInt{})
|
||||
RegExecNode(&MulInt{})
|
||||
RegExecNode(&DivInt{})
|
||||
RegExecNode(&ModInt{})
|
||||
RegExecNode(&RandNumber{})
|
||||
}
|
||||
|
||||
// AddInt 加(int)
|
||||
type AddInt struct {
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
package blueprint
|
||||
|
||||
var execNodes []IExecNode
|
||||
|
||||
func RegExecNode(exec IExecNode) {
|
||||
execNodes = append(execNodes, exec)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,31 +15,7 @@ const (
|
||||
EntranceID_Timer = 3
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegExecNode(&Entrance_ArrayParam{})
|
||||
RegExecNode(&Entrance_IntParam{})
|
||||
RegExecNode(&Entrance_Timer{})
|
||||
RegExecNode(&Output{})
|
||||
RegExecNode(&Sequence{})
|
||||
RegExecNode(&Foreach{})
|
||||
RegExecNode(&ForeachIntArray{})
|
||||
|
||||
RegExecNode(&GetArrayInt{})
|
||||
RegExecNode(&GetArrayString{})
|
||||
RegExecNode(&GetArrayLen{})
|
||||
RegExecNode(&CreateIntArray{})
|
||||
RegExecNode(&CreateStringArray{})
|
||||
RegExecNode(&AppendIntegerToArray{})
|
||||
RegExecNode(&AppendStringToArray{})
|
||||
|
||||
RegExecNode(&BoolIf{})
|
||||
RegExecNode(&GreaterThanInteger{})
|
||||
RegExecNode(&LessThanInteger{})
|
||||
RegExecNode(&EqualInteger{})
|
||||
RegExecNode(&RangeCompare{})
|
||||
RegExecNode(&Probability{})
|
||||
RegExecNode(&CreateTimer{})
|
||||
}
|
||||
|
||||
type Entrance_ArrayParam struct {
|
||||
BaseExecNode
|
||||
|
||||
Reference in New Issue
Block a user