※ 引述《sysrq (从零开始)》之铭言:
: 标题: [问题] 请教简单问题 TCL 与 .cc 关系
: 时间: Wed Jun 1 18:28:18 2011
:
: 请教一个简单问题.
: 在 tcl 中有以下的 code,
: set peer($i) [new PeerApp/GnutellaApp $nodeid 0 0]
: 请问在 .cc 中 GnutellaApp , 传入三值的 $nodeid, 0, 0 该如何找到?
: 我试着找了 .cc code 中的 function, 没有找到类似有三个 input 的地方.
: 最类似的仅有
: GnutellaApp::GnutellaApp(NodeAddr_t addr): PeerApp(addr) {
: 但里面参数只有一个(NodeAddr_t addr).
: 请问我的观念, 或是我找的方法有什么错误吗?
: 诚心请教.
: → kivava:这是tclcl的参数传递,要找TclClass或/lib下的.tcl指令 06/01 20:35
谢谢 kivava 回答.
后来查了一下 .cc,
有找到 TclClass
static class GnutellaAppClass: public TclClass {
public:
GnutellaAppClass(): TclClass("PeerApp/GnutellaApp") {}
TclObject* create(int argc, const char*const* argv) {
return (new GnutellaApp(atoi(argv[4])));
}
}class_gnutellaapp;
黄色字体应该就是 set peer($i) [new PeerApp/GnutellaApp $nodeid 0 0]
中 PeerApp/GnutellaApp 的对应部份,
不过我还是不清楚 $nodeid 0 0 三个变量是传到 .cc 的哪里???
请问是以下的 code 的位置吗?
GnutellaApp::GnutellaApp(NodeAddr_t addr): PeerApp(addr) {
ping_timer_ = new PingTimer(this);
watchDog_ = new WatchDog(this);
isBootserver_ = FALSE;
ping_interval_ = PING_INTERVAL;
watch_interval_ = CONN_INTERVAL;
max_deg_ = MAX_DEGREE;
bind("isBootserver_", &isBootserver_);
bind("max_deg_", &max_deg_);
bind("isWireless_", &isWireless_);
:
: