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 ServerStatesDef struct {
*am .StatesBase
ErrGraph string
ConnectEvent string
ClientMsg string
DisconnectEvent string
InitClient string
}
var ServerSchema = am .Schema {
ssV .ErrGraph : {Require : S {Exception }},
ssV .ConnectEvent : {
Multi : true ,
Require : S {Start }},
ssV .ClientMsg : {
Multi : true ,
Require : S {Start }},
ssV .DisconnectEvent : {
Multi : true ,
Require : S {Start }},
ssV .InitClient : {
Multi : true ,
Require : S {Start }},
}
var (
ssV = am .NewStates (ServerStatesDef {})
ServerStates = ssV
)
type DebuggerStatesDef struct {
*am .StatesBase
ErrDiagrams string
ErrWeb string
WebReqDiag string
WebSocketDiag string
UserFwd string
UserBack string
UserFwdStep string
UserBackStep string
TreeFocused string
TreeGroupsFocused string
LogFocused string
ClientListFocused string
TimelineTxsFocused string
TimelineStepsFocused string
MatrixFocused string
DialogFocused string
Toolbar1Focused string
Toolbar2Focused string
Toolbar3Focused string
Toolbar4Focused string
LogReaderFocused string
AddressFocused string
Resized string
TimelineTxHidden string
TimelineStepsHidden string
NarrowLayout string
UserNarrowLayout string
ClientListVisible string
StateNameSelected string
TimelineStepsScrolled string
HelpDialog string
ExportDialog string
LogUserScrolled string
Ready string
FilterAutoTx string
FilterAutoCanceledTx string
FilterCanceledTx string
FilterQueuedTx string
FilterEmptyTx string
FilterDisconn string
LogTimestamps string
FilterTraces string
FilterHealth string
FilterChecks string
FilterRpcMachs string
FilterOutGroup string
Redraw string
Loading string
Start string
Heartbeat string
GcMsgs string
TreeLogView string
MatrixView string
TreeMatrixView string
TailMode string
Playing string
Paused string
ToggleTool string
ToolToggled string
SwitchingClientTx string
SwitchedClientTx string
ScrollToMutTx string
MatrixRain string
MatrixRainSelected string
LogReaderVisible string
LogReaderEnabled string
UpdateLogScheduled string
UpdatingLog string
LogUpdated string
UpdateLogReader string
UpdateFocus string
Overlay string
AfterFocus string
FocusPrev string
FocusNext string
ToolRain string
Fwd string
Back string
FwdStep string
BackStep string
ScrollToTx string
ScrollToStep string
SelectingClient string
ClientSelected string
TxSelected string
RemoveClient string
BuildingLog string
LogBuilt string
SetCursor string
SetGroup string
SshServer string
SshDisconn string
DiagramsGraphRendering string
DiagramsGraphReady string
DiagramsMachRendering string
DiagramsMachReady string
DiagramsStatesRendering string
DiagramsStatesReady string
*ssam .BasicStatesDef
*ServerStatesDef
*ssrpc .StateSourceStatesDef
*ssam .DisposedStatesDef
}
var DebuggerSchema = ssam .BasicSchema .Merge (
ServerSchema ,
ssrpc .StateSourceSchema ,
ssam .DisposedSchema ,
am .Schema {
ssD .ErrDiagrams : {
Multi : true ,
Require : S {Exception },
},
ssD .ErrWeb : {
Multi : true ,
Require : S {Exception },
},
ssD .WebReqDiag : {
Multi : true ,
Require : S {Start },
},
ssD .WebSocketDiag : {
Multi : true ,
Require : S {Start },
},
ssD .UserFwd : {
Add : S {ssD .Fwd },
Remove : sgD .Playing ,
},
ssD .UserBack : {
Add : S {ssD .Back },
Remove : sgD .Playing ,
},
ssD .UserFwdStep : {
Add : S {ssD .FwdStep },
Require : S {ssD .ClientSelected },
Remove : sgD .Playing .Add1 (ssD .LogUserScrolled ),
},
ssD .UserBackStep : {
Add : S {ssD .BackStep },
Require : S {ssD .ClientSelected },
Remove : sgD .Playing .Add1 (ssD .LogUserScrolled ),
},
ssD .TreeFocused : {Remove : sgD .Focused },
ssD .TreeGroupsFocused : {Remove : sgD .Focused },
ssD .LogFocused : {Remove : sgD .Focused },
ssD .ClientListFocused : {Remove : sgD .Focused },
ssD .TimelineTxsFocused : {Remove : sgD .Focused },
ssD .TimelineStepsFocused : {Remove : sgD .Focused },
ssD .MatrixFocused : {Remove : sgD .Focused },
ssD .DialogFocused : {Remove : sgD .Focused },
ssD .Toolbar1Focused : {Remove : sgD .Focused },
ssD .Toolbar2Focused : {Remove : sgD .Focused },
ssD .Toolbar3Focused : {Remove : sgD .Focused },
ssD .Toolbar4Focused : {Remove : sgD .Focused },
ssD .LogReaderFocused : {
Require : S {ssD .LogReaderVisible },
Remove : sgD .Focused ,
},
ssD .AddressFocused : {Remove : sgD .Focused },
ssD .Resized : {Multi : true },
ssD .TimelineTxHidden : {Require : S {ssD .TimelineStepsHidden }},
ssD .TimelineStepsHidden : {},
ssD .NarrowLayout : {
Require : S {ssD .Ready },
Remove : S {ssD .ClientListVisible },
},
ssD .UserNarrowLayout : {Add : S {ssD .NarrowLayout }},
ssD .ClientListVisible : {},
ssD .StateNameSelected : {
Multi : true ,
Require : S {ssD .ClientSelected },
},
ssD .TimelineStepsScrolled : {Require : S {ssD .ClientSelected }},
ssD .HelpDialog : {
Add : S {ssD .DialogFocused },
Remove : sgD .Dialog .Add (sgD .Focused ),
},
ssD .ExportDialog : {
Add : S {ssD .DialogFocused },
Remove : sgD .Dialog .Add (sgD .Focused ),
},
ssD .LogUserScrolled : {
Remove : S {ssD .Playing , ssD .TailMode },
Require : S {ssD .LogFocused },
},
Ready : {
Require : S {Start },
Add : S {ssD .UpdateFocus },
},
ssD .FilterAutoTx : {Remove : S {ssD .FilterAutoCanceledTx }},
ssD .FilterAutoCanceledTx : {Remove : S {ssD .FilterAutoTx }},
ssD .FilterCanceledTx : {},
ssD .FilterQueuedTx : {},
ssD .FilterEmptyTx : {},
ssD .FilterDisconn : {},
ssD .LogTimestamps : {},
ssD .FilterTraces : {},
ssD .FilterHealth : {},
ssD .FilterChecks : {},
ssD .FilterRpcMachs : {},
ssD .FilterOutGroup : {},
ssD .Redraw : {},
ssD .Loading : {},
Start : {Add : S {
ssD .LogTimestamps , ssD .FilterHealth , ssD .ClientListFocused ,
ssD .FilterAutoCanceledTx , ssD .ClientListVisible ,
}},
ssD .Heartbeat : {
Multi : true ,
Require : S {Start },
},
ssD .GcMsgs : {
Add : S {ssD .Loading },
Remove : S {ssD .SelectingClient , ssD .SwitchedClientTx , ssD .ScrollToTx ,
ssD .ScrollToMutTx },
},
ssD .TreeLogView : {
Auto : true ,
Require : S {Start },
Remove : sgD .Views .Add1 (ssD .MatrixRain ),
},
ssD .MatrixView : {Remove : sgD .Views .Add1 (ssD .LogReaderVisible )},
ssD .TreeMatrixView : {Remove : sgD .Views .Add1 (ssD .LogReaderVisible )},
ssD .TailMode : {
Require : S {ssD .ClientSelected },
Remove : sgD .Playing .Add1 (ssD .LogUserScrolled ),
},
ssD .Playing : {
Require : S {ssD .ClientSelected },
Remove : sgD .Playing .Add1 (ssD .LogUserScrolled ),
},
ssD .Paused : {
Auto : true ,
Require : S {ssD .ClientSelected },
Remove : sgD .Playing ,
},
ssD .ToggleTool : {Remove : S {ssD .ToolToggled }},
ssD .ToolToggled : {Remove : S {ssD .ToggleTool }},
ssD .SwitchingClientTx : {
Require : S {ssD .Ready },
Remove : S {ssD .SwitchedClientTx },
},
ssD .SwitchedClientTx : {
Require : S {ssD .Ready },
Remove : S {ssD .SwitchingClientTx },
},
ssD .ScrollToMutTx : {Require : S {ssD .ClientSelected }},
ssD .MatrixRain : {},
ssD .MatrixRainSelected : {
Multi : true ,
Require : S {ssD .MatrixRain , ssD .ClientSelected },
},
ssD .LogReaderVisible : {
Auto : true ,
Require : S {ssD .TreeLogView , ssD .LogReaderEnabled },
},
ssD .LogReaderEnabled : {},
ssD .UpdateLogScheduled : {Require : S {ssD .Ready }},
ssD .UpdatingLog : {
Require : S {ssD .Ready , ssD .ClientSelected },
Remove : S {ssD .LogUpdated },
},
ssD .LogUpdated : {
Require : S {ssD .Ready , ssD .ClientSelected },
Remove : S {ssD .UpdatingLog },
},
ssD .UpdateLogReader : {Require : S {ssD .Ready , ssD .LogReaderEnabled }},
ssD .UpdateFocus : {
Multi : true ,
Require : S {ssD .Ready },
},
ssD .Overlay : {Require : S {ssD .LogReaderFocused }},
ssD .AfterFocus : {
Multi : true ,
Require : S {ssD .Ready },
},
ssD .FocusPrev : {
Multi : true ,
Require : S {ssD .Ready },
},
ssD .FocusNext : {
Multi : true ,
Require : S {ssD .Ready },
},
ssD .ToolRain : {
Multi : true ,
Require : S {ssD .Ready },
},
ssD .Fwd : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .Overlay },
},
ssD .Back : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .Overlay },
},
ssD .FwdStep : {
Require : S {ssD .ClientSelected },
},
ssD .BackStep : {
Require : S {ssD .ClientSelected },
},
ssD .ScrollToTx : {
Multi : true ,
Require : S {ssD .ClientSelected },
Remove : S {ssD .TailMode , ssD .Playing , ssD .TimelineStepsScrolled },
},
ssD .ScrollToStep : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .TailMode , ssD .Playing },
},
ssD .SelectingClient : {
Add : S {ssD .Loading },
Require : S {Start },
Remove : S {ssD .ClientSelected , ssD .Overlay },
},
ssD .ClientSelected : {
Require : S {Start },
Remove : S {ssD .SelectingClient },
},
ssD .TxSelected : {
Require : S {ssD .ClientSelected },
},
ssD .RemoveClient : {Require : S {ssD .ClientSelected }},
ssD .BuildingLog : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .LogBuilt },
After : S {ssD .ClientSelected },
},
ssD .LogBuilt : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .BuildingLog },
},
ssD .SetCursor : {Require : S {ssD .Ready }},
ssD .SetGroup : {
Multi : true ,
Require : S {ssD .ClientSelected },
},
ssD .SshServer : {Require : S {Start }},
ssD .SshDisconn : {
Multi : true ,
Require : S {ssD .SshServer },
},
ssD .DiagramsGraphRendering : {
Multi : true ,
Require : S {ssD .Ready },
Add : S {ssD .Loading },
Remove : S {ssD .DiagramsGraphReady },
},
ssD .DiagramsGraphReady : {
Require : S {ssD .Ready },
Remove : S {ssD .DiagramsGraphRendering },
},
ssD .DiagramsMachRendering : {
Multi : true ,
Require : S {ssD .ClientSelected },
Add : S {ssD .Loading },
Remove : S {ssD .DiagramsMachReady },
},
ssD .DiagramsMachReady : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .DiagramsMachRendering },
},
ssD .DiagramsStatesRendering : {
Multi : true ,
Require : S {ssD .ClientSelected },
Add : S {ssD .Loading },
Remove : S {ssD .DiagramsStatesReady },
},
ssD .DiagramsStatesReady : {
Require : S {ssD .ClientSelected },
Remove : S {ssD .DiagramsStatesRendering },
},
},
)
type DebuggerGroupsDef struct {
Focused S
Views S
Playing S
ClientTx S
Filters S
Dialog S
Debug S
DiagramsMach S
Mcp S
McpReadonly S
Loading S
}
var (
groupFocus = am .S {
ssD .AddressFocused , ssD .ClientListFocused ,
ssD .TreeGroupsFocused , ssD .TreeFocused ,
ssD .LogFocused , ssD .LogReaderFocused , ssD .MatrixFocused ,
ssD .TimelineTxsFocused , ssD .TimelineStepsFocused ,
ssD .Toolbar1Focused , ssD .Toolbar2Focused ,
ssD .Toolbar3Focused , ssD .Toolbar4Focused ,
ssD .DialogFocused ,
}
groupFilters = S {
ssD .FilterAutoTx , ssD .FilterCanceledTx , ssD .FilterEmptyTx ,
ssD .FilterHealth , ssD .FilterOutGroup , ssD .FilterQueuedTx ,
ssD .FilterAutoCanceledTx ,
}
ssD = am .NewStates (DebuggerStatesDef {})
sgD = am .NewStateGroups (DebuggerGroupsDef {
Focused : groupFocus ,
Views : S {ssD .MatrixView , ssD .TreeLogView , ssD .TreeMatrixView },
Playing : S {ssD .Playing , ssD .Paused , ssD .TailMode },
ClientTx : S {ssD .SwitchingClientTx , ssD .SwitchedClientTx },
Filters : groupFilters ,
Dialog : S {ssD .HelpDialog , ssD .ExportDialog },
Debug : groupFocus .Add1 (
ssD .ExportDialog , ssD .UpdateFocus , ssD .LogReaderVisible ,
ssD .UpdateFocus , ssD .FocusNext , ssD .FocusPrev ,
ssD .Overlay , ssD .HelpDialog , ssD .ExportDialog ,
),
Mcp : groupFocus .Add1 (ssD .UserFwd , ssD .UserBack , ssD .UserFwdStep ,
ssD .UserBackStep , ssD .ScrollToMutTx , ssD .SwitchingClientTx ,
ssD .SelectingClient , ssD .RemoveClient , ssD .SetCursor , ssD .SetGroup ,
ssD .StateNameSelected , ssD .FocusNext , ssD .FocusPrev ,
ssD .LogReaderEnabled , ssD .UserNarrowLayout , ssD .TimelineTxHidden ,
ssD .TimelineStepsHidden ),
McpReadonly : groupFilters .Add1 (ssD .SwitchedClientTx , ssD .ClientSelected ),
Loading : S {ssD .SelectingClient , ssD .GcMsgs , ssD .DiagramsStatesRendering ,
ssD .DiagramsGraphRendering , ssD .DiagramsMachRendering },
})
DebuggerStates = ssD
DebuggerGroups = sgD
)
The pages are generated with Golds v0.8.4 . (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 .