📄 timesortedsched.hh
字号:
// -*- mode: c++; c-basic-offset: 4 -*-#ifndef CLICK_TIMESORTEDSCHED_HH#define CLICK_TIMESORTEDSCHED_HH#include <click/element.hh>#include <click/notifier.hh>CLICK_DECLS/*=cTimeSortedSched(I<KEYWORDS>)=s timestampsmerge sorted packet streams by timestamp=ioone output, zero or more inputs=dTimeSortedSched responds to pull requests by returning the chronologicallynext packet pulled from its inputs, determined by packet timestamps.TimeSortedSched listens for notification from its inputs to avoid uselesspulls, and provides notification for its output.Keyword arguments are:=over 8=item STOPBoolean. If true, stop the driver when there are no packets available (and theupstream notifiers indicate that no packets will become available soon).Default is false.=back=nTimeSortedSched is a notifier signal, active iff any of the upstream notifiersare active.=eThis example merges multiple tcpdump(1) files into a single, time-sortedstream, and stops the driver when all the files are exhausted. tss :: TimeSortedSched(STOP true); FromDump(FILE1) -> [0] tss; FromDump(FILE2) -> [1] tss; FromDump(FILE3) -> [2] tss; // ... tss -> ...;=aFromDump*/class TimeSortedSched : public Element { public: TimeSortedSched(); ~TimeSortedSched(); const char *class_name() const { return "TimeSortedSched"; } const char *port_count() const { return "-/1"; } const char *processing() const { return PULL; } const char *flags() const { return "S0"; } void *cast(const char *); int configure(Vector<String> &, ErrorHandler *); int initialize(ErrorHandler *); void cleanup(CleanupStage); Packet *pull(int); private: Packet **_vec; NotifierSignal *_signals; Notifier _notifier; bool _stop;};CLICK_ENDDECLS#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -