85 #ifndef guard_builder_h
86 #define guard_builder_h
99 virtual void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const;
107 std::chrono::microseconds period_;
109 void write_guard(
r_code::Code *mdl, uint16 l, uint16 r, uint16 opcode, std::chrono::microseconds offset, uint16 &write_index, uint16 &extent_index)
const;
110 void _build(
r_code::Code *mdl, uint16 t0, uint16 t1, uint16 &write_index)
const;
115 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
123 std::chrono::microseconds offset_;
125 void _build(
r_code::Code *mdl, uint16 q0, uint16 t0, uint16 t1, uint16 &write_index)
const;
127 SGuardBuilder(std::chrono::microseconds period, std::chrono::microseconds offset);
130 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
137 std::chrono::microseconds offset_;
138 std::chrono::microseconds cmd_duration_;
140 void _build(
r_code::Code *mdl, uint16 q0, uint16 t0, uint16 t1, uint16 &write_index)
const;
147 NoArgCmdGuardBuilder(std::chrono::microseconds period, std::chrono::microseconds offset, std::chrono::microseconds cmd_duration);
150 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
157 std::chrono::microseconds offset_;
158 uint16 cmd_arg_index_;
160 void _build(
r_code::Code *mdl, uint16 fwd_opcode, uint16 bwd_opcode, uint16 q0, uint16 t0, uint16 t1, uint16 &write_index)
const;
161 void _build(
r_code::Code *mdl, uint16 fwd_opcode, uint16 bwd_opcode,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const;
163 CmdGuardBuilder(std::chrono::microseconds period, std::chrono::microseconds offset, uint16 cmd_arg_index);
173 MCGuardBuilder(std::chrono::microseconds period, std::chrono::microseconds offset, float32 cmd_arg_index);
176 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
186 ACGuardBuilder(std::chrono::microseconds period, std::chrono::microseconds offset, uint16 cmd_arg_index);
189 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
197 std::chrono::microseconds offset_;
199 void _build(
r_code::Code *mdl, uint16 fwd_opcode, uint16 bwd_opcode, uint16 q0, uint16 t0, uint16 t1, uint16 &write_index)
const;
200 void _build(
r_code::Code *mdl, uint16 fwd_opcode, uint16 bwd_opcode,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const;
202 ConstGuardBuilder(std::chrono::microseconds period, float32 constant, std::chrono::microseconds offset);
212 MGuardBuilder(std::chrono::microseconds period, float32 constant, std::chrono::microseconds offset);
215 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
223 AGuardBuilder(std::chrono::microseconds period, float32 constant, std::chrono::microseconds offset);
226 void build(
r_code::Code *mdl,
_Fact *premise_pattern,
_Fact *cause_pattern, uint16 &write_index)
const override;
236 std::chrono::microseconds offset_;
237 uint16 cmd_arg_index_;
243 void build(
r_code::Code* mdl,
_Fact* premise_pattern,
_Fact* cause_pattern, uint16& write_index)
const override;