package states
import (
am "github.com/pancsta/asyncmachine-go/pkg/machine"
ssrpc "github.com/pancsta/asyncmachine-go/pkg/rpc/states"
ssam "github.com/pancsta/asyncmachine-go/pkg/states"
. "github.com/pancsta/asyncmachine-go/pkg/states/global"
)
type SupervisorStatesDef struct {
*am .StatesBase
ErrWorker string
ErrPool string
LocalRpcReady string
PublicRpcReady string
Ready string
Heartbeat string
PoolStarting string
NormalizingPool string
PoolNormalized string
PoolReady string
WorkersAvailable string
ListWorkers string
SetWorker string
ForkWorker string
ForkingWorker string
WorkerConnected string
WorkerForked string
KillWorker string
KillingWorker string
WorkerKilled string
WorkerReady string
WorkerGone string
ClientConnected string
ClientDisconnected string
ProvideWorker string
WorkerIssues string
ClientSendPayload string
SuperConnected string
SuperDisconnected string
SuperSendPayload string
*ssam .BasicStatesDef
*ssrpc .NetSourceStatesDef
}
type SupervisorGroupsDef struct {
*ssam .ConnectedGroupsDef
PoolStatus S
Errors S
PoolNormalized S
}
var SupervisorSchema = SchemaMerge (
ssam .BasicSchema ,
ssrpc .NetSourceSchema ,
am .Schema {
ssS .ErrWorker : {
Require : S {ssS .Exception },
Add : S {ssS .NormalizingPool , ssS .Heartbeat },
},
ssS .ErrPool : {
Require : S {ssS .Exception },
Remove : S {ssS .PoolNormalized },
Add : S {ssS .NormalizingPool },
},
ssS .ClientConnected : {Multi : true },
ssS .ClientDisconnected : {Multi : true },
ssS .SuperConnected : {Multi : true },
ssS .SuperDisconnected : {Multi : true },
ssS .LocalRpcReady : {Require : S {ssS .Start }},
ssS .PublicRpcReady : {Require : S {ssS .Start }},
ssS .WorkerReady : {
Multi : true ,
Require : S {ssS .Start },
Add : S {ssS .PoolReady },
},
ssS .WorkerGone : {
Multi : true ,
Require : S {ssS .Start },
Remove : S {ssS .PoolReady },
},
ssS .Start : {Add : S {ssS .PoolStarting }},
ssS .Ready : {Require : S {
ssS .LocalRpcReady , ssS .PublicRpcReady , ssS .PoolReady }},
ssS .Heartbeat : {Require : S {ssS .Start }},
ssW .SendPayload : {Add : S {ssW .ErrSendPayload , ssW .Exception }},
ssS .PoolStarting : {
Remove : sgS .PoolStatus ,
Add : S {ssS .NormalizingPool },
},
ssS .PoolReady : {
Require : S {ssS .Start },
Remove : sgS .PoolStatus ,
Add : S {ssS .Heartbeat },
},
ssS .NormalizingPool : {
Require : S {ssS .Start },
Remove : sgS .PoolNormalized ,
After : S {ssS .ErrWorker },
},
ssS .PoolNormalized : {
Require : S {ssS .Start },
Remove : sgS .PoolNormalized ,
Add : S {ssS .Heartbeat },
},
ssS .WorkersAvailable : {Require : S {ssS .PoolReady }},
ssS .ListWorkers : {
Multi : true ,
Require : S {ssS .Start },
},
ssS .SetWorker : {
Multi : true ,
Require : S {ssS .Start },
},
ssS .ForkWorker : {
Multi : true ,
Require : S {ssS .Start },
},
ssS .ForkingWorker : {
Multi : true ,
Require : S {ssS .Start },
},
ssS .WorkerConnected : {
Multi : true ,
Require : S {ssS .Start },
},
ssS .WorkerForked : {
Multi : true ,
Require : S {ssS .Start },
Add : S {ssS .Heartbeat },
},
ssS .KillWorker : {Multi : true },
ssS .KillingWorker : {Multi : true },
ssS .WorkerKilled : {
Multi : true ,
Add : S {ssS .NormalizingPool , ssS .Heartbeat },
},
ssS .ProvideWorker : {
Multi : true ,
Require : S {ssS .WorkersAvailable },
},
ssS .WorkerIssues : {
Multi : true ,
},
ssS .ClientSendPayload : {Multi : true },
ssS .SuperSendPayload : {Multi : true },
})
var (
ssS = am .NewStates (SupervisorStatesDef {})
sgS = am .NewStateGroups (SupervisorGroupsDef {
PoolStatus : S {ssS .PoolStarting , ssS .PoolReady },
Errors : S {ssS .ErrWorker , ssS .ErrPool },
PoolNormalized : S {ssS .PoolNormalized , ssS .NormalizingPool },
})
SupervisorStates = ssS
SupervisorGroups = sgS
)
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .