ns3中可以根據物件中的typeid進行乙個物件的建立。每乙個物件的cc檔案都有這樣乙個巨集ns_object_ensure_registered,對物件進行註冊。這個巨集的內容:
#define ns_object_ensure_registered(type) \
static
struct x ## type ## registrationclass \
\} x_ ## type ## registrationvariable
typeid
packetsink::gettypeid (void)
addconstructor
為物件型別註冊構造器。這樣就將乙個類的typeid與類的例項化關聯到一起。
typeid::addconstructor (void)
};callbackcb = makecallback (&maker::create);
doaddconstructor (cb);
return *this;
}
所以我看到packetsinkhelper向objectfactory設定的是ns3::packetsink的typeid。
packetsinkhelper::packetsinkhelper (std::string protocol, address address)
SparkSQL(原始碼閱讀三)
額,沒忍住,想完全了解sparksql,畢竟一直在用嘛,想一次性搞清楚它,所以今天再多看點好了 曾幾何時,有乙個叫做shark的東西,它改了hive的原始碼。突然有一天,spark sql突然出現,如下圖 好了,不逗了,言歸正傳。那麼一條sql傳統資料庫會是怎麼解析的呢?傳統資料庫的解析過程是按ru...
String原始碼閱讀(三)
public string split string regex,int limit else if no match was found,return this if off 0 return new string 如果limit大於最大返回長度,上面else中的 不會執行,在此處將最後一段放入l...
STL原始碼閱讀 三
list結點基類 struct list node base list結點 template struct list node public list node base list迭代器,迭代器型別雙向迭代器 struct list iterator base template struct lis...