21 #ifndef BM_BM_SIM_CONTROL_FLOW_H_
22 #define BM_BM_SIM_CONTROL_FLOW_H_
34 class ControlFlowNode :
public NamedP4Object {
36 ControlFlowNode(
const std::string &name, p4object_id_t
id)
37 : NamedP4Object(name, id) { }
38 ControlFlowNode(
const std::string &name, p4object_id_t
id,
39 std::unique_ptr<SourceInfo> source_info)
40 : NamedP4Object(name, id, std::move(source_info)) {}
42 virtual ~ControlFlowNode() =
default;
44 virtual const ControlFlowNode *operator()(Packet *pkt)
const = 0;
47 ControlFlowNode(
const ControlFlowNode &other) =
delete;
49 ControlFlowNode &
operator=(
const ControlFlowNode &other) =
delete;
55 ControlFlowNode(ControlFlowNode &&other) =
default;
57 ControlFlowNode &
operator=(ControlFlowNode &&other) =
default;
62 #endif // BM_BM_SIM_CONTROL_FLOW_H_