* Examples are below the line marked 'FINISHED TEMPLATES'.
*/
-template<const std::string* rule_name, bool has_suboptions>
+template<const std::string* rule_name, bool has_suboptions, bool sticky>
class UnchangedRuleOption : public ConversionState
{
public:
rule_api.add_option(*rule_name);
}
+ if (sticky)
+ rule_api.reset_sticky();
+
return set_next_rule_state(stream);
}
};
-template<const std::string* rule_name, bool has_suboptions = true>
+template<const std::string* rule_name, bool has_suboptions = true, bool sticky = false>
static ConversionState* unchanged_rule_ctor(Converter& c)
{
- return new UnchangedRuleOption<rule_name, has_suboptions>(c);
+ return new UnchangedRuleOption<rule_name, has_suboptions, sticky>(c);
}
/****************************************
static const ConvertMap rule_gtp_info =
{
gtp_info,
- unchanged_rule_ctor<& gtp_info>,
+ unchanged_rule_ctor<& gtp_info, true, true>,
};
const ConvertMap* gtp_info_map = &rule_gtp_info;
static const ConvertMap rule_modbus_data =
{
modbus_data,
- unchanged_rule_ctor<& modbus_data, false>,
+ unchanged_rule_ctor<& modbus_data, false, true>,
};
const ConvertMap* modbus_data_map = &rule_modbus_data;
static const ConvertMap rule_pkt_data =
{
pkt_data,
- unchanged_rule_ctor<& pkt_data, false>,
+ unchanged_rule_ctor<& pkt_data, false, true>,
};
const ConvertMap* pkt_data_map = &rule_pkt_data;
static const ConvertMap rule_base64_data =
{
base64_data,
- unchanged_rule_ctor<& base64_data, false>,
+ unchanged_rule_ctor<& base64_data, false, true>,
};
const ConvertMap* base64_data_map = &rule_base64_data;
static const ConvertMap rule_sip_body =
{
sip_body,
- unchanged_rule_ctor<& sip_body, false>,
+ unchanged_rule_ctor<& sip_body, false, true>,
};
const ConvertMap* sip_body_map = &rule_sip_body;
static const ConvertMap rule_sip_header =
{
sip_header,
- unchanged_rule_ctor<& sip_header, false>,
+ unchanged_rule_ctor<& sip_header, false, true>,
};
const ConvertMap* sip_header_map = &rule_sip_header;
static const ConvertMap rule_dnp3_data =
{
dnp3_data,
- unchanged_rule_ctor<& dnp3_data, false>,
+ unchanged_rule_ctor<& dnp3_data, false, true>,
};
const ConvertMap* dnp3_data_map = &rule_dnp3_data;
static const ConvertMap rule_dce_stub_data =
{
dce_stub_data,
- unchanged_rule_ctor<& dce_stub_data, false>,
+ unchanged_rule_ctor<& dce_stub_data, false, true>,
};
const ConvertMap* dce_stub_data_map = &rule_dce_stub_data;