module arch.node.engines.transport_connection_behaviour;
import arch.node.engines.transport_connection_messages open;
import arch.node.engines.transport_connection_config open;
import arch.node.engines.transport_connection_environment open;
import arch.node.types.basics open;
import arch.node.types.identities open;
import arch.node.types.messages open;
import arch.node.types.engine open;
import arch.node.types.anoma as Anoma open;
TransportConnectionActionArguments : Type := Unit;
TransportConnectionAction : Type :=
Action
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
TransportConnectionActionInput : Type :=
ActionInput
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg;
TransportConnectionActionEffect : Type :=
ActionEffect
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
Anoma.Msg
Anoma.Cfg
Anoma.Env;
TransportConnectionActionExec : Type :=
ActionExec
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
exampleReplyAction
(input : TransportConnectionActionInput)
: Option TransportConnectionActionEffect := TODO;
exampleReplyActionLabel : TransportConnectionActionExec :=
Seq [exampleReplyAction];
TransportConnectionGuard : Type :=
Guard
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
TransportConnectionGuardOutput : Type :=
GuardOutput
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
TransportConnectionGuardEval : Type :=
GuardEval
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
exampleReplyGuard
(trigger : TransportConnectionTimestampedTrigger)
(cfg : TransportConnectionCfg)
(env : TransportConnectionEnv)
: Option TransportConnectionGuardOutput := TODO;
TransportConnectionBehaviour : Type :=
EngineBehaviour
TransportConnectionLocalCfg
TransportConnectionLocalState
TransportConnectionMailboxState
TransportConnectionTimerHandle
TransportConnectionActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
module transport_connection_behaviour_example;
exTransportConnectionBehaviour : TransportConnectionBehaviour :=
mkEngineBehaviour@{
guards := First [exampleReplyGuard];
};
end;