当前位置: 首页>>代码示例>>C++>>正文


C++ NetworkNode::setSession方法代码示例

本文整理汇总了C++中NetworkNode::setSession方法的典型用法代码示例。如果您正苦于以下问题:C++ NetworkNode::setSession方法的具体用法?C++ NetworkNode::setSession怎么用?C++ NetworkNode::setSession使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NetworkNode的用法示例。


在下文中一共展示了NetworkNode::setSession方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _addNetworkNode

/**
 * Given a NodeInfoMsg inserts the node into NetworkNode database.
 * @param session can be null
 * Returns true if new node inserted, false if already present
 * Delete the message
 */
bool NodeNetworkSystem::_addNetworkNode(Session* session, NodeInfoMsg* msg) {
	if (_DEBUG)
		cout << "NodeNetworkSystem::_addNetworkNode" << endl;

	bool retval = false;
	NetworkNode* connectedNode = NetworkNode::getNodeById(msg->getId());
	if (connectedNode == NULL) {
		/* The connected node is unknown. Add it */
		retval = true;
		if (_DEBUG)
			cout
					<< "NodeNetworkSystem::_addNetworkNode: creating a new NetworkNode"
					<< endl;
		switch (msg->getNodeType()) {
		case NODETYPE_CAMERA:
			connectedNode = NetworkNode::addCamera(msg->getId(),
					msg->getAmAddress(), msg->getIpAddress(),
					msg->getServerPort());
			break;
		case NODETYPE_COOPERATOR:
			connectedNode = NetworkNode::addCooperator(msg->getId());
			break;
		default:
			if (_DEBUG)
				cerr
						<< "NodeNetworkSystem::_addNetworkNode: Error! Notification of a type "
						<< msg->getNodeType() << " node!" << endl;
			return false;
		}
		if (_DEBUG) {
			cout
					<< "NodeNetworkSystem::_addNetworkNode: Network Topology updated "
					<< endl;
			NetworkNode::printNetwork();
		}
	}
	if (session) {
		connectedNode->setSession(session);
	}
	if (connectedNode->getType() == NODETYPE_COOPERATOR) {
		switch (NetworkNode::getMyself()->getType()) {
		case NODETYPE_CAMERA: {
			_offloadingManager->addCooperator(connectedNode);
			CoopInfoMsg* infoMsg = new CoopInfoMsg(NetworkNode::getMyself(),
					NetworkNode::getSink(), LINKTYPE_TCP,
					_offloadingManager->getCooperatorsIds());
			sendMessage(infoMsg);
			break;
		}
		default:
			break;
		}
	}

	delete msg;

	return retval;
}
开发者ID:greeneyesproject,项目名称:testbed-demo,代码行数:64,代码来源:NodeNetworkSystem.cpp

示例2: serverRemoveSessionHandler

void NodeNetworkSystem::serverRemoveSessionHandler(Session* session) {
	switch (_nodeProcessingSystem->getNodeType()) {
	case NODETYPE_SINK: {
		NetworkNode* camera = NetworkNode::getCameraBySession(session);
		if (camera) {
			if (_DEBUG)
				cout << "NodeNetworkSystem::serverAddSessionHandler: Camera "
						<< (unsigned short) camera->getId() << " disconnected "
						<< endl;
			camera->setSession(NULL);
		}
		break;
	}
	case NODETYPE_CAMERA: {
		NetworkNode* cooperator = NetworkNode::getCooperatorBySession(session);
		if (cooperator) {
			if (_DEBUG)
				cout
						<< "NodeNetworkSystem::serverAddSessionHandler: Cooperator "
						<< (unsigned short) cooperator->getId()
						<< " disconnected " << endl;
			cooperator->setSession(NULL);
			_offloadingManager->removeCooperator(cooperator);
			CoopInfoMsg* infoMsg = new CoopInfoMsg(NetworkNode::getMyself(),
					NetworkNode::getSink(), LINKTYPE_TCP,
					_offloadingManager->getCooperatorsIds());
			sendMessage(infoMsg);
		}
		break;
	}
	default: {
		if (_DEBUG)
			cerr << "NodeNetworkSystem::serverAddSessionHandler: Node of type "
					<< _nodeProcessingSystem->getNodeType()
					<< " can't reach this point" << endl;
	}
	}
}
开发者ID:greeneyesproject,项目名称:testbed-demo,代码行数:38,代码来源:NodeNetworkSystem.cpp


注:本文中的NetworkNode::setSession方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。