#ifndef CLICK_NULLELEMENT_HH #define CLICK_NULLELEMENT_HH #include CLICK_DECLS /* =c Null =s basictransfer passes packets unchanged =d Just passes packets along without doing anything else. =a PushNull, PullNull */ class NullElement : public Element { public: NullElement(); ~NullElement(); const char *class_name() const { return "Null"; } const char *port_count() const { return PORTS_1_1; } const char *processing() const { return AGNOSTIC; } Packet *simple_action(Packet *); }; /* =c PushNull =s basictransfer passes packets unchanged =d Responds to each pushed packet by pushing it unchanged out its first output. =a Null, PullNull */ class PushNullElement : public Element { public: PushNullElement(); ~PushNullElement(); const char *class_name() const { return "PushNull"; } const char *port_count() const { return PORTS_1_1; } const char *processing() const { return PUSH; } void push(int, Packet *); }; /* =c PullNull =s basictransfer passes packets unchanged =d Responds to each pull request by pulling a packet from its input and returning that packet unchanged. =a Null, PushNull */ class PullNullElement : public Element { public: PullNullElement(); ~PullNullElement(); const char *class_name() const { return "PullNull"; } const char *port_count() const { return PORTS_1_1; } const char *processing() const { return PULL; } Packet *pull(int); }; CLICK_ENDDECLS #endif