This commit is contained in:
Diva Canto
2011-05-02 08:48:55 -07:00
parent 2d21052fa3
commit 10180760b7
8 changed files with 95 additions and 35 deletions

View File

@@ -78,7 +78,7 @@ namespace OpenSim.Region.ClientStack.Linden
public GetClientDelegate GetClient = null;
private bool m_persistBakedTextures = false;
private IAssetService m_assetCache;
private IAssetService m_assetService;
private bool m_dumpAssetsToFile;
private string m_regionName;
private object m_fetchLock = new Object();
@@ -95,6 +95,9 @@ namespace OpenSim.Region.ClientStack.Linden
m_persistBakedTextures = sconfig.GetBoolean("PersistBakedTextures", m_persistBakedTextures);
}
m_assetService = m_Scene.AssetService;
m_regionName = m_Scene.RegionInfo.RegionName;
RegisterHandlers();
AddNewInventoryItem = m_Scene.AddUploadedInventoryItem;
@@ -347,7 +350,7 @@ namespace OpenSim.Region.ClientStack.Linden
asset.Data = data;
asset.Temporary = true;
asset.Local = !m_persistBakedTextures; // Local assets aren't persisted, non-local are
m_assetCache.Store(asset);
m_assetService.Store(asset);
}
/// <summary>
@@ -476,8 +479,8 @@ namespace OpenSim.Region.ClientStack.Linden
asset.Data = data;
if (AddNewAsset != null)
AddNewAsset(asset);
else if (m_assetCache != null)
m_assetCache.Store(asset);
else if (m_assetService != null)
m_assetService.Store(asset);
InventoryItemBase item = new InventoryItemBase();
item.Owner = m_HostCapsObj.AgentID;

View File

@@ -32,6 +32,7 @@ using System.Reflection;
using log4net;
using Nini.Config;
using OpenMetaverse;
using Mono.Addins;
using OpenSim.Framework;
using OpenSim.Region.Framework;
@@ -39,9 +40,12 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using Caps = OpenSim.Framework.Capabilities.Caps;
[assembly: Addin("LindenCaps", "0.1")]
[assembly: AddinDependency("OpenSim", "0.5")]
namespace OpenSim.Region.ClientStack.Linden
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
public class BunchOfCapsModule : INonSharedRegionModule
{
private static readonly ILog m_log =

View File

@@ -54,7 +54,7 @@ namespace OpenSim.Region.ClientStack.Linden
public OSDMap body;
}
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
//[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
public class EventQueueGetModule : IEventQueue, IRegionModule
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@@ -52,13 +52,15 @@ namespace OpenSim.Region.ClientStack.Linden
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
public class GetTextureModule : ISharedRegionModule
public class GetTextureModule : INonSharedRegionModule
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene;
private IAssetService m_assetService;
private bool m_Enabled = false;
// TODO: Change this to a config option
const string REDIRECT_URL = null;
@@ -72,11 +74,18 @@ namespace OpenSim.Region.ClientStack.Linden
if (config == null)
return;
m_URL = config.GetString("Cap_GetTexture", "localhost");
m_URL = config.GetString("Cap_GetTexture", string.Empty);
// Cap doesn't exist
if (m_URL != string.Empty)
m_Enabled = true;
}
public void AddRegion(Scene s)
{
if (!m_Enabled)
return;
m_scene = s;
}
public void RemoveRegion(Scene s)
@@ -85,12 +94,15 @@ namespace OpenSim.Region.ClientStack.Linden
public void RegionLoaded(Scene s)
{
if (!m_Enabled)
return;
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
m_scene.EventManager.OnRegisterCaps += RegisterCaps;
}
public void PostInitialise()
{
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
m_scene.EventManager.OnRegisterCaps += RegisterCaps;
}
public void Close() { }
@@ -108,12 +120,17 @@ namespace OpenSim.Region.ClientStack.Linden
{
UUID capID = UUID.Random();
// m_log.InfoFormat("[GETTEXTURE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName);
//caps.RegisterHandler("GetTexture", new StreamHandler("GET", "/CAPS/" + capID, ProcessGetTexture));
if (m_URL == "localhost")
{
m_log.InfoFormat("[GETTEXTURE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName);
caps.RegisterHandler("GetTexture", new GetTextureHandler("/CAPS/" + capID + "/", m_assetService));
}
else
{
m_log.InfoFormat("[GETTEXTURE]: {0} in region {1}", m_URL, m_scene.RegionInfo.RegionName);
caps.RegisterHandler("GetTexture", m_URL);
}
}
}