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

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

?? clnt-gen

?? BCAST Implementation for NS2
??
字號:
#! /usr/bin/env python"""Program to generate Xrl Interface Client related files"""import os, sys# This is a bit of mess as this code was split into separate filesimport Xif.utilfrom Xif.util import							      \     joining_csv, csv, cpp_name, cpp_classname, caps_cpp_classname,	      \     cpp_version, xorp_indent_string, xorp_indentfrom Xif.xiftypes import \     XrlArg, XrlMethod, XrlInterface, XrlTargetfrom Xif.parse import \     XifParserfrom Xif.kdoc import XifKdocThing# -----------------------------------------------------------------------------# Client Interface file output related# -----------------------------------------------------------------------------def kdoc_comment(method):    kdoc_source = method.annotation()    if kdoc_source == "":        return ""    kdt = Xif.kdoc.parse_kdoc_comment(kdoc_source)    kdt.add_kdoc_param("tgt_name", "Xrl Target name")    params = ["tgt_name"]    for a in method.args():        params.append(a.name())    comment = "Send Xrl intended to:"    return kdt.output_kdoc("    ", params, comment)def declare_send_xrl(method_no, method):    rtypes = []    for r in method.rargs():        rtypes.append("const " + r.cpp_type() + "*")    cb_name = "%sCB" % (caps_cpp_classname(method.name()))    s = "    typedef XorpCallback%s<void, const XrlError&%s>::RefPtr %s;\n" \        % (1 + len(rtypes), joining_csv(rtypes), cb_name)    s += kdoc_comment(method) + "\n"    atypes = ["\n\tconst char*\ttarget_name"]    for a in method.args():        atypes.append("\n\tconst %s&\t%s" % (a.cpp_type(), a.name()))    atypes.append("\n\tconst %s&\tcb" % cb_name)    s += "    bool send_%s(%s\n    );\n\n" \        % (cpp_name(method.name()), csv(atypes))    return s;def implement_send_xrl(cls, method_no, method, ifqname):    cb_name = "%sCB" % (caps_cpp_classname(method.name()))    atypes = ["\n\tconst char*\tthe_tgt"]    for a in method.args():        atypes.append("\n\tconst %s&\t%s" % (a.cpp_type(), a.name()))    atypes.append("\n\tconst %s&\tcb" % cb_name)    s = "\nbool\n%s::send_%s(%s\n)\n{\n" \        % (cls, cpp_name(method.name()), csv(atypes))    s += "    Xrl x(the_tgt, \"%s\");\n" % ifqname    for a in method.args():        s += "    x.args().add(\"%s\", %s);\n" % (a.name(), a.name())    s += "    return _sender->send(x, callback(this, &%s::unmarshall_%s, cb));\n" % (cls, method.name())    s += "}\n\n"    return sdef declare_unmarshall_common(cls, indent, method_name):    s = xorp_indent_string(indent , "void")    s += "%sunmarshall_%s(" % (cls, method_name)    cb_name = "%sCB" % (caps_cpp_classname(method_name))    args = [ "const XrlError&\te", "XrlArgs*\ta", "%s\t\tcb" % cb_name]    for i in range(0, len(args)):        args[i] = "\n\t" + args[i]    s += csv(args)    s += "\n%s)" % xorp_indent(indent)    return sdef declare_unmarshall(method_name):    return declare_unmarshall_common(" ", 1, method_name) + ";\n\n"def implement_unmarshall(cls, method_no, method):    nargs = []    for r in method.rargs():        nargs.append("0")    fail_args = joining_csv(nargs)    s = "\n/* Unmarshall %s */\n" % method.name()    s += declare_unmarshall_common("\n%s::" % cls, 0, method.name()) + "\n{\n"    s += "    if (e != XrlError::OKAY()) {\n"    s += "\tcb->dispatch(e%s);\n" % fail_args    s += "\treturn;\n"    s += "    } else if (a && a->size() != %d) {\n" % len(method.rargs())    s += "\tXLOG_ERROR(\"Wrong number of arguments (%%u != %d)\", (uint32_t)a->size());\n" % len(method.rargs())    s += "\tcb->dispatch(XrlError::BAD_ARGS()%s);\n" % fail_args    s += "\treturn;\n"    s += "    }\n"    if len(method.rargs()):        for r in method.rargs():            s += "    %s %s;\n" % (r.cpp_type(), cpp_name(r.name()))        s += "    try {\n"        for r in method.rargs():            s += "\ta->get(\"%s\", %s);\n" % (r.name(), cpp_name(r.name()))        s += "    } catch (const XrlArgs::XrlAtomNotFound&) {\n"        s += "\tXLOG_ERROR(\"Atom not found\");\n"        s += "\tcb->dispatch(XrlError::BAD_ARGS()%s);\n" % fail_args        s += "\treturn;\n"        s += "    }\n"    v = []    for r in method.rargs():        v.append("&%s" % cpp_name(r.name()))    s += "    cb->dispatch(e%s);\n" % joining_csv(v)    s += "}\n"    return sdef protect(file):    # remove direcory component    r = file.rfind("/") + 1    return "__XRL_INTERFACES_%s__" % file[r:].upper().replace(".", "_")def prepare_client_if_hh(modulename, hh_file):    s = Xif.util.standard_preamble(1, hh_file)    s += \"""#ifndef %s#define %s#undef XORP_LIBRARY_NAME#define XORP_LIBRARY_NAME "%s"#include "libxorp/xlog.h"#include "libxorp/callback.hh"#include "libxipc/xrl.hh"#include "libxipc/xrl_error.hh"#include "libxipc/xrl_sender.hh"""" % (protect(hh_file), protect(hh_file), modulename)    return sdef client_if_hh(cls, methods):    s = """class %s {public:    %s(XrlSender* s) : _sender(s) {}    virtual ~%s() {}""" % (cls, cls, cls)    for i in range(0, len(methods)):        s += declare_send_xrl(i, methods[i])    s += """protected:    XrlSender* _sender;private:"""    for i in range(0, len(methods)):        s += declare_unmarshall(methods[i].name())    s += "};\n"    return sdef finish_client_if_hh(hh_file):    return "\n#endif /* %s */\n" % protect(hh_file)def prepare_client_if_cc(hh_file, cc_file):    s = Xif.util.standard_preamble(0, cc_file)    s += "#include \"%s\"\n" % hh_file    return sdef client_if_cc(cls, ifname, ifversion, methods):    s = ""    for i in range(0, len(methods)):        # Interface qualified name        ifqname = "%s/%s/%s" % (ifname, ifversion, methods[i].name())        s += implement_send_xrl(cls, i, methods[i], ifqname)        s += implement_unmarshall(cls, i, methods[i])    return sdef main():    # Command line arguments passed on to cpp    pipe_string = "cpp -C "    for a in sys.argv[1:]:	pipe_string += "%s " % a    cpp_pipe = os.popen(pipe_string, 'r')    xp = XifParser(cpp_pipe)    if len(xp.targets()):        print "Found targets (used a .ent rather than .xif input?)"        sys.exit(1)    xifs = xp.interfaces()    if len(xifs) == 0:        print "No interface definitions provided"        sys.exit(1)    # Check all interface definitions come from same source file.    # Although we've done the hard part (parsing), generating from    # here is still painful if we have to output multiple interface files.    sourcefile = xifs[0].sourcefile()    for xif in xifs:        if (xif.sourcefile() != sourcefile):            print "Multiple .xif files presented, expected one."            sys.exit(1)    # basename transformation - this is a lame test    if sourcefile[-4:] != ".xif":        print "Source file does not end in .xif suffix - basename transform failure."        sys.exit(1)    basename = sourcefile[:-4]    modulename = "Xif%s" % cpp_classname(basename[basename.rfind("/") + 1:])    hh_file = "%s_xif.hh" % basename    cc_file = "%s_xif.cc" % basename        # Generate header file    hh_txt = prepare_client_if_hh(modulename, hh_file)    for xif in xifs:        cls = "Xrl%s%sClient" % (cpp_classname(xif.name()), \                                  cpp_version(xif.version()))        hh_txt += client_if_hh(cls, xif.methods())    hh_txt += finish_client_if_hh(hh_file)    Xif.util.file_write_string(hh_file, hh_txt)    # Generate implementation file    cc_txt = prepare_client_if_cc(hh_file[hh_file.rfind("/") + 1 : ], cc_file)    for xif in xifs:        cc_txt += client_if_cc(cls, xif.name(), xif.version(), xif.methods())    Xif.util.file_write_string(cc_file, cc_txt)if __name__ == '__main__':    main()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蝌蚪国产九色| 自拍偷在线精品自拍偷无码专区| 2024国产精品| 亚洲一二三四区不卡| 久久国产精品72免费观看| 91久久国产最好的精华液| 精品国产精品网麻豆系列| 亚洲在线中文字幕| 成人综合在线观看| 久久女同精品一区二区| 午夜精品久久久久| 欧美在线视频日韩| 一区二区三区小说| 99精品黄色片免费大全| 中文字幕欧美三区| 国产一区二区三区在线观看精品 | 欧美精品少妇一区二区三区| 日本一区二区三区视频视频| 久久精品国产亚洲高清剧情介绍 | 成人一区二区三区视频在线观看 | 午夜不卡在线视频| 在线一区二区三区| 综合欧美一区二区三区| 国产成人精品免费在线| 久久久久久免费毛片精品| 美国三级日本三级久久99| 欧美日韩精品一区二区三区四区 | 久久久久久久久岛国免费| 麻豆精品视频在线观看| 欧美一区中文字幕| 男女视频一区二区| 欧美一级一区二区| 久色婷婷小香蕉久久| 精品久久人人做人人爰| 韩国精品在线观看| 国产欧美一区二区精品性| 国产999精品久久久久久绿帽| 久久影院午夜片一区| 国产一区二区三区最好精华液| 久久综合一区二区| 国产suv精品一区二区6| 国产精品午夜春色av| 91性感美女视频| 亚洲精品国产第一综合99久久 | 欧美美女bb生活片| 日韩高清中文字幕一区| 日韩一级大片在线| 国产精品一级二级三级| 中文字幕在线不卡视频| 色乱码一区二区三区88| 午夜精品久久久久| 久久久一区二区三区捆绑**| 成人app在线| 亚洲一区二区三区在线播放| 91精品在线免费| 韩国三级在线一区| 亚洲三级在线免费观看| 制服丝袜av成人在线看| 国产乱人伦偷精品视频不卡| 亚洲欧美在线视频观看| 欧美人与z0zoxxxx视频| 国产精品一区2区| 亚洲在线视频网站| 精品sm捆绑视频| 色一情一乱一乱一91av| 蜜臀a∨国产成人精品| 国产欧美视频一区二区三区| 在线看一区二区| 国产又粗又猛又爽又黄91精品| 中文字幕一区二区三区不卡 | 国产丝袜欧美中文另类| 欧美在线|欧美| 国产剧情在线观看一区二区| 一区二区三区欧美日| 日韩一级黄色大片| 日本高清免费不卡视频| 国产一区在线精品| 午夜不卡av免费| 国产精品久久久久久久久果冻传媒 | 欧美美女黄视频| 国产不卡视频在线播放| 日韩电影在线观看网站| 中文字幕欧美一| 欧美一区二区不卡视频| 91性感美女视频| 国产精品一卡二| 免费日韩伦理电影| 亚洲线精品一区二区三区八戒| 久久久不卡影院| 欧美一区二视频| 日本韩国精品一区二区在线观看| 狠狠色丁香久久婷婷综合丁香| 亚洲一区在线视频观看| 国产精品国产三级国产aⅴ入口 | 亚洲国产综合在线| 中文字幕欧美一| 国产视频一区不卡| 日韩你懂的在线观看| 91.xcao| 欧美日韩夫妻久久| 欧美在线不卡视频| 91香蕉国产在线观看软件| 成人丝袜高跟foot| 成人影视亚洲图片在线| 国产成人免费9x9x人网站视频| 久久99蜜桃精品| 捆绑调教美女网站视频一区| 偷窥国产亚洲免费视频 | 中文字幕一区二区不卡| 久久一区二区三区四区| 日韩欧美三级在线| 精品久久久久一区二区国产| 日韩一级高清毛片| 精品国产一区二区在线观看| 精品少妇一区二区三区在线播放 | 狂野欧美性猛交blacked| 日本怡春院一区二区| 日本免费在线视频不卡一不卡二| 亚洲成a人v欧美综合天堂| 午夜精品福利一区二区三区av | 精品国产乱码久久久久久久久| 精品美女在线播放| 久久久亚洲午夜电影| 国产人伦精品一区二区| 中文字幕五月欧美| 亚洲美女偷拍久久| 亚洲午夜电影网| 美女视频网站黄色亚洲| 国精品**一区二区三区在线蜜桃| 国产精品一区二区在线观看网站| 高清成人免费视频| 欧美在线色视频| 日韩限制级电影在线观看| 精品国产91乱码一区二区三区| 欧美国产精品久久| 亚洲人妖av一区二区| 亚洲成人自拍偷拍| 狠狠久久亚洲欧美| 91美女在线视频| 91精品国产91久久综合桃花| 精品国产成人系列| 亚洲另类在线一区| 美女高潮久久久| 99久久国产综合精品色伊 | 91一区二区在线观看| 欧美日本一区二区在线观看| 精品乱人伦小说| 成人免费一区二区三区视频 | 欧美一区二区三区日韩视频| xnxx国产精品| 亚洲一二三四在线| 国产高清精品网站| 欧美人与禽zozo性伦| 国产校园另类小说区| 亚洲成人777| 成人爽a毛片一区二区免费| 欧美三级在线播放| 国产无人区一区二区三区| 亚洲电影在线免费观看| 国产成人精品一区二区三区网站观看| 欧美在线观看一区二区| 国产日韩欧美在线一区| 日韩不卡一二三区| 色综合天天天天做夜夜夜夜做| 欧美一二三四在线| 亚洲一区二区黄色| 成人av小说网| 日韩美女在线视频| 五月综合激情婷婷六月色窝| 国产白丝精品91爽爽久久| 欧美久久一二区| 一区二区三区高清不卡| 成人午夜激情在线| 久久久精品黄色| 美国十次综合导航| 欧美久久一二区| 亚洲一区二区在线视频| 91亚洲大成网污www| 国产午夜精品在线观看| 久久成人久久爱| 欧美老肥妇做.爰bbww视频| 国产精品进线69影院| 国产高清久久久| 久久久亚洲精品石原莉奈| 久久精品久久99精品久久| 88在线观看91蜜桃国自产| 一二三四社区欧美黄| 91啦中文在线观看| 亚洲图片另类小说| 94-欧美-setu| 日韩理论片一区二区| 99re这里只有精品6| 国产精品九色蝌蚪自拍| jlzzjlzz亚洲女人18| 国产欧美日韩精品一区| 国产寡妇亲子伦一区二区| 久久久91精品国产一区二区精品 | 日韩和欧美一区二区三区| 欧美在线免费视屏| 首页亚洲欧美制服丝腿|