因为估计我们的处理函数都会放在loaded(html *page)这个函数中去,现在我们来看看在useroutput.cc这个文件中是怎么实现loaded(html *page)这个方法的.
实际上,useroutput.cc文件中只是根据配置文件中定义的输出方法决定编译哪个文件,现在来看看我们一般会选择的镜像的输出对应的文件mirroroutput.cc文件,其中的loaded(html *page)函数是这样实现的:
/** A page has been loaded successfully
* @param page the page that has been fetched
*/
void loaded (html *page) {
// get file name and create needed directories
url *u = page->getUrl();
uint p = u->getPort();
char *h = u->getHost();
char *f = u->getFile();
// update dir name
uint d = u->hostHashCode() % nbDir;
for (int i=2; i<7; i++) {
fileName[endFileName-i] = d % 10 + '0';
d /= 10;
}
// set file name
uint len = endFileName;
if (p == 80)
len += sprintf(fileName+endFileName, "%s%s", h,
实际上,useroutput.cc文件中只是根据配置文件中定义的输出方法决定编译哪个文件,现在来看看我们一般会选择的镜像的输出对应的文件mirroroutput.cc文件,其中的loaded(html *page)函数是这样实现的:
/** A page has been loaded successfully
* @param page the page that has been fetched
*/
void loaded (html *page) {
// get file name and create needed directories
url *u = page->getUrl();
uint p = u->getPort();
char *h = u->getHost();
char *f = u->getFile();
// update dir name
uint d = u->hostHashCode() % nbDir;
for (int i=2; i<7; i++) {
fileName[endFileName-i] = d % 10 + '0';
d /= 10;
}
// set file name
uint len = endFileName;
if (p == 80)
len += sprintf(fileName+endFileName, "%s%s", h,