The regionUUID is now being passed to the datastore calls.
parent
4af33c4da6
commit
31a81e17be
|
@ -40,8 +40,8 @@ using OpenSim.Framework.Inventory;
|
|||
using OpenSim.Framework.Types;
|
||||
using OpenSim.Framework.Utilities;
|
||||
using OpenSim.Framework.Communications.Caches;
|
||||
|
||||
using Timer=System.Timers.Timer;
|
||||
|
||||
using Timer = System.Timers.Timer;
|
||||
|
||||
namespace OpenSim.Region.ClientStack
|
||||
{
|
||||
|
@ -74,7 +74,7 @@ namespace OpenSim.Region.ClientStack
|
|||
protected IScene m_scene;
|
||||
private Dictionary<uint, ClientView> m_clientThreads;
|
||||
private AssetCache m_assetCache;
|
||||
// private InventoryCache m_inventoryCache;
|
||||
// private InventoryCache m_inventoryCache;
|
||||
private int cachedtextureserial = 0;
|
||||
protected AgentCircuitManager m_authenticateSessionsHandler;
|
||||
private Encoding enc = Encoding.ASCII;
|
||||
|
@ -84,7 +84,7 @@ namespace OpenSim.Region.ClientStack
|
|||
private int probesWithNoIngressPackets = 0;
|
||||
private int lastPacketsReceived = 0;
|
||||
|
||||
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IScene scene, AssetCache assetCache, PacketServer packServer, AgentCircuitManager authenSessions )
|
||||
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IScene scene, AssetCache assetCache, PacketServer packServer, AgentCircuitManager authenSessions)
|
||||
{
|
||||
m_moneyBalance = 1000;
|
||||
|
||||
|
@ -93,10 +93,10 @@ namespace OpenSim.Region.ClientStack
|
|||
m_assetCache = assetCache;
|
||||
|
||||
m_networkServer = packServer;
|
||||
// m_inventoryCache = inventoryCache;
|
||||
// m_inventoryCache = inventoryCache;
|
||||
m_authenticateSessionsHandler = authenSessions;
|
||||
|
||||
MainLog.Instance.Verbose( "OpenSimClient.cs - Started up new client thread to handle incoming request");
|
||||
MainLog.Instance.Verbose("OpenSimClient.cs - Started up new client thread to handle incoming request");
|
||||
cirpack = initialcirpack;
|
||||
userEP = remoteEP;
|
||||
|
||||
|
@ -121,7 +121,7 @@ namespace OpenSim.Region.ClientStack
|
|||
public void KillClient()
|
||||
{
|
||||
clientPingTimer.Stop();
|
||||
|
||||
|
||||
m_scene.RemoveClient(this.AgentId);
|
||||
|
||||
m_clientThreads.Remove(this.CircuitCode);
|
||||
|
@ -186,14 +186,15 @@ namespace OpenSim.Region.ClientStack
|
|||
|
||||
protected virtual void ClientLoop()
|
||||
{
|
||||
MainLog.Instance.Verbose( "OpenSimClient.cs:ClientLoop() - Entered loop");
|
||||
MainLog.Instance.Verbose("OpenSimClient.cs:ClientLoop() - Entered loop");
|
||||
while (true)
|
||||
{
|
||||
QueItem nextPacket = PacketQueue.Dequeue();
|
||||
if (nextPacket.Incoming)
|
||||
{
|
||||
//is a incoming packet
|
||||
if (nextPacket.Packet.Type != PacketType.AgentUpdate) {
|
||||
if (nextPacket.Packet.Type != PacketType.AgentUpdate)
|
||||
{
|
||||
packetsReceived++;
|
||||
}
|
||||
ProcessInPacket(nextPacket.Packet);
|
||||
|
@ -209,15 +210,21 @@ namespace OpenSim.Region.ClientStack
|
|||
|
||||
protected void CheckClientConnectivity(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
if (packetsReceived == lastPacketsReceived) {
|
||||
if (packetsReceived == lastPacketsReceived)
|
||||
{
|
||||
probesWithNoIngressPackets++;
|
||||
if (probesWithNoIngressPackets > 30) {
|
||||
if (probesWithNoIngressPackets > 30)
|
||||
{
|
||||
this.KillClient();
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
// this will normally trigger at least one packet (ping response)
|
||||
SendStartPingCheck(0);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Something received in the meantime - we can reset the counters
|
||||
probesWithNoIngressPackets = 0;
|
||||
lastPacketsReceived = packetsReceived;
|
||||
|
@ -232,7 +239,7 @@ namespace OpenSim.Region.ClientStack
|
|||
clientPingTimer.Elapsed += new ElapsedEventHandler(CheckClientConnectivity);
|
||||
clientPingTimer.Enabled = true;
|
||||
|
||||
MainLog.Instance.Verbose( "OpenSimClient.cs:InitNewClient() - Adding viewer agent to scene");
|
||||
MainLog.Instance.Verbose("OpenSimClient.cs:InitNewClient() - Adding viewer agent to scene");
|
||||
this.m_scene.AddNewClient(this, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,10 +47,10 @@ namespace OpenSim.Region.Interfaces
|
|||
/// <param name="dbname">The name of the database to store to (may not be applicable)</param>
|
||||
void Initialise(string filename, string dbname);
|
||||
|
||||
void StoreObject(SceneObjectGroup obj);
|
||||
void RemoveObject(LLUUID uuid);
|
||||
void StoreObject(SceneObjectGroup obj, LLUUID regionUUID);
|
||||
void RemoveObject(LLUUID uuid, LLUUID regionUUID);
|
||||
|
||||
List<SceneObjectGroup> LoadObjects();
|
||||
List<SceneObjectGroup> LoadObjects(LLUUID regionUUID);
|
||||
|
||||
void StoreTerrain(double[,] terrain);
|
||||
double[,] LoadTerrain();
|
||||
|
|
|
@ -270,7 +270,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
remoteClient.SendInventoryItemUpdate(item);
|
||||
}
|
||||
|
||||
storageManager.DataStore.RemoveObject(((SceneObjectGroup)selectedEnt).UUID);
|
||||
storageManager.DataStore.RemoveObject(((SceneObjectGroup)selectedEnt).UUID, m_regInfo.SimUUID);
|
||||
((SceneObjectGroup)selectedEnt).DeleteGroup();
|
||||
|
||||
lock (Entities)
|
||||
|
|
|
@ -180,6 +180,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
ScenePresence.LoadAnims();
|
||||
|
||||
httpListener = httpServer;
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -497,7 +499,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
public void LoadPrimsFromStorage()
|
||||
{
|
||||
MainLog.Instance.Verbose("Loading objects from datastore");
|
||||
List<SceneObjectGroup> PrimsFromDB = storageManager.DataStore.LoadObjects();
|
||||
List<SceneObjectGroup> PrimsFromDB = storageManager.DataStore.LoadObjects(this.m_regInfo.SimUUID);
|
||||
foreach (SceneObjectGroup prim in PrimsFromDB)
|
||||
{
|
||||
AddEntityFromStorage(prim);
|
||||
|
@ -707,7 +709,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
client.OnFetchInventory += commsManager.UserProfiles.HandleFetchInventory;
|
||||
client.OnAssetUploadRequest += commsManager.TransactionsManager.HandleUDPUploadRequest;
|
||||
client.OnXferReceive += commsManager.TransactionsManager.HandleXfer;
|
||||
// client.OnRequestXfer += RequestXfer;
|
||||
// client.OnRequestXfer += RequestXfer;
|
||||
|
||||
client.OnRequestAvatarProperties += RequestAvatarProperty;
|
||||
|
||||
|
@ -919,9 +921,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
if (agent.CapsPath != "")
|
||||
{
|
||||
//Console.WriteLine("new user, so creating caps handler for it");
|
||||
Caps cap =
|
||||
new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port,
|
||||
agent.CapsPath, agent.AgentID);
|
||||
Caps cap = new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, agent.CapsPath, agent.AgentID);
|
||||
Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + "/CAPS/" + agent.CapsPath + "0000/");
|
||||
cap.RegisterHandlers();
|
||||
cap.AddNewInventoryItem = this.AddInventoryItem;
|
||||
|
|
|
@ -436,12 +436,26 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
linkPart.SetParent(this);
|
||||
|
||||
//TODO: rest of parts
|
||||
foreach (SceneObjectPart part in objectGroup.Children.Values)
|
||||
{
|
||||
if (part.UUID != objectGroup.m_rootPart.UUID)
|
||||
{
|
||||
this.LinkNonRootPart(part);
|
||||
}
|
||||
}
|
||||
|
||||
m_scene.EventManager.OnBackup -= objectGroup.ProcessBackup;
|
||||
m_scene.DeleteEntity(objectGroup.UUID);
|
||||
this.ScheduleGroupForFullUpdate();
|
||||
}
|
||||
|
||||
private void LinkNonRootPart(SceneObjectPart part)
|
||||
{
|
||||
part.SetParent(this);
|
||||
part.ParentID = this.m_rootPart.LocalID;
|
||||
this.m_parts.Add(part.UUID, part);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
@ -812,7 +826,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <param name="datastore"></param>
|
||||
public void ProcessBackup(OpenSim.Region.Interfaces.IRegionDataStore datastore)
|
||||
{
|
||||
datastore.StoreObject(this);
|
||||
datastore.StoreObject(this, m_scene.RegionInfo.SimUUID);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -496,6 +496,16 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient);
|
||||
this.ControllingClient.SendViewerTime(this.m_scene.TimePhase);
|
||||
|
||||
//Please don't remove the following code (at least not yet), just leave it commented out
|
||||
//gives the user god powers, should help with debuging things in the future
|
||||
/*
|
||||
GrantGodlikePowersPacket grant = new GrantGodlikePowersPacket();
|
||||
grant.AgentData.AgentID = this.ControllingClient.AgentId;
|
||||
grant.AgentData.SessionID = this.ControllingClient.SessionId;
|
||||
grant.GrantData.GodLevel = 255;
|
||||
grant.GrantData.Token = LLUUID.Random();
|
||||
this.ControllingClient.OutPacket(grant);*/
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -43,12 +43,12 @@ namespace OpenSim.DataStore.DB4oStorage
|
|||
return;
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObjectGroup obj)
|
||||
public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID)
|
||||
{
|
||||
db.Set(obj);
|
||||
}
|
||||
|
||||
public void RemoveObject(LLUUID obj)
|
||||
public void RemoveObject(LLUUID obj, LLUUID regionUUID)
|
||||
{
|
||||
IObjectSet result = db.Query(new SceneObjectQuery(obj));
|
||||
if (result.Count > 0)
|
||||
|
@ -58,7 +58,7 @@ namespace OpenSim.DataStore.DB4oStorage
|
|||
}
|
||||
}
|
||||
|
||||
public List<SceneObjectGroup> LoadObjects()
|
||||
public List<SceneObjectGroup> LoadObjects(LLUUID regionUUID)
|
||||
{
|
||||
IObjectSet result = db.Get(typeof(SceneObjectGroup));
|
||||
List<SceneObjectGroup> retvals = new List<SceneObjectGroup>();
|
||||
|
|
|
@ -485,7 +485,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
|
|||
}
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObjectGroup obj)
|
||||
public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID)
|
||||
{
|
||||
foreach (SceneObjectPart prim in obj.Children.Values)
|
||||
{
|
||||
|
@ -498,7 +498,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
|
|||
// MainLog.Instance.Verbose("Dump of prims:", ds.GetXml());
|
||||
}
|
||||
|
||||
public void RemoveObject(LLUUID obj)
|
||||
public void RemoveObject(LLUUID obj, LLUUID regionUUID)
|
||||
{
|
||||
DataTable prims = ds.Tables["prims"];
|
||||
DataTable shapes = ds.Tables["primshapes"];
|
||||
|
@ -520,7 +520,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
|
|||
shapeDa.Update(ds, "primshapes");
|
||||
}
|
||||
|
||||
public List<SceneObjectGroup> LoadObjects()
|
||||
public List<SceneObjectGroup> LoadObjects(LLUUID regionUUID)
|
||||
{
|
||||
Dictionary<LLUUID, SceneObjectGroup> createdObjects = new Dictionary<LLUUID, SceneObjectGroup>();
|
||||
List<SceneObjectGroup> retvals = new List<SceneObjectGroup>();
|
||||
|
|
|
@ -18,17 +18,17 @@ namespace OpenSim.DataStore.NullStorage
|
|||
return;
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObjectGroup obj)
|
||||
public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RemoveObject(LLUUID obj)
|
||||
public void RemoveObject(LLUUID obj, LLUUID regionUUID)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<SceneObjectGroup> LoadObjects()
|
||||
public List<SceneObjectGroup> LoadObjects(LLUUID regionUUID)
|
||||
{
|
||||
return new List<SceneObjectGroup>();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue