#ifndef CLICK_FASTCLASSIFIER_HH #define CLICK_FASTCLASSIFIER_HH #include #include class ElementClassT; struct Classifier_Insn { int yes; int no; int offset; union { unsigned char c[4]; unsigned u; } mask; union { unsigned char c[4]; unsigned u; } value; }; struct Classifier_Program { int safe_length; int output_everything; int align_offset; int noutputs; Vector program; int type; ElementClassT *eclass; Vector handler_names; Vector handler_values; const String &handler_value(const String &name) const; }; bool operator==(const Classifier_Insn &, const Classifier_Insn &); bool operator!=(const Classifier_Insn &, const Classifier_Insn &); bool operator==(const Classifier_Program &, const Classifier_Program &); bool operator!=(const Classifier_Program &, const Classifier_Program &); int add_classifier_type(const String &name, int guaranteed_packet_length, void (*headers)(const Classifier_Program &, StringAccum &), void (*checked_body)(const Classifier_Program &, StringAccum &), void (*unchecked_body)(const Classifier_Program &, StringAccum &), void (*push_body)(const Classifier_Program &, StringAccum &)); void add_interesting_handler(const String &name); #endif