#ifndef CLICK_FASTCLASSIFIER_HH
#define CLICK_FASTCLASSIFIER_HH
#include <click/vector.hh>
#include <click/string.hh>
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<Classifier_Insn> program;
int type;
ElementClassT *eclass;
Vector<String> handler_names;
Vector<String> 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
syntax highlighted by Code2HTML, v. 0.9.1