public virtual bool Enqueue(string o, UUID agentID, ulong regionHandle) { object remoteValue = DoRemote(o, agentID, regionHandle); if (remoteValue != null || m_doRemoteOnly) { return(remoteValue == null ? false : (bool)remoteValue); } //Find the CapsService for the user and enqueue the event IRegionClientCapsService service = GetRegionClientCapsService(agentID, regionHandle); if (service == null) { return(false); } RegionClientEventQueueService eventQueueService = service.GetServiceConnectors(). OfType <RegionClientEventQueueService>().FirstOrDefault(); if (eventQueueService == null) { return(false); } OSD ev = OSDParser.DeserializeLLSDXml(o); return(eventQueueService.Enqueue(ev)); }
private RegionClientEventQueueService FindEventQueueConnector(IRegionClientCapsService service) { #if (!ISWIN) foreach (ICapsServiceConnector connector in service.GetServiceConnectors()) { RegionClientEventQueueService queueService = connector as RegionClientEventQueueService; if (queueService != null) { return(queueService); } } return(null); #else return(service.GetServiceConnectors().OfType <RegionClientEventQueueService>().FirstOrDefault()); #endif }
public virtual bool Enqueue(OSD o, UUID agentID, ulong regionHandle) { //Find the CapsService for the user and enqueue the event IRegionClientCapsService service = GetRegionClientCapsService(agentID, regionHandle); if (service == null) { return(false); } RegionClientEventQueueService eventQueueService = FindEventQueueConnector(service); if (eventQueueService == null) { return(false); } return(eventQueueService.Enqueue(o)); }