⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http-aux.cc

📁 柯老师网站上找到的
💻 CC
字号:
// Copyright (c) Xerox Corporation 1998. All rights reserved.//// License is granted to copy, to use, and to make and to use derivative// works for research and evaluation purposes, provided that Xerox is// acknowledged in all documentation pertaining to any such copy or// derivative work. Xerox grants no other licenses expressed or// implied. The Xerox trade name should not be used in any advertising// without its written permission. //// XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE// MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE// FOR ANY PARTICULAR PURPOSE.  The software is provided "as is" without// express or implied warranty of any kind.//// These notices must be retained in any copies of any part of this// software. //// Auxiliary classes for Http multicast invalidation proxy cache//// $Headers$#include "http-aux.h"#include "http.h"void PushTimer::expire(Event *) {	a_->timeout(HTTP_UPDATE);}void HBTimer::expire(Event *) {	a_->timeout(HTTP_INVALIDATION);}void LivenessTimer::expire(Event *){	a_->handle_node_failure(nbr_);}void HttpHbData::extract(InvalidationRec*& head){	// XXX head must be passed in from outside, because the 	// InvalidationRec list will obtain the address of head	head = NULL;	InvalidationRec *q = NULL;	// reconstruct a list of invalidation records.	// We keep the updating record 	for (int i = 0; i < num_inv(); i++) {		// Used only to mark that this page will be send in 		// the next multicast update. The updating field in 		// this agent will only be set after it gets the real 		// update. Here we set this field temporarily so that		// recv_inv can find out the 		q = inv_rec()[i].copyto();		q->insert(&head);	}}NeighborCache::~NeighborCache(){	timer_->cancel();	delete timer_;	ServerEntry *s = sl_.gethead(), *p;	while (s != NULL) {		p = s;		s = s->next();		delete p;	}}int NeighborCache::is_server_down(int sid){	ServerEntry *s = sl_.gethead();	while (s != NULL) {		if (s->server() == sid)			return s->is_down();		s = s->next();	}	return 0;}void NeighborCache::server_down(int sid){	ServerEntry *s = sl_.gethead();	while (s != NULL) {		if (s->server() == sid)			s->down();		s = s->next();	}}void NeighborCache::server_up(int sid){	ServerEntry *s = sl_.gethead();	while (s != NULL) {		if (s->server() == sid)			s->up();		s = s->next();	}}void NeighborCache::invalidate(HttpMInvalCache *c){	ServerEntry *s = sl_.gethead();	while (s != NULL) {		c->invalidate_server(s->server());		s = s->next();	}}void NeighborCache::pack_leave(HttpLeaveData& data){	int i;	ServerEntry *s;	for (i = 0, s = sl_.gethead(); s != NULL; s = s->next(), i++)		data.add(i, s->server());}void NeighborCache::add_server(int sid){	ServerEntry *s = new ServerEntry(sid);	sl_.insert(s);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -