mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-04-07 10:02:24 +02:00
prefer -> notation to (*TYPE) for AgentList iterator
This commit is contained in:
parent
dac660efda
commit
625a963918
7 changed files with 49 additions and 43 deletions
|
@ -86,15 +86,15 @@ void *sendBuffer(void *args)
|
|||
sentBytes = 0;
|
||||
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
AudioRingBuffer *agentBuffer = (AudioRingBuffer *)(*agent).getLinkedData();
|
||||
AudioRingBuffer *agentBuffer = (AudioRingBuffer *)agent->getLinkedData();
|
||||
|
||||
if (agentBuffer != NULL && agentBuffer->getEndOfLastWrite() != NULL) {
|
||||
|
||||
if (!agentBuffer->isStarted()
|
||||
&& agentBuffer->diffLastWriteNextOutput() <= BUFFER_LENGTH_SAMPLES_PER_CHANNEL + JITTER_BUFFER_SAMPLES) {
|
||||
printf("Held back buffer for agent with ID %d.\n", (*agent).getAgentId());
|
||||
printf("Held back buffer for agent with ID %d.\n", agent->getAgentId());
|
||||
} else if (agentBuffer->diffLastWriteNextOutput() < BUFFER_LENGTH_SAMPLES_PER_CHANNEL) {
|
||||
printf("Buffer from agent with ID %d starved.\n", (*agent).getAgentId());
|
||||
printf("Buffer from agent with ID %d starved.\n", agent->getAgentId());
|
||||
agentBuffer->setStarted(false);
|
||||
} else {
|
||||
// good buffer, add this to the mix
|
||||
|
@ -109,7 +109,7 @@ void *sendBuffer(void *args)
|
|||
memset(distanceCoeffs, 0, sizeof(distanceCoeffs));
|
||||
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
AudioRingBuffer *agentRingBuffer = (AudioRingBuffer *)(*agent).getLinkedData();
|
||||
AudioRingBuffer *agentRingBuffer = (AudioRingBuffer *)agent->getLinkedData();
|
||||
float agentBearing = agentRingBuffer->getBearing();
|
||||
bool agentWantsLoopback = false;
|
||||
|
||||
|
@ -218,11 +218,11 @@ void *sendBuffer(void *args)
|
|||
}
|
||||
}
|
||||
|
||||
agentList->getAgentSocket().send((*agent).getPublicSocket(), clientMix, BUFFER_LENGTH_BYTES);
|
||||
agentList->getAgentSocket().send(agent->getPublicSocket(), clientMix, BUFFER_LENGTH_BYTES);
|
||||
}
|
||||
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
AudioRingBuffer *agentBuffer = (AudioRingBuffer *)(*agent).getLinkedData();
|
||||
AudioRingBuffer *agentBuffer = (AudioRingBuffer *)agent->getLinkedData();
|
||||
if (agentBuffer->wasAddedToMix()) {
|
||||
agentBuffer->setNextOutput(agentBuffer->getNextOutput() + BUFFER_LENGTH_SAMPLES_PER_CHANNEL);
|
||||
|
||||
|
|
|
@ -132,25 +132,25 @@ int main(int argc, const char * argv[])
|
|||
agent++) {
|
||||
|
||||
if (DEBUG_TO_SELF ||
|
||||
!(*agent).matches((sockaddr *)&agentPublicAddress, (sockaddr *)&agentLocalAddress, agentType)) {
|
||||
if (memchr(SOLO_AGENT_TYPES, (*agent).getType(), sizeof(SOLO_AGENT_TYPES)) == NULL) {
|
||||
!agent->matches((sockaddr *)&agentPublicAddress, (sockaddr *)&agentLocalAddress, agentType)) {
|
||||
if (memchr(SOLO_AGENT_TYPES, agent->getType(), sizeof(SOLO_AGENT_TYPES)) == NULL) {
|
||||
// this is an agent of which there can be multiple, just add them to the packet
|
||||
// don't send avatar agents to other avatars, that will come from avatar mixer
|
||||
if (agentType != AGENT_TYPE_AVATAR || (*agent).getType() != AGENT_TYPE_AVATAR) {
|
||||
currentBufferPos = addAgentToBroadcastPacket(currentBufferPos, &(*agent));
|
||||
if (agentType != AGENT_TYPE_AVATAR || agent->getType() != AGENT_TYPE_AVATAR) {
|
||||
currentBufferPos = addAgentToBroadcastPacket(currentBufferPos, &*agent);
|
||||
}
|
||||
|
||||
} else {
|
||||
// solo agent, we need to only send newest
|
||||
if (newestSoloAgents[(*agent).getType()] == NULL ||
|
||||
newestSoloAgents[(*agent).getType()]->getFirstRecvTimeUsecs() < (*agent).getFirstRecvTimeUsecs()) {
|
||||
if (newestSoloAgents[agent->getType()] == NULL ||
|
||||
newestSoloAgents[agent->getType()]->getFirstRecvTimeUsecs() < agent->getFirstRecvTimeUsecs()) {
|
||||
// we have to set the newer solo agent to add it to the broadcast later
|
||||
newestSoloAgents[(*agent).getType()] = &(*agent);
|
||||
newestSoloAgents[agent->getType()] = &*agent;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// this is the agent, just update last receive to now
|
||||
(*agent).setLastRecvTimeUsecs(usecTimestampNow());
|
||||
agent->setLastRecvTimeUsecs(usecTimestampNow());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -310,8 +310,8 @@ void Avatar::simulate(float deltaTime) {
|
|||
agent != agentList->end();
|
||||
agent++) {
|
||||
|
||||
if ((*agent).getLinkedData() != NULL && (*agent).getType() == AGENT_TYPE_AVATAR) {
|
||||
Avatar *otherAvatar = (Avatar *)(*agent).getLinkedData();
|
||||
if (agent->getLinkedData() != NULL && agent->getType() == AGENT_TYPE_AVATAR) {
|
||||
Avatar *otherAvatar = (Avatar *)agent->getLinkedData();
|
||||
|
||||
// check for collisions with other avatars and respond
|
||||
updateAvatarCollisionDetectionAndResponse
|
||||
|
|
|
@ -913,8 +913,8 @@ void display(void)
|
|||
for(AgentList::iterator agent = agentList->begin();
|
||||
agent != agentList->end();
|
||||
agent++) {
|
||||
if ((*agent).getLinkedData() != NULL && (*agent).getType() == AGENT_TYPE_AVATAR) {
|
||||
Avatar *avatar = (Avatar *)(*agent).getLinkedData();
|
||||
if (agent->getLinkedData() != NULL && agent->getType() == AGENT_TYPE_AVATAR) {
|
||||
Avatar *avatar = (Avatar *)agent->getLinkedData();
|
||||
avatar->render(0);
|
||||
}
|
||||
}
|
||||
|
@ -986,7 +986,7 @@ void display(void)
|
|||
int totalAvatars = 0, totalServers = 0;
|
||||
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
(*agent).getType() == AGENT_TYPE_AVATAR ? totalAvatars++ : totalServers++;
|
||||
agent->getType() == AGENT_TYPE_AVATAR ? totalAvatars++ : totalServers++;
|
||||
}
|
||||
|
||||
sprintf(agents, "Servers: %d, Avatars: %d\n", totalServers, totalAvatars);
|
||||
|
@ -1499,8 +1499,8 @@ void idle(void) {
|
|||
//loop through all the other avatars and simulate them...
|
||||
AgentList * agentList = AgentList::getInstance();
|
||||
for(AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
if ((*agent).getLinkedData() != NULL) {
|
||||
Avatar *avatar = (Avatar *)(*agent).getLinkedData();
|
||||
if (agent->getLinkedData() != NULL) {
|
||||
Avatar *avatar = (Avatar *)agent->getLinkedData();
|
||||
avatar->simulate(deltaTime);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -172,7 +172,7 @@ int AgentList::updateAgentWithData(Agent *agent, unsigned char *packetData, int
|
|||
|
||||
Agent* AgentList::agentWithAddress(sockaddr *senderAddress) {
|
||||
for(AgentList::iterator agent = begin(); agent != end(); agent++) {
|
||||
if ((*agent).getActiveSocket() != NULL && socketMatch((*agent).getActiveSocket(), senderAddress)) {
|
||||
if (agent->getActiveSocket() != NULL && socketMatch(agent->getActiveSocket(), senderAddress)) {
|
||||
return &*agent;
|
||||
}
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ Agent* AgentList::agentWithAddress(sockaddr *senderAddress) {
|
|||
|
||||
Agent* AgentList::agentWithID(uint16_t agentID) {
|
||||
for(AgentList::iterator agent = begin(); agent != end(); agent++) {
|
||||
if ((*agent).getAgentId() == agentID) {
|
||||
if (agent->getAgentId() == agentID) {
|
||||
return &*agent;
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ bool AgentList::addOrUpdateAgent(sockaddr *publicSocket, sockaddr *localSocket,
|
|||
|
||||
if (publicSocket != NULL) {
|
||||
for (agent = begin(); agent != end(); agent++) {
|
||||
if ((*agent).matches(publicSocket, localSocket, agentType)) {
|
||||
if (agent->matches(publicSocket, localSocket, agentType)) {
|
||||
// we already have this agent, stop checking
|
||||
break;
|
||||
}
|
||||
|
@ -262,10 +262,10 @@ bool AgentList::addOrUpdateAgent(sockaddr *publicSocket, sockaddr *localSocket,
|
|||
return true;
|
||||
} else {
|
||||
|
||||
if ((*agent).getType() == AGENT_TYPE_AUDIO_MIXER || (*agent).getType() == AGENT_TYPE_VOXEL) {
|
||||
if (agent->getType() == AGENT_TYPE_AUDIO_MIXER || agent->getType() == AGENT_TYPE_VOXEL) {
|
||||
// until the Audio class also uses our agentList, we need to update
|
||||
// the lastRecvTimeUsecs for the audio mixer so it doesn't get killed and re-added continously
|
||||
(*agent).setLastRecvTimeUsecs(usecTimestampNow());
|
||||
agent->setLastRecvTimeUsecs(usecTimestampNow());
|
||||
}
|
||||
|
||||
// we had this agent already, do nothing for now
|
||||
|
@ -292,9 +292,9 @@ void AgentList::addAgentToList(Agent* newAgent) {
|
|||
void AgentList::broadcastToAgents(unsigned char *broadcastData, size_t dataBytes, const char* agentTypes, int numAgentTypes) {
|
||||
for(AgentList::iterator agent = begin(); agent != end(); agent++) {
|
||||
// only send to the AgentTypes we are asked to send to.
|
||||
if ((*agent).getActiveSocket() != NULL && memchr(agentTypes, (*agent).getType(), numAgentTypes)) {
|
||||
if (agent->getActiveSocket() != NULL && memchr(agentTypes, agent->getType(), numAgentTypes)) {
|
||||
// we know which socket is good for this agent, send there
|
||||
agentSocket.send((*agent).getActiveSocket(), broadcastData, dataBytes);
|
||||
agentSocket.send(agent->getActiveSocket(), broadcastData, dataBytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -303,11 +303,11 @@ void AgentList::handlePingReply(sockaddr *agentAddress) {
|
|||
for(AgentList::iterator agent = begin(); agent != end(); agent++) {
|
||||
// check both the public and local addresses for each agent to see if we find a match
|
||||
// prioritize the private address so that we prune erroneous local matches
|
||||
if (socketMatch((*agent).getPublicSocket(), agentAddress)) {
|
||||
(*agent).activatePublicSocket();
|
||||
if (socketMatch(agent->getPublicSocket(), agentAddress)) {
|
||||
agent->activatePublicSocket();
|
||||
break;
|
||||
} else if (socketMatch((*agent).getLocalSocket(), agentAddress)) {
|
||||
(*agent).activateLocalSocket();
|
||||
} else if (socketMatch(agent->getLocalSocket(), agentAddress)) {
|
||||
agent->activateLocalSocket();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -316,7 +316,7 @@ void AgentList::handlePingReply(sockaddr *agentAddress) {
|
|||
Agent* AgentList::soloAgentOfType(char agentType) {
|
||||
if (memchr(SOLO_AGENT_TYPES, agentType, sizeof(SOLO_AGENT_TYPES)) != NULL) {
|
||||
for(AgentList::iterator agent = begin(); agent != end(); agent++) {
|
||||
if ((*agent).getType() == agentType) {
|
||||
if (agent->getType() == agentType) {
|
||||
return &*agent;
|
||||
}
|
||||
}
|
||||
|
@ -338,12 +338,12 @@ void *pingUnknownAgents(void *args) {
|
|||
for(AgentList::iterator agent = agentList->begin();
|
||||
agent != agentList->end();
|
||||
agent++) {
|
||||
if ((*agent).getActiveSocket() == NULL
|
||||
&& ((*agent).getPublicSocket() != NULL && (*agent).getLocalSocket() != NULL)) {
|
||||
if (agent->getActiveSocket() == NULL
|
||||
&& (agent->getPublicSocket() != NULL && agent->getLocalSocket() != NULL)) {
|
||||
// ping both of the sockets for the agent so we can figure out
|
||||
// which socket we can use
|
||||
agentList->getAgentSocket().send((*agent).getPublicSocket(), &PACKET_HEADER_PING, 1);
|
||||
agentList->getAgentSocket().send((*agent).getLocalSocket(), &PACKET_HEADER_PING, 1);
|
||||
agentList->getAgentSocket().send(agent->getPublicSocket(), &PACKET_HEADER_PING, 1);
|
||||
agentList->getAgentSocket().send(agent->getLocalSocket(), &PACKET_HEADER_PING, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -375,13 +375,13 @@ void *removeSilentAgents(void *args) {
|
|||
|
||||
for(AgentList::iterator agent = agentList->begin(); agent != agentList->end(); ++agent) {
|
||||
|
||||
if ((checkTimeUSecs - (*agent).getLastRecvTimeUsecs()) > AGENT_SILENCE_THRESHOLD_USECS
|
||||
&& (*agent).getType() != AGENT_TYPE_VOXEL) {
|
||||
if ((checkTimeUSecs - agent->getLastRecvTimeUsecs()) > AGENT_SILENCE_THRESHOLD_USECS
|
||||
&& agent->getType() != AGENT_TYPE_VOXEL) {
|
||||
|
||||
printLog("Killing agent - ");
|
||||
Agent::printLog(*agent);
|
||||
|
||||
(*agent).setAlive(false);
|
||||
agent->setAlive(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -504,6 +504,11 @@ Agent& AgentListIterator::operator*() {
|
|||
return *agentBucket[_agentIndex % AGENTS_PER_BUCKET];
|
||||
}
|
||||
|
||||
Agent* AgentListIterator::operator->() {
|
||||
Agent** agentBucket = _agentList->_agentBuckets[_agentIndex / AGENTS_PER_BUCKET];
|
||||
return agentBucket[_agentIndex % AGENTS_PER_BUCKET];
|
||||
}
|
||||
|
||||
AgentListIterator& AgentListIterator::operator++() {
|
||||
skipDeadAndStopIncrement();
|
||||
return *this;
|
||||
|
|
|
@ -121,6 +121,7 @@ public:
|
|||
bool operator!= (const AgentListIterator& otherValue);
|
||||
|
||||
Agent& operator*();
|
||||
Agent* operator->();
|
||||
|
||||
AgentListIterator& operator++();
|
||||
AgentListIterator operator++(int);
|
||||
|
|
|
@ -127,7 +127,7 @@ void eraseVoxelTreeAndCleanupAgentVisitData() {
|
|||
|
||||
//printf("eraseVoxelTreeAndCleanupAgentVisitData() agent[%d]\n",i);
|
||||
|
||||
VoxelAgentData *agentData = (VoxelAgentData *)(*agent).getLinkedData();
|
||||
VoxelAgentData *agentData = (VoxelAgentData *)agent->getLinkedData();
|
||||
|
||||
// clean up the agent visit data
|
||||
delete agentData->rootMarkerNode;
|
||||
|
@ -155,7 +155,7 @@ void *distributeVoxelsToListeners(void *args) {
|
|||
|
||||
// enumerate the agents to send 3 packets to each
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
VoxelAgentData *agentData = (VoxelAgentData *)(*agent).getLinkedData();
|
||||
VoxelAgentData *agentData = (VoxelAgentData *)agent->getLinkedData();
|
||||
|
||||
ViewFrustum viewFrustum;
|
||||
// get position and orientation details from the camera
|
||||
|
@ -191,7 +191,7 @@ void *distributeVoxelsToListeners(void *args) {
|
|||
::viewFrustumCulling,
|
||||
stopOctal);
|
||||
|
||||
agentList->getAgentSocket().send((*agent).getActiveSocket(), voxelPacket, voxelPacketEnd - voxelPacket);
|
||||
agentList->getAgentSocket().send(agent->getActiveSocket(), voxelPacket, voxelPacketEnd - voxelPacket);
|
||||
|
||||
packetCount++;
|
||||
totalBytesSent += voxelPacketEnd - voxelPacket;
|
||||
|
|
Loading…
Reference in a new issue