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

📄 corbaplatoon_test.cc

📁 实现了poll/epoll/devpoll等C++封装
💻 CC
字号:
/* Platoon_test.cc   tests the Platoon client.   Usage: */#include <iostream.h>#include <unistd.h>#include "CorbaPlatoon.hh"static int CorbaPlatoon_test(CorbaPlatoon_ptr p){#if 0	const char *filename = "/usenet/.message";	const char *username = "anonymous";	const char *password = "robouser@";	const char *servername = "ftp.uu.net";#else	const char *filename= "pub/x10k.dat";	const char *username = "ftp";	const char *password = "me@";	const char *servername = "192.168.123.4";#endif	unsigned long maxBytesPerSec = 1000;	unsigned long minBytesPerSec = 50;	unsigned long bytesPerRead = 1500;	unsigned short port = 21;	int retval = __LINE__;	int useAllLocalInterfaces = 0;	// false	p->init(filename, maxBytesPerSec, minBytesPerSec, bytesPerRead,		servername, port, username, password, useAllLocalInterfaces);	p->set_nuserTarget(10);	p->set_verbosity(10);	long totalBytesRead = 0;	unsigned long numConnecting = 0;	unsigned long numAlive = 0;	unsigned long numDead = 0;	// will sleep at most 10 sec	for (int count = 0; count < 10; count++) {		long lastTotalBytesRead;		lastTotalBytesRead = p->getStatus(numConnecting, numAlive, numDead);		cout << "connecting " << numConnecting << ", alive " << numAlive << ", dead " << numDead << endl;		if (lastTotalBytesRead < totalBytesRead) {	// 			cerr << "Total bytes read decreased, test failed. Aborting." << endl;			retval = __LINE__;			//error return 			break;		} else if (numDead > 0) {			cerr << "Somebody died. Abort! Abort!" << endl;			retval = __LINE__;			//error return 			break;		} else if (numAlive == 10) {			cout << "The Platoon has connected. Test successful." << endl;			retval = 0;			break;		} else					// wait			sleep(1);		totalBytesRead = lastTotalBytesRead;	}	if (retval)		cout << "FAIL: error at line " << retval << endl;	return retval;}int main(int argc, char **argv){	try {		CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB3");		CORBA::Object_var obj = orb->string_to_object(argv[1]);		CorbaPlatoon_var Platoon_ref = CorbaPlatoon::_narrow(obj);		if (CORBA::is_nil(Platoon_ref)) {			cerr << "Platoon reference not found." << endl;			return 1;		}		int returnStat = CorbaPlatoon_test(Platoon_ref);		/* don't leave the sourcerer's apprentice fetching files forever */		Platoon_ref->reset();		orb->destroy();		if (!returnStat)			cout << "PASS" << endl;		else			cout << "FAIL " << returnStat << endl;		return returnStat;	}	catch(CORBA::COMM_FAILURE & ex) {		cerr << "CORBA COMM_FAILURE unable to contact the object" << endl;	}	catch(CORBA::SystemException &) {		cerr << "CORBA::SystemException caught" << endl;	}	catch(CORBA::Exception &) {		cerr << "CORBA::Exception caught" << endl;	}	catch(omniORB::fatalException & fe) {		cerr << "Caught omniORB::fatalException:" << endl;		cerr << "  file: " << fe.file() << endl;		cerr << "  line: " << fe.line() << endl;		cerr << "  mesg: " << fe.errmsg() << endl;	}	catch(...) {		cerr << "Caught unknown exception." << endl;	}	return 0;}

⌨️ 快捷键说明

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