From 15423539f98d47201a819e35f80b0c30ee459556 Mon Sep 17 00:00:00 2001
From: MW
Date: Mon, 10 Sep 2007 06:45:54 +0000
Subject: hooked up sdague new sqlite asset database provider to the old asset
system. So we can still use sqlite for assets while we wait for the rest of
the new asset system to be wrote. Needs more testing, so if it causes
problems will have to swap back to db4o.
---
OpenSim/Region/Application/OpenSimMain.cs | 3 +-
.../ClientStack/ClientView.PacketHandlers.cs | 2 +-
.../ClientStack/ClientView.ProcessPackets.cs | 4 ++-
OpenSim/Region/Environment/Interfaces/IXfer.cs | 11 ++++++++
OpenSim/Region/Environment/ModuleLoader.cs | 33 +++++++++++-----------
OpenSim/Region/Environment/Modules/XferModule.cs | 4 +--
.../Region/Environment/Scenes/Scene.Inventory.cs | 4 +--
OpenSim/Region/Environment/Scenes/Scene.cs | 10 +++----
.../Region/Environment/Scenes/SceneObjectGroup.cs | 5 ++--
.../Region/Environment/Scenes/SceneObjectPart.cs | 5 ++--
OpenSim/Region/Environment/Types/UpdateQueue.cs | 33 ++++++++++++++++++++++
.../MonoSqliteDataStore.cs | 1 +
12 files changed, 82 insertions(+), 33 deletions(-)
create mode 100644 OpenSim/Region/Environment/Interfaces/IXfer.cs
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 9e0bc09..8437933 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -266,7 +266,8 @@ namespace OpenSim
{
m_httpServerPort = m_networkServersInfo.HttpListenerPort;
- LocalAssetServer assetServer = new LocalAssetServer();
+ // LocalAssetServer assetServer = new LocalAssetServer();
+ SQLAssetServer assetServer = new SQLAssetServer();
assetServer.SetServerInfo(m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
m_assetCache = new AssetCache(assetServer);
// m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
diff --git a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
index 082eec2..e2617b3 100644
--- a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
+++ b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
@@ -58,7 +58,7 @@ namespace OpenSim.Region.ClientStack
protected bool AgentTextureCached(ClientView simclient, Packet packet)
{
- // Console.WriteLine(packet.ToString());
+ //System.Console.WriteLine("texture cached: " + packet.ToString());
AgentCachedTexturePacket chechedtex = (AgentCachedTexturePacket)packet;
AgentCachedTextureResponsePacket cachedresp = new AgentCachedTextureResponsePacket();
cachedresp.AgentData.AgentID = this.AgentID;
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
index a35666d..4e2599f 100644
--- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
+++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
@@ -170,6 +170,7 @@ namespace OpenSim.Region.ClientStack
}
break;
case PacketType.AgentSetAppearance:
+ //OpenSim.Framework.Console.MainLog.Instance.Verbose("set appear", Pack.ToString());
AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
if (OnSetAppearance != null)
{
@@ -366,8 +367,9 @@ namespace OpenSim.Region.ClientStack
m_assetCache.AddAssetRequest(this, transfer);
break;
case PacketType.AssetUploadRequest:
- //Console.WriteLine("upload request " + Pack.ToString());
AssetUploadRequestPacket request = (AssetUploadRequestPacket)Pack;
+ // Console.WriteLine("upload request " + Pack.ToString());
+ // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionID).ToStringHyphenated());
if (OnAssetUploadRequest != null)
{
OnAssetUploadRequest(this, request.AssetBlock.TransactionID.Combine(this.SecureSessionID), request.AssetBlock.TransactionID, request.AssetBlock.Type, request.AssetBlock.AssetData, request.AssetBlock.StoreLocal);
diff --git a/OpenSim/Region/Environment/Interfaces/IXfer.cs b/OpenSim/Region/Environment/Interfaces/IXfer.cs
new file mode 100644
index 0000000..a19ba8d
--- /dev/null
+++ b/OpenSim/Region/Environment/Interfaces/IXfer.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.Environment.Interfaces
+{
+ public interface IXfer
+ {
+ bool AddNewFile(string fileName, byte[] data);
+ }
+}
diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs
index be3384b..ea416cb 100644
--- a/OpenSim/Region/Environment/ModuleLoader.cs
+++ b/OpenSim/Region/Environment/ModuleLoader.cs
@@ -28,27 +28,23 @@ namespace OpenSim.Region.Environment
///
public void CreateDefaultModules(Scene scene, string exceptModules)
{
- XferModule xferManager = new XferModule();
- xferManager.Initialise(scene);
- scene.AddModule(xferManager.GetName(), xferManager);
- LoadedModules.Add(xferManager);
+ IRegionModule module = new XferModule();
+ InitialiseModule(module, scene);
- ChatModule chatModule = new ChatModule();
- chatModule.Initialise(scene);
- scene.AddModule(chatModule.GetName(), chatModule);
- LoadedModules.Add(chatModule);
-
- AvatarProfilesModule avatarProfiles = new AvatarProfilesModule();
- avatarProfiles.Initialise(scene);
- scene.AddModule(avatarProfiles.GetName(), avatarProfiles);
- LoadedModules.Add(avatarProfiles);
+ module = new ChatModule();
+ InitialiseModule(module, scene);
+
+ module = new AvatarProfilesModule();
+ InitialiseModule(module, scene);
this.LoadRegionModule("OpenSim.Region.ExtensionsScriptModule.dll", "ExtensionsScriptingModule", scene);
string lslPath = System.IO.Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine.DotNetEngine.dll");
this.LoadRegionModule(lslPath, "LSLScriptingModule", scene);
+
}
+
public void LoadDefaultSharedModules(string exceptModules)
{
DynamicTextureModule dynamicModule = new DynamicTextureModule();
@@ -64,6 +60,13 @@ namespace OpenSim.Region.Environment
}
}
+ private void InitialiseModule(IRegionModule module, Scene scene)
+ {
+ module.Initialise(scene);
+ scene.AddModule(module.GetName(), module);
+ LoadedModules.Add(module);
+ }
+
///
/// Loads/initialises a Module instance that can be used by mutliple Regions
///
@@ -84,9 +87,7 @@ namespace OpenSim.Region.Environment
IRegionModule module = this.LoadModule(dllName, moduleName);
if (module != null)
{
- module.Initialise(scene);
- scene.AddModule(module.GetName(), module);
- LoadedModules.Add(module);
+ this.InitialiseModule(module, scene);
}
}
diff --git a/OpenSim/Region/Environment/Modules/XferModule.cs b/OpenSim/Region/Environment/Modules/XferModule.cs
index eec9f97..44b4d7a 100644
--- a/OpenSim/Region/Environment/Modules/XferModule.cs
+++ b/OpenSim/Region/Environment/Modules/XferModule.cs
@@ -10,7 +10,7 @@ using OpenSim.Region.Environment.Interfaces;
namespace OpenSim.Region.Environment.Modules
{
- public class XferModule : IRegionModule
+ public class XferModule : IRegionModule, IXfer
{
public Dictionary NewFiles = new Dictionary();
public Dictionary Transfers = new Dictionary();
@@ -27,7 +27,7 @@ namespace OpenSim.Region.Environment.Modules
m_scene = scene;
m_scene.EventManager.OnNewClient += NewClient;
- m_scene.RegisterAPIMethod("API_AddXferFile", new ModuleAPIMethod2(this.AddNewFile));
+ m_scene.RegisterModuleInterface(this);
}
public void PostInitialise()
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index e5ab41f..70b34cf 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -201,9 +201,9 @@ namespace OpenSim.Region.Environment.Scenes
bool fileChange = ((SceneObjectGroup)ent).GetPartInventoryFileName(remoteClient, primLocalID);
if (fileChange)
{
- if (this.AddXferFile != null)
+ if (this.XferManager != null)
{
- ((SceneObjectGroup)ent).RequestInventoryFile(primLocalID, AddXferFile);
+ ((SceneObjectGroup)ent).RequestInventoryFile(primLocalID, XferManager);
}
}
break;
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 1af41be..d0edcda 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -91,10 +91,9 @@ namespace OpenSim.Region.Environment.Scenes
public Dictionary ModuleInterfaces = new Dictionary();
protected Dictionary ModuleAPIMethods = new Dictionary();
- //API method Delegates and interfaces
+ //API module interfaces
- // this most likely shouldn't be handled as a API method like this, but doing it for testing purposes
- public ModuleAPIMethod2 AddXferFile = null;
+ public IXfer XferManager;
private IHttpRequests m_httpRequestModule = null;
private ISimChat m_simChatModule = null;
@@ -206,8 +205,7 @@ namespace OpenSim.Region.Environment.Scenes
m_simChatModule = this.RequestModuleInterface();
m_httpRequestModule = this.RequestModuleInterface();
- //should change so it uses the module interface functions
- AddXferFile = (ModuleAPIMethod2)this.RequestAPIMethod("API_AddXferFile");
+ XferManager = this.RequestModuleInterface();
}
#region Script Handling Methods
@@ -605,7 +603,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (!Entities.ContainsKey(sceneObject.UUID))
{
- QuadTree.AddObject(sceneObject);
+ // QuadTree.AddObject(sceneObject);
Entities.Add(sceneObject.UUID, sceneObject);
}
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 45d975c..eff622a 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -11,6 +11,7 @@ using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Region.Physics.Manager;
using OpenSim.Framework.Data;
+using OpenSim.Region.Environment.Interfaces;
namespace OpenSim.Region.Environment.Scenes
{
@@ -676,12 +677,12 @@ namespace OpenSim.Region.Environment.Scenes
return false;
}
- public string RequestInventoryFile(uint localID, ModuleAPIMethod2 addXferFile)
+ public string RequestInventoryFile(uint localID, IXfer xferManager)
{
SceneObjectPart part = this.GetChildPart(localID);
if (part != null)
{
- part.RequestInventoryFile(addXferFile);
+ part.RequestInventoryFile(xferManager);
}
return "";
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 9e207c8..2122a4f 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -12,6 +12,7 @@ using OpenSim.Framework.Types;
using OpenSim.Region.Environment.Scenes.Scripting;
using OpenSim.Framework.Utilities;
using OpenSim.Region.Physics.Manager;
+using OpenSim.Region.Environment.Interfaces;
namespace OpenSim.Region.Environment.Scenes
{
@@ -494,7 +495,7 @@ namespace OpenSim.Region.Environment.Scenes
return false;
}
- public string RequestInventoryFile(ModuleAPIMethod2 addXferFile)
+ public string RequestInventoryFile(IXfer xferManager)
{
byte[] fileData = new byte[0];
InventoryStringBuilder invString = new InventoryStringBuilder(m_folderID, this.UUID);
@@ -528,7 +529,7 @@ namespace OpenSim.Region.Environment.Scenes
fileData = Helpers.StringToField(invString.BuildString);
if (fileData.Length > 2)
{
- addXferFile(m_inventoryFileName, fileData);
+ xferManager.AddNewFile(m_inventoryFileName, fileData);
}
return "";
}
diff --git a/OpenSim/Region/Environment/Types/UpdateQueue.cs b/OpenSim/Region/Environment/Types/UpdateQueue.cs
index d7eb6ee..dab4258 100644
--- a/OpenSim/Region/Environment/Types/UpdateQueue.cs
+++ b/OpenSim/Region/Environment/Types/UpdateQueue.cs
@@ -12,10 +12,43 @@ namespace OpenSim.Region.Environment.Types
private List m_ids;
+ public int Count
+ {
+ get { return m_queue.Count; }
+ }
+
public UpdateQueue()
{
m_queue = new Queue();
m_ids = new List();
}
+
+ public void Enqueue(SceneObjectPart part)
+ {
+ lock (m_ids)
+ {
+ if (!m_ids.Contains(part.UUID))
+ {
+ m_ids.Add(part.UUID);
+ m_queue.Enqueue(part);
+ }
+ }
+ }
+
+ public SceneObjectPart Dequeue()
+ {
+ SceneObjectPart part = null;
+ if (m_queue.Count > 0)
+ {
+ part = m_queue.Dequeue();
+ lock (m_ids)
+ {
+ m_ids.Remove(part.UUID);
+ }
+ }
+
+ return part;
+ }
+
}
}
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
index 5f7360e..65b03ad 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -187,6 +187,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
return retvals;
}
+
public void StoreTerrain(double[,] ter)
{
--
cgit v1.1