Merge branch 'master' of git://github.com/worklist/hifi into windows_build

Conflicts:
	libraries/shared/src/NodeList.cpp
	libraries/shared/src/NodeList.h
This commit is contained in:
Brad Hefta-Gaub 2014-01-15 13:18:25 -08:00
commit bd6e30070d
3 changed files with 12 additions and 8 deletions

View file

@ -55,7 +55,8 @@ void Agent::run() {
// XXXBHG - this seems less than ideal. There might be classes (like jurisdiction listeners, that need access to
// other node types, but for them to get access to those node types, we have to add them here. It seems like
// NodeList should support adding types of interest
const NODE_TYPE AGENT_NODE_TYPES_OF_INTEREST[] = { NODE_TYPE_VOXEL_SERVER, NODE_TYPE_PARTICLE_SERVER };
const NODE_TYPE AGENT_NODE_TYPES_OF_INTEREST[] = { NODE_TYPE_VOXEL_SERVER, NODE_TYPE_PARTICLE_SERVER,
NODE_TYPE_AUDIO_MIXER };
nodeList->setNodeTypesOfInterest(AGENT_NODE_TYPES_OF_INTEREST, sizeof(AGENT_NODE_TYPES_OF_INTEREST));

View file

@ -288,7 +288,9 @@ void NodeList::clear() {
// iterate the nodes in the list
while (nodeItem != _nodeHash.end()) {
nodeItem = killNodeAtHashIterator(nodeItem);
NodeHash::iterator previousNodeItem = nodeItem;
++nodeItem;
killNodeAtHashIterator(previousNodeItem);
}
}
@ -454,14 +456,12 @@ void NodeList::killNodeWithUUID(const QUuid& nodeUUID) {
}
}
NodeHash::iterator NodeList::killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill) {
void NodeList::killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill) {
qDebug() << "Killed" << *nodeItemToKill.value();
emit nodeKilled(nodeItemToKill.value());
return _nodeHash.erase(nodeItemToKill);
_nodeHash.erase(nodeItemToKill);
}
void NodeList::sendKillNode(const char* nodeTypes, int numNodeTypes) {
unsigned char packet[MAX_PACKET_SIZE];
unsigned char* packetPosition = packet;
@ -803,7 +803,10 @@ void NodeList::removeSilentNodes() {
if ((usecTimestampNow() - node->getLastHeardMicrostamp()) > NODE_SILENCE_THRESHOLD_USECS) {
// call our private method to kill this node (removes it and emits the right signal)
nodeItem = killNodeAtHashIterator(nodeItem);
NodeHash::iterator previousNodeItem = nodeItem;
++nodeItem;
killNodeAtHashIterator(previousNodeItem);
} else {
// we didn't kill this node, push the iterator forwards
++nodeItem;

View file

@ -136,7 +136,7 @@ private:
void processSTUNResponse(unsigned char* packetData, size_t dataBytes);
void processKillNode(unsigned char* packetData, size_t dataBytes);
NodeHash::iterator killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill);
void killNodeAtHashIterator(NodeHash::iterator& nodeItemToKill);
NodeHash _nodeHash;
QString _domainHostname;