Re: [問題] 請教簡單問題 TCL 與 .cc 關係

作者: sysrq (從零開始)   2011-06-01 21:28:49
※ 引述《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_);
:
:
作者: sysrq (從零開始)   2011-06-02 00:28:00
自問自答: 應該這篇的對應正確

Links booklink

Contact Us: admin [ a t ] ucptt.com