每个Ice 对象都有一个对象标识,其定义如下所示:
1
2 module Ice {
3 struct Identity {
4 string name;
5 string category;
6 };
7 };
你可以看到,对象标识由一对串组成:name 和category。name 或category
都可以是空串(如果某个代理包含的标识的name 和category 都是空
的, Ice 就把这个代理解释成null 代理)。完整的对象标识由name 和
category 组合而成,也就是说,两个标识要相等,它们的name 和category
都必须相同。category 成员通常是空串,除非你在使用servant 定位器
这个对象标识应该就是ASM 里面的键 当然,值就是代理了(也就是指针,也就是在内存中的位置)。。。(不敢多说了。。。砖头阿。。。)
1 namespace Ice {
2 std::string identityToString(const Ice::Identity id);
3 Ice::Identity stringToIdentity(const std::string& s);
4 };
这里的 stringToIdentity(const std::string& s) 这个方法很雷的只传入了一个参数,这样的话是不是category 成员就直接“”了。。。实在是太不受重视了。。。不过我看的只是少部分。。乎略我。。。