ICE Manual(Documentation for Ice 3.5)---The Ice Run Time in Detail(ICE Stats)

来源:互联网 发布:淘宝日服苹果账号注册 编辑:程序博客网 时间:2024/04/27 23:00
Ice run time 通过Ice::Stats 接口报告,所有的操作调用在线路上发送和接收的字节数:
module Ice {
local interface Stats {
void bytesSent(string protocol, int num);
void bytesReceived(string protocol, int num);
};
local interface Communicator {
setStats(Stats st);
// ...
};
};
当Ice run time 从网络读取数据时,它会调用bytesReceived ;当它把数据写往网络时,它会调用bytesSent。下面是Stats 接口的一种非常简单的实现:
class MyStats : public virtual Ice::Stats {
public:
virtual void bytesSent(const string &prot, Ice::Int num)
{
cerr << prot << ": sent " << num << "bytes" << endl;
}
virtual void bytesReceived(const string &prot, Ice::Int)
{
cerr << prot << ": received " << num << "bytes" << endl;
}

};

你可以在客户端、也可以在服务器端(或两端)安装Stats 对象。在实践中,你的Stats 实现可能会更加复杂一点:例如,这个对象可以在成员变量中累计统计信息,并且提供成员函数,用于让你访问累计的统计信息,而不是把所有信息都简单地打印到标准错误输出。


在3.5中,Stats 已经作为 类 InitializationData的一个公开属性,可直接在初始化Communicator 时,做赋值。

原创粉丝点击