public void RegionLoaded(Scene s) { if (!m_Enabled) { return; } lock (m_loadLock) { if (m_assetService == null && m_NumberScenes == 0) { m_assetService = s.RequestModuleInterface <IAssetService>(); // We'll reuse the same handler for all requests. m_getAssetHandler = new GetAssetsHandler(m_assetService); } if (m_assetService == null) { m_Enabled = false; return; } if (m_UserManagement == null) { m_UserManagement = s.RequestModuleInterface <IUserManagement>(); } s.EventManager.OnRegisterCaps += RegisterCaps; s.EventManager.OnDeregisterCaps += DeregisterCaps; m_NumberScenes++; if (m_workerThreads == null) { m_workerThreads = new Thread[3]; for (uint i = 0; i < 3; i++) { m_workerThreads[i] = WorkManager.StartThread(DoAssetRequests, String.Format("GetCapsAssetWorker{0}", i), ThreadPriority.Normal, true, false, null, int.MaxValue); } } } }
public void RegisterCaps(UUID agentID, Caps caps) { GetAssetsHandler assethandler = null; GetAssetsHandler reuse_assethandler = null; foreach (CapsData data in m_CapsData) { if (data.Url == "localhost") { if (string.IsNullOrEmpty(data.RedirectUrl)) { if (reuse_assethandler == null) { reuse_assethandler = new GetAssetsHandler("/CAPS/" + UUID.Random() + "/", m_assetService, "GetAsset", agentID.ToString(), null); } assethandler = reuse_assethandler; } else { assethandler = new GetAssetsHandler("/CAPS/" + UUID.Random() + "/", m_assetService, data.Name, agentID.ToString(), data.RedirectUrl); } caps.RegisterHandler( data.Name, assethandler); } else { IExternalCapsModule handler = m_scene.RequestModuleInterface <IExternalCapsModule>(); if (handler != null) { handler.RegisterExternalUserCapsHandler(agentID, caps, data.Name, data.Url); } else { caps.RegisterHandler(data.Name, data.Url); } } } }
public void RegionLoaded(Scene s) { if (!m_Enabled) { return; } lock (m_loadLock) { if (m_assetService == null) { m_assetService = s.RequestModuleInterface <IAssetService>(); // We'll reuse the same handler for all requests. m_getAssetHandler = new GetAssetsHandler(m_assetService); } if (m_assetService == null) { m_Enabled = false; return; } if (m_UserManagement == null) { m_UserManagement = s.RequestModuleInterface <IUserManagement>(); } s.EventManager.OnRegisterCaps += RegisterCaps; m_NumberScenes++; if (m_workerpool == null) { m_workerpool = new ObjectJobEngine(DoAssetRequests, "GetCapsAssetWorker", 1000, 3); } } }