亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eclasst.hh

?? Click is a modular router toolkit. To use it you ll need to know how to compile and install the sof
?? HH
字號:
// -*- c-basic-offset: 4 -*-#ifndef CLICK_ECLASST_HH#define CLICK_ECLASST_HH#include <click/string.hh>#include <stddef.h>#include <click/vector.hh>#include <click/hashtable.hh>#include "elementmap.hh"class ErrorHandler;class StringAccum;class RouterT;class ElementT;class VariableEnvironment;class ElementMap;class SynonymElementClassT;class LandmarkT;class ElementClassT { public:    ElementClassT(const String &name);    virtual ~ElementClassT();    static void set_base_type_factory(ElementClassT *(*factory)(const String &));    static ElementClassT *base_type(const String &);    static ElementClassT *tunnel_type();    void use()				{ _use_count++; }    void unuse()			{ if (--_use_count <= 0) delete this; }    const String &name() const		{ return _name; }    String printable_name() const	{ return _printable_name; }    const char *printable_name_c_str() const { return _printable_name.c_str(); }    void set_printable_name(const String &s) { _printable_name = s; }    virtual String landmark() const	{ return String(); }    // 'primitive' means 'not tunnel, not compound, not synonym'.    virtual bool primitive() const	{ return true; }    virtual bool overloaded() const	{ return false; }    bool tunnel() const			{ return this == tunnel_type(); }    inline const ElementTraits &traits() const;    inline const ElementTraits &traits(ElementMap *emap) const;    virtual const ElementTraits *find_traits(ElementMap *emap) const;    inline const String &port_count_code() const;    inline const String &processing_code() const;    inline bool requires(const String &) const;    inline bool provides(const String &) const;    const String &package() const;    const String &documentation_name() const;    String documentation_url() const;    // where was this type declared?    virtual RouterT *declaration_scope() const;    virtual ElementClassT *overload_type() const;    virtual void collect_types(HashTable<ElementClassT *, int> &) const;    virtual void collect_overloads(Vector<ElementClassT *> &) const;    static ElementT *expand_element(ElementT *element, RouterT *dest,				    const String &prefix,				    const VariableEnvironment &env,				    ErrorHandler *errh);    virtual bool need_resolve() const;    /** @brief Resolve an element declaration.     * @param ninputs number of inputs used     * @param noutputs number of outputs used     * @param[in,out] args configuration arguments     * @param errh error handler     * @param landmark landmark for errors     */    virtual ElementClassT *resolve(int ninputs, int noutputs,				   Vector<String> &args,				   ErrorHandler *errh,				   const LandmarkT &landmark);    /** @brief Create a new scope with the appropriate declarations.     * @param args configuration arguments     * @param scope original scope     * @param[out] new_scope new scope     * @pre &scope != &new_scope     *     * The new scope equals the old scope, possibly restricted according to     * lexical scoping, plus declarations for the configuration arguments. */    virtual void create_scope(const Vector<String> &args,			      const VariableEnvironment &scope,			      VariableEnvironment &new_scope);    virtual ElementT *complex_expand_element(ElementT *element,					     const Vector<String> &conf,					     RouterT *dest,					     const String &prefix,					     const VariableEnvironment &env,					     ErrorHandler *errh);    enum UnparseKind { UNPARSE_NAMED, UNPARSE_ANONYMOUS, UNPARSE_OVERLOAD };    virtual void unparse_declaration(StringAccum &, const String &, UnparseKind, ElementClassT *stop);    virtual String unparse_signature() const;    static String unparse_signature(const String &name, const Vector<String> *formal_types, int nargs, int ninputs, int noutputs);    virtual void *cast(const char *)		{ return 0; }    virtual SynonymElementClassT *cast_synonym() { return 0; }    virtual RouterT *cast_router()		{ return 0; }  private:    String _name;    String _printable_name;    int _use_count;    mutable int _traits_version;    mutable const ElementTraits *_traits;    static ElementClassT *the_tunnel_type;    ElementClassT(const ElementClassT &);    ElementClassT &operator=(const ElementClassT &);    ElementT *direct_expand_element(ElementT *element, RouterT *dest,				    const String &prefix,				    const VariableEnvironment &env,				    ErrorHandler *errh);};class SynonymElementClassT : public ElementClassT { public:    SynonymElementClassT(const String &, ElementClassT *, RouterT *);    ElementClassT *synonym_of() const	{ return _eclass; }    bool need_resolve() const;    ElementClassT *resolve(int, int, Vector<String> &, ErrorHandler *, const LandmarkT &);    void create_scope(const Vector<String> &, const VariableEnvironment &, VariableEnvironment &);    ElementT *complex_expand_element(ElementT *, const Vector<String> &, RouterT *, const String &prefix, const VariableEnvironment &, ErrorHandler *);    void collect_types(HashTable<ElementClassT *, int> &) const;    void collect_overloads(Vector<ElementClassT *> &) const;    void unparse_declaration(StringAccum &, const String &, UnparseKind, ElementClassT *);    bool primitive() const		{ return false; }    bool overloaded() const		{ return _eclass->overloaded(); }    const ElementTraits *find_traits(ElementMap *emap) const;    RouterT *declaration_scope() const;    ElementClassT *overload_type() const { return _eclass; }    SynonymElementClassT *cast_synonym() { return this; }    RouterT *cast_router();  private:    ElementClassT *_eclass;    RouterT *_declaration_scope;};inline ElementClassT *ElementClassT::tunnel_type(){    assert(the_tunnel_type);    return the_tunnel_type;}inline const ElementTraits &ElementClassT::traits(ElementMap *emap) const{    if (_traits_version != emap->version()) {	_traits = find_traits(emap);	_traits_version = emap->version();    }    return *_traits;}inline const ElementTraits &ElementClassT::traits() const{    return traits(ElementMap::default_map());}inline const String &ElementClassT::documentation_name() const{    return traits().documentation_name;}inline const String &ElementClassT::port_count_code() const{    return traits().port_count_code;}inline const String &ElementClassT::processing_code() const{    return traits().processing_code;}inline boolElementClassT::requires(const String &req) const{    return traits().requires(req);}inline boolElementClassT::provides(const String &req) const{    return traits().provides(req);}template <>inline size_t hashcode(const ElementClassT * const &e) {    return CLICK_NAME(hashcode)(static_cast<const void *>(e));}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩毛片精品高清免费| 韩国av一区二区| 激情图区综合网| 色哟哟欧美精品| 欧美精品一区二区三区很污很色的| 亚洲图片你懂的| 久久69国产一区二区蜜臀| 91国产视频在线观看| 中文子幕无线码一区tr| 日产精品久久久久久久性色| 91色九色蝌蚪| 中文字幕国产一区二区| 国产一区二区三区免费播放| 欧美片在线播放| 亚洲一卡二卡三卡四卡| 99精品在线免费| 国产精品成人在线观看| 国产乱人伦偷精品视频免下载| 91精品久久久久久久91蜜桃| 一二三四区精品视频| 91丨porny丨最新| 综合久久国产九一剧情麻豆| 成人黄动漫网站免费app| 久久精品日韩一区二区三区| 精久久久久久久久久久| 欧美精品一区二区蜜臀亚洲| 蜜臀久久久久久久| 欧美久久久久久蜜桃| 亚洲va在线va天堂| 欧美色图天堂网| 香蕉久久夜色精品国产使用方法| 欧美综合亚洲图片综合区| 亚洲三级理论片| 色呦呦网站一区| 亚洲一区二区三区爽爽爽爽爽| 日本丶国产丶欧美色综合| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 欧美成人aa大片| 精品一区二区三区免费播放| 精品国内二区三区| 国产精品亚洲а∨天堂免在线| 久久久国产精华| 成人免费三级在线| 亚洲乱码日产精品bd| 91激情在线视频| 香蕉成人啪国产精品视频综合网 | 国产婷婷色一区二区三区四区 | 成人的网站免费观看| 国产精品高潮呻吟久久| 在线视频国产一区| 日韩黄色免费网站| 日韩美女在线视频| 国产白丝网站精品污在线入口| 亚洲国产精品av| 91国在线观看| 精品午夜一区二区三区在线观看| 国产免费观看久久| 欧美优质美女网站| 韩国欧美国产1区| 亚洲猫色日本管| 欧美一区二区久久| 成人免费毛片a| 午夜激情久久久| 亚洲一卡二卡三卡四卡无卡久久| 欧美色爱综合网| 激情小说亚洲一区| 亚洲欧美日韩系列| 日韩免费视频一区二区| 成人av在线看| 肉色丝袜一区二区| 国产精品伦一区| 欧美精品v国产精品v日韩精品| 国产乱人伦精品一区二区在线观看| 亚洲人成亚洲人成在线观看图片| 欧美精品视频www在线观看 | 日韩激情在线观看| 国产精品第13页| 精品理论电影在线| 欧美亚洲图片小说| 粉嫩蜜臀av国产精品网站| 性久久久久久久久久久久| 亚洲国产岛国毛片在线| 日韩欧美国产一区在线观看| 97久久久精品综合88久久| 极品美女销魂一区二区三区免费| 亚洲综合成人在线| 国产精品美女久久久久aⅴ国产馆| 4438x亚洲最大成人网| 99视频一区二区| 国产高清精品在线| 免费在线视频一区| 天堂一区二区在线| 亚洲蜜臀av乱码久久精品 | 亚洲日本一区二区| 久久精品人人做人人爽人人| 欧美一区三区四区| 在线观看免费亚洲| 久久久亚洲国产美女国产盗摄| 欧美亚洲一区二区三区四区| 波多野结衣91| 国产91丝袜在线观看| 久久99最新地址| 日韩中文字幕亚洲一区二区va在线| 中文字幕一区二区三区色视频| 久久婷婷成人综合色| 精品日韩在线一区| 精品久久久久久久久久久久包黑料 | 精品国产乱码久久久久久久| 91精品黄色片免费大全| 欧美性受xxxx黑人xyx性爽| 91网站最新网址| 99久久er热在这里只有精品66| 国产精品影视天天线| 国产自产v一区二区三区c| 日本91福利区| 极品少妇一区二区三区精品视频| 日韩综合一区二区| 日本在线观看不卡视频| 午夜国产不卡在线观看视频| 亚洲一区在线观看免费 | 欧洲精品中文字幕| 在线亚洲欧美专区二区| 欧美午夜视频网站| 欧美久久久久久久久久| 日韩视频不卡中文| 精品国产一区二区三区久久久蜜月 | 7777精品伊人久久久大香线蕉经典版下载| 欧美在线你懂得| 欧美精品在线观看一区二区| 欧美一级高清片| 2022国产精品视频| 中文字幕精品一区二区精品绿巨人 | 欧美乱熟臀69xxxxxx| 欧美亚一区二区| 欧美二区三区91| 日韩欧美不卡在线观看视频| 精品福利一二区| 1024国产精品| 亚洲国产精品久久一线不卡| 日本不卡一区二区| 国产精品一区一区三区| 91视频com| 日韩精品一区在线观看| 国产精品理论片在线观看| 一区二区三区国产豹纹内裤在线| 青青草原综合久久大伊人精品 | 日韩精品在线看片z| 欧美国产国产综合| 亚洲国产一区二区a毛片| 日本美女一区二区| 99精品欧美一区二区三区小说| 欧美日韩一级黄| 国产欧美日韩卡一| 日韩专区在线视频| 欧美精品一区二区三区视频| 中文字幕在线观看不卡视频| 日本不卡123| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 3atv在线一区二区三区| 中文字幕欧美区| 免费看精品久久片| 91视频国产资源| 久久婷婷国产综合国色天香| 亚洲激情图片qvod| 粉嫩高潮美女一区二区三区| 欧美丰满嫩嫩电影| 亚洲精选一二三| 国产福利一区二区三区在线视频| 欧美日韩在线不卡| 中文字幕一区在线观看| 国产在线精品视频| 欧美精品久久天天躁| 亚洲三级在线免费| 成人精品免费网站| 久久亚洲一区二区三区四区| 污片在线观看一区二区| 91首页免费视频| 国产精品网友自拍| 国产成人免费视频网站高清观看视频| 69久久夜色精品国产69蝌蚪网| 亚洲人成亚洲人成在线观看图片 | 亚洲成人福利片| 91国偷自产一区二区开放时间 | 欧美精品v国产精品v日韩精品| 国产精品久久久久久亚洲毛片| 极品少妇xxxx精品少妇偷拍 | 日日摸夜夜添夜夜添亚洲女人| av不卡免费在线观看| 久久日韩粉嫩一区二区三区| 美女被吸乳得到大胸91| 欧美一级黄色大片| 美日韩黄色大片| 日韩一级免费观看| 男女激情视频一区| 欧美电视剧在线观看完整版| 日韩精品欧美精品| 日韩美一区二区三区| 麻豆极品一区二区三区| 日韩你懂的电影在线观看| 欧美aaaaa成人免费观看视频|