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));
        }
Пример #2
0
        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
        }
Пример #3
0
        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));
        }