mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 10:15:33 +08:00
Parcel Manager Changes:
*Added Parcel Backup Support for DB4. Other storages currently do not save *Added parcelIDList in ParcelManager to speed up parcel fetching at position *Added ParcelData.cs and ParcelData class for better storage support *Documentation for parcel added *2 Parcel Related bug fixes
This commit is contained in:
@@ -86,6 +86,17 @@ namespace OpenSim.Storage.LocalStorageBDB
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
sim.GetDb().Close();
|
||||
|
||||
@@ -28,11 +28,13 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using Db4objects.Db4o;
|
||||
using Db4objects.Db4o.Query;
|
||||
|
||||
using libsecondlife;
|
||||
using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenSim.Framework.Terrain;
|
||||
|
||||
|
||||
namespace OpenSim.Storage.LocalStorageDb4o
|
||||
{
|
||||
/// <summary>
|
||||
@@ -173,10 +175,49 @@ namespace OpenSim.Storage.LocalStorageDb4o
|
||||
db.Commit();
|
||||
}
|
||||
|
||||
public void SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Saving Parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
foreach (ParcelData parcel in result)
|
||||
{
|
||||
db.Delete(parcel);
|
||||
}
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Removing old entries complete. Adding new entries.");
|
||||
int i;
|
||||
for (i = 0; i < parcel_data.GetLength(0); i++)
|
||||
{
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Adding : " + i);
|
||||
db.Set(parcel_data[i]);
|
||||
|
||||
}
|
||||
db.Commit();
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Parcel Save Complete");
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Loading Parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Parcels exist in database.");
|
||||
foreach (ParcelData parcelData in result)
|
||||
{
|
||||
recv.ParcelFromStorage(parcelData);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: No parcels exist. Creating basic parcel.");
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Parcel Backup: Parcels Restored");
|
||||
}
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Commit();
|
||||
db.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -167,6 +167,16 @@ namespace OpenSim.Storage.LocalStorageSQLite
|
||||
|
||||
}
|
||||
|
||||
public void SaveParcels(ParcelData[] parcel_manager)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Close();
|
||||
|
||||
Reference in New Issue
Block a user