private bool EnqueueWithPriority(OSD ev, UUID avatarID, bool highPriority)
        {
            EventQueueGetRequestHandler queue = null;

            //m_log.DebugFormat("[EVENTQUEUE]: Enqueuing event for {0} in region {1}", avatarID, m_scene.RegionInfo.RegionName);
            lock (queues)
            {
                if (queues.TryGetValue(avatarID, out queue) != true)
                {
                    m_log.ErrorFormat("[EVENTQUEUE]: Could not enqueue request for {0}, queue for avatar not found", avatarID);
                    return(false);
                }
            }

            queue.Enqueue(ev, highPriority);
            return(true);
        }
        public void OnRegisterCaps(UUID agentID, Caps caps)
        {
            m_log.DebugFormat("[EVENTQUEUE]: Register caps for client {0} in region {1}", agentID, m_Scene.RegionInfo.RegionName);

            lock (queues)
            {
                EventQueueGetRequestHandler queue;
                if (queues.TryGetValue(agentID, out queue) == true)
                {
                    // shouldn't happen
                    m_log.ErrorFormat("[EVENTQUEUE]: OnRegisterCaps and an EQ already exists for client {0} in region {1}!", agentID, m_Scene.RegionInfo.RegionName);
                }
                else
                {
                    string capsUrl = "/CAPS/EQG/" + UUID.Random().ToString() + "/";
                    queue = new EventQueueGetRequestHandler("POST", capsUrl, agentID, caps, DebugLevel);
                    queues.Add(agentID, queue);
                }

                caps.RegisterHandler("EventQueueGet", queue);
            }
        }
예제 #3
0
        public void OnRegisterCaps(UUID agentID, Caps caps)
        {
            m_log.DebugFormat("[EVENTQUEUE]: Register caps for client {0} in region {1}", agentID, m_Scene.RegionInfo.RegionName);

            lock (queues)
            {
                EventQueueGetRequestHandler queue;
                if (queues.TryGetValue(agentID, out queue) == true)
                {
                    // shouldn't happen
                    m_log.ErrorFormat("[EVENTQUEUE]: OnRegisterCaps and an EQ already exists for client {0} in region {1}!", agentID, m_Scene.RegionInfo.RegionName);
                }
                else
                {
                    string capsUrl = "/CAPS/EQG/" + UUID.Random().ToString() + "/";
                    queue = new EventQueueGetRequestHandler("POST", capsUrl, agentID, caps, DebugLevel);
                    queues.Add(agentID, queue);
                }

                caps.RegisterHandler("EventQueueGet", queue);
            }
        }