public bool RetrieveAgent (GridRegion destination, UUID agentID, bool agentIsLeaving, out AgentData agentData,
out AgentCircuitData circuitData)
{
agentData = null;
circuitData = null;
RetrieveAgentRequest request = new RetrieveAgentRequest ();
request.AgentID = agentID;
request.Destination = destination;
request.AgentIsLeaving = agentIsLeaving;
AutoResetEvent resetEvent = new AutoResetEvent (false);
OSDMap result = null;
m_syncMessagePoster.Get (destination.ServerURI, request.ToOSD (), osdresp => {
result = osdresp;
resetEvent.Set ();
});
bool success = resetEvent.WaitOne (10000) && result != null;
if (!success) return false;
RetrieveAgentResponse response = new RetrieveAgentResponse ();
response.FromOSD (result);
circuitData = response.CircuitData;
agentData = response.AgentData;
return response.Success;
}