예제 #1
0
        public virtual bool Enqueue(string o, UUID agentID, UUID regionID)
        {
            if (m_doRemoteCalls && m_doRemoteOnly)
            {
                Util.FireAndForget((none) => {
                    EnqueueInternal(o, agentID, regionID);
                });
                return(true);
            }

            //Find the CapsService for the user and enqueue the event
            IRegionClientCapsService service = GetRegionClientCapsService(agentID, regionID);

            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));
        }
        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));
        }
예제 #3
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
        }
예제 #4
0
 private RegionClientEventQueueService FindEventQueueConnector(IRegionClientCapsService service)
 {
     foreach (ICapsServiceConnector connector in service.GetServiceConnectors())
     {
         if (connector is RegionClientEventQueueService)
         {
             return((RegionClientEventQueueService)connector);
         }
     }
     return(null);
 }
예제 #5
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
        }
예제 #6
0
 private RegionClientEventQueueService FindEventQueueConnector(IRegionClientCapsService service)
 {
     foreach (ICapsServiceConnector connector in service.GetServiceConnectors())
     {
         if (connector is RegionClientEventQueueService)
         {
             return (RegionClientEventQueueService)connector;
         }
     }
     return null;
 }