package states
import (
am "github.com/pancsta/asyncmachine-go/pkg/machine"
ss "github.com/pancsta/asyncmachine-go/pkg/states"
. "github.com/pancsta/asyncmachine-go/pkg/states/global"
)
var States = am .Schema {
ErrDiagrams : {
Multi : true ,
Require : S {Exception },
Remove : S {DiagramsScheduled , DiagramsRendering },
},
ErrWeb : {
Multi : true ,
Require : S {Exception },
},
ClientMsg : {Multi : true },
ConnectEvent : {Multi : true },
DisconnectEvent : {Multi : true },
WebReq : {
Multi : true ,
Require : S {Start },
},
WebSocket : {
Multi : true ,
Require : S {Start },
},
UserFwd : {
Add : S {Fwd },
Remove : GroupPlaying ,
},
UserBack : {
Add : S {Back },
Remove : GroupPlaying ,
},
UserFwdStep : {
Add : S {FwdStep },
Require : S {ClientSelected },
Remove : SAdd (GroupPlaying , S {LogUserScrolled }),
},
UserBackStep : {
Add : S {BackStep },
Require : S {ClientSelected },
Remove : SAdd (GroupPlaying , S {LogUserScrolled }),
},
TreeFocused : {Remove : GroupFocused },
TreeGroupsFocused : {Remove : GroupFocused },
LogFocused : {Remove : GroupFocused },
ClientListFocused : {Remove : GroupFocused },
TimelineTxsFocused : {Remove : GroupFocused },
TimelineStepsFocused : {Remove : GroupFocused },
MatrixFocused : {Remove : GroupFocused },
DialogFocused : {Remove : GroupFocused },
Toolbar1Focused : {Remove : GroupFocused },
Toolbar2Focused : {Remove : GroupFocused },
Toolbar3Focused : {Remove : GroupFocused },
LogReaderFocused : {
Require : S {LogReaderVisible },
Remove : GroupFocused ,
},
AddressFocused : {Remove : GroupFocused },
Resized : {Multi : true },
TimelineTxHidden : {Require : S {TimelineStepsHidden }},
TimelineStepsHidden : {},
NarrowLayout : {
Require : S {Ready },
Remove : S {ClientListVisible },
},
ClientListVisible : {
Require : S {Ready },
Auto : true ,
},
StateNameSelected : {
Multi : true ,
Require : S {ClientSelected },
},
TimelineStepsScrolled : {Require : S {ClientSelected }},
HelpDialog : {Remove : GroupDialog },
ExportDialog : {
Require : S {ClientSelected },
Remove : GroupDialog ,
},
LogUserScrolled : {
Remove : S {Playing , TailMode },
Require : S {LogFocused },
},
Ready : {
Require : S {Start },
Add : S {UpdateFocus },
},
FilterAutoTx : {Remove : S {FilterAutoCanceledTx }},
FilterAutoCanceledTx : {Remove : S {FilterAutoTx }},
FilterCanceledTx : {},
FilterQueuedTx : {},
FilterEmptyTx : {},
LogTimestamps : {},
FilterTraces : {},
FilterHealth : {},
FilterChecks : {},
FilterOutGroup : {},
Redraw : {},
Start : {Add : S {
LogTimestamps , FilterHealth , ClientListFocused , FilterAutoCanceledTx ,
}},
Heartbeat : {
Multi : true ,
Require : S {Start },
},
GcMsgs : {Remove : S {SelectingClient , SwitchedClientTx , ScrollToTx ,
ScrollToMutTx }},
TreeLogView : {
Auto : true ,
Require : S {Start },
Remove : SAdd (GroupViews , S {MatrixRain }),
},
MatrixView : {Remove : SAdd (GroupViews , S {LogReaderVisible })},
TreeMatrixView : {Remove : SAdd (GroupViews , S {LogReaderVisible })},
TailMode : {
Require : S {ClientSelected },
Remove : SAdd (GroupPlaying , S {LogUserScrolled }),
},
Playing : {
Require : S {ClientSelected },
Remove : SAdd (GroupPlaying , S {LogUserScrolled }),
},
Paused : {
Auto : true ,
Require : S {ClientSelected },
Remove : GroupPlaying ,
},
ToggleTool : {Remove : S {ToolToggled }},
ToolToggled : {Remove : S {ToggleTool }},
SwitchingClientTx : {
Require : S {Ready },
Remove : GroupSwitchedClientTx ,
},
SwitchedClientTx : {
Require : S {Ready },
Remove : GroupSwitchedClientTx ,
},
ScrollToMutTx : {Require : S {ClientSelected }},
MatrixRain : {},
MatrixRainSelected : {
Multi : true ,
Require : S {MatrixRain , ClientSelected },
},
LogReaderVisible : {
Auto : true ,
Require : S {TreeLogView , LogReaderEnabled },
},
LogReaderEnabled : {},
UpdateLogScheduled : {Require : S {Ready }},
UpdatingLog : {
Require : S {Ready , ClientSelected },
Remove : S {LogUpdated },
},
LogUpdated : {
Require : S {Ready , ClientSelected },
Remove : S {UpdatingLog },
},
UpdateLogReader : {Require : S {Ready , LogReaderEnabled }},
UpdateFocus : {
Multi : true ,
Require : S {Ready },
},
AfterFocus : {
Multi : true ,
Require : S {Ready },
},
ToolRain : {
Multi : true ,
Require : S {Ready },
},
Fwd : {
Require : S {ClientSelected },
},
Back : {
Require : S {ClientSelected },
},
FwdStep : {
Require : S {ClientSelected },
},
BackStep : {
Require : S {ClientSelected },
},
ScrollToTx : {
Multi : true ,
Require : S {ClientSelected },
Remove : S {TailMode , Playing , TimelineStepsScrolled },
},
ScrollToStep : {
Require : S {ClientSelected },
Remove : S {TailMode , Playing },
},
SelectingClient : {
Require : S {Start },
Remove : S {ClientSelected },
},
ClientSelected : {
Require : S {Start },
Remove : S {SelectingClient },
},
RemoveClient : {Require : S {ClientSelected }},
BuildingLog : {
Require : S {ClientSelected },
Remove : S {LogBuilt },
After : S {ClientSelected },
},
LogBuilt : {
Require : S {ClientSelected },
Remove : S {BuildingLog },
},
SetCursor : {Require : S {Ready }},
SetGroup : {
Multi : true ,
Require : S {ClientSelected },
},
DiagramsScheduled : {
Multi : true ,
Require : S {Ready },
},
DiagramsRendering : {
Require : S {Ready },
Remove : S {DiagramsReady },
},
DiagramsReady : {Remove : S {DiagramsRendering }},
InitClient : {Multi : true },
}
var (
GroupFocused = S {
AddressFocused , ClientListFocused , TreeGroupsFocused , TreeFocused ,
LogFocused , LogReaderFocused , MatrixFocused ,
TimelineTxsFocused , TimelineStepsFocused ,
Toolbar1Focused , Toolbar2Focused , Toolbar3Focused ,
DialogFocused ,
}
GroupPlaying = S {
Playing , Paused , TailMode ,
}
GroupDialog = S {
HelpDialog , ExportDialog ,
}
GroupViews = S {
MatrixView , TreeLogView , TreeMatrixView ,
}
GroupSwitchedClientTx = S {
SwitchingClientTx , SwitchedClientTx ,
}
GroupFilters = S {
FilterAutoTx , FilterCanceledTx , FilterEmptyTx , FilterHealth , FilterOutGroup ,
FilterQueuedTx , FilterAutoCanceledTx ,
}
GroupDebug = S {
DialogFocused , ExportDialog , UpdateFocus ,
}
)
const (
TreeFocused = "TreeFocused"
TreeGroupsFocused = "TreeGroupsFocused"
LogFocused = "LogFocused"
TimelineTxsFocused = "TimelineTxsFocused"
TimelineTxHidden = "TimelineTxHidden"
TimelineStepsFocused = "TimelineStepsFocused"
TimelineStepsHidden = "TimelineStepsHidden"
MatrixFocused = "MatrixFocused"
DialogFocused = "DialogFocused"
Toolbar1Focused = "Toolbar1Focused"
Toolbar2Focused = "Toolbar2Focused"
Toolbar3Focused = "Toolbar3Focused"
LogReaderFocused = "LogReaderFocused"
AddressFocused = "AddressFocused"
Resized = "Resized"
ClientListFocused = "ClientListFocused"
Redraw = "Redraw"
TimelineStepsScrolled = "TimelineStepsScrolled"
ClientMsg = "ClientMsg"
StateNameSelected = "StateNameSelected"
NarrowLayout = "NarrowLayout"
ClientListVisible = "ClientListVisible"
Start = "Start"
Heartbeat = "Heartbeat"
GcMsgs = "GcMsgs"
Playing = "Playing"
Paused = "Paused"
TailMode = "TailMode"
UserFwd = "UserFwd"
Fwd = "Fwd"
UserBack = "UserBack"
Back = "Back"
UserFwdStep = "UserFwdStep"
UserBackStep = "UserBackStep"
FwdStep = "FwdStep"
BackStep = "BackStep"
ConnectEvent = "ConnectEvent"
DisconnectEvent = "DisconnectEvent"
WebReq = "WebReq"
WebSocket = "WebSocket"
RemoveClient = "RemoveClient"
ClientSelected = "ClientSelected"
BuildingLog = "BuildingLog"
LogBuilt = "LogBuilt"
SelectingClient = "SelectingClient"
HelpDialog = "HelpDialog"
ExportDialog = "ExportDialog"
MatrixView = "MatrixView"
TreeLogView = "TreeLogView"
TreeMatrixView = "TreeMatrixView"
LogReaderVisible = "LogReaderVisible"
LogReaderEnabled = "LogReaderEnabled"
UpdateLogScheduled = "UpdateLogScheduled"
UpdatingLog = "UpdatingLog"
LogUpdated = "LogUpdated"
UpdateLogReader = "UpdateLogReader"
UpdateFocus = "UpdateFocus"
AfterFocus = "AfterFocus"
ToolRain = "ToolRain"
LogUserScrolled = "LogUserScrolled"
ScrollToTx = "ScrollToTx"
ScrollToStep = "ScrollToStep"
Ready = "Ready"
FilterCanceledTx = "FilterCanceledTx"
FilterQueuedTx = "FilterQueuedTx"
FilterAutoTx = "FilterAutoTx"
FilterAutoCanceledTx = "FilterAutoCanceledTx"
FilterHealth = "FilterHealth"
FilterChecks = "FilterChecks"
FilterOutGroup = "FilterOutGroup"
FilterEmptyTx = "FilterEmptyTx"
LogTimestamps = "LogTimestamps"
FilterTraces = "FilterTraces"
ToggleTool = "ToggleTool"
ToolToggled = "ToolToggled"
SwitchingClientTx = "SwitchingClientTx"
SwitchedClientTx = "SwitchedClientTx"
ScrollToMutTx = "ScrollToMutTx"
MatrixRain = "MatrixRain"
MatrixRainSelected = "MatrixRainSelected"
SetCursor = "SetCursor"
SetGroup = "SetGroup"
DiagramsScheduled = "DiagramsScheduled"
DiagramsRendering = "DiagramsRendering"
DiagramsReady = "DiagramsReady"
ErrDiagrams = "ErrDiagrams"
ErrWeb = "ErrWeb"
InitClient = "InitClient"
)
var Names = S {
am .StateException ,
ClientMsg ,
ConnectEvent ,
DisconnectEvent ,
WebReq ,
WebSocket ,
UserFwd ,
UserBack ,
UserFwdStep ,
UserBackStep ,
TreeFocused ,
TreeGroupsFocused ,
LogFocused ,
LogReaderFocused ,
AddressFocused ,
Resized ,
ClientListFocused ,
TimelineTxsFocused ,
TimelineStepsFocused ,
TimelineTxHidden ,
TimelineStepsHidden ,
Toolbar1Focused ,
Toolbar2Focused ,
Toolbar3Focused ,
MatrixFocused ,
DialogFocused ,
StateNameSelected ,
NarrowLayout ,
ClientListVisible ,
HelpDialog ,
ExportDialog ,
LogUserScrolled ,
Ready ,
TimelineStepsScrolled ,
Redraw ,
FilterAutoTx ,
FilterAutoCanceledTx ,
FilterCanceledTx ,
FilterQueuedTx ,
FilterEmptyTx ,
LogTimestamps ,
FilterTraces ,
FilterHealth ,
FilterChecks ,
FilterOutGroup ,
Start ,
Heartbeat ,
GcMsgs ,
TreeLogView ,
MatrixView ,
TreeMatrixView ,
TailMode ,
Playing ,
Paused ,
ToggleTool ,
ToolToggled ,
SwitchingClientTx ,
SwitchedClientTx ,
ScrollToMutTx ,
MatrixRain ,
MatrixRainSelected ,
LogReaderVisible ,
LogReaderEnabled ,
UpdateLogScheduled ,
UpdatingLog ,
LogUpdated ,
UpdateLogReader ,
UpdateFocus ,
AfterFocus ,
ToolRain ,
Fwd ,
Back ,
FwdStep ,
BackStep ,
ScrollToTx ,
ScrollToStep ,
ClientSelected ,
SelectingClient ,
RemoveClient ,
BuildingLog ,
LogBuilt ,
SetCursor ,
SetGroup ,
DiagramsScheduled ,
DiagramsRendering ,
DiagramsReady ,
ErrDiagrams ,
ErrWeb ,
InitClient ,
}
type ServerStatesDef struct {
*am .StatesBase
ConnectEvent string
ClientMsg string
DisconnectEvent string
InitClient string
}
type ServerGroupsDef struct {
}
var ServerSchema = am .Schema {
ssV .ConnectEvent : {
Multi : true ,
Require : S {ss .BasicStates .Start }},
ssV .ClientMsg : {
Multi : true ,
Require : S {ss .BasicStates .Start }},
ssV .DisconnectEvent : {
Multi : true ,
Require : S {ss .BasicStates .Start }},
ssV .InitClient : {
Multi : true ,
Require : S {ss .BasicStates .Start }},
}
var (
ssV = am .NewStates (ServerStatesDef {})
sgV = am .NewStateGroups (ServerGroupsDef {})
ServerStates = ssV
ServerGroups = sgV
)
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 .