Establish Util.ToRawUuidString to get LLUUIDs in unhyphenated form
Apply method to UUID crud in SqliteInventoryStore as an initial test This appears now to successfully recover inventory upon login This will almost certainly only work on standaloneafrisby
parent
0e6915ae48
commit
dd1e2c8eb9
|
@ -106,13 +106,13 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
|
|
||||||
private void fillItemRow(DataRow row, InventoryItemBase item)
|
private void fillItemRow(DataRow row, InventoryItemBase item)
|
||||||
{
|
{
|
||||||
row["UUID"] = item.inventoryID;
|
row["UUID"] = Util.ToRawUuidString(item.inventoryID);
|
||||||
row["assetID"] = item.assetID;
|
row["assetID"] = Util.ToRawUuidString(item.assetID);
|
||||||
row["assetType"] = item.assetType;
|
row["assetType"] = item.assetType;
|
||||||
row["invType"] = item.invType;
|
row["invType"] = item.invType;
|
||||||
row["parentFolderID"] = item.parentFolderID;
|
row["parentFolderID"] = Util.ToRawUuidString(item.parentFolderID);
|
||||||
row["avatarID"] = item.avatarID;
|
row["avatarID"] = Util.ToRawUuidString(item.avatarID);
|
||||||
row["creatorsID"] = item.creatorsID;
|
row["creatorsID"] = Util.ToRawUuidString(item.creatorsID);
|
||||||
row["inventoryName"] = item.inventoryName;
|
row["inventoryName"] = item.inventoryName;
|
||||||
row["inventoryDescription"] = item.inventoryDescription;
|
row["inventoryDescription"] = item.inventoryDescription;
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
||||||
|
|
||||||
DataRow inventoryRow = inventoryFolderTable.Rows.Find(folder.folderID);
|
DataRow inventoryRow = inventoryFolderTable.Rows.Find(Util.ToRawUuidString(folder.folderID));
|
||||||
if (inventoryRow == null)
|
if (inventoryRow == null)
|
||||||
{
|
{
|
||||||
inventoryRow = inventoryFolderTable.NewRow();
|
inventoryRow = inventoryFolderTable.NewRow();
|
||||||
|
@ -145,7 +145,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
||||||
|
|
||||||
DataRow inventoryRow = inventoryFolderTable.Rows.Find(folder.folderID);
|
DataRow inventoryRow = inventoryFolderTable.Rows.Find(Util.ToRawUuidString(folder.folderID));
|
||||||
if (inventoryRow == null)
|
if (inventoryRow == null)
|
||||||
{
|
{
|
||||||
inventoryRow = inventoryFolderTable.NewRow();
|
inventoryRow = inventoryFolderTable.NewRow();
|
||||||
|
@ -163,7 +163,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
||||||
|
|
||||||
DataRow inventoryRow = inventoryItemTable.Rows.Find(item.inventoryID);
|
DataRow inventoryRow = inventoryItemTable.Rows.Find(Util.ToRawUuidString(item.inventoryID));
|
||||||
if (inventoryRow == null)
|
if (inventoryRow == null)
|
||||||
{
|
{
|
||||||
inventoryRow = inventoryItemTable.NewRow();
|
inventoryRow = inventoryItemTable.NewRow();
|
||||||
|
@ -223,7 +223,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
List<InventoryItemBase> retval = new List<InventoryItemBase>();
|
List<InventoryItemBase> retval = new List<InventoryItemBase>();
|
||||||
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
||||||
string selectExp = "parentFolderID = '" + folderID.ToString() + "'";
|
string selectExp = "parentFolderID = '" + Util.ToRawUuidString(folderID) + "'";
|
||||||
DataRow[] rows = inventoryItemTable.Select(selectExp);
|
DataRow[] rows = inventoryItemTable.Select(selectExp);
|
||||||
foreach (DataRow row in rows)
|
foreach (DataRow row in rows)
|
||||||
{
|
{
|
||||||
|
@ -248,7 +248,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
||||||
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
||||||
string selectExp = "agentID = '" + user.ToString() + "' AND parentID = '" + LLUUID.Zero.ToString() + "'";
|
string selectExp = "agentID = '" + Util.ToRawUuidString(user) + "' AND parentID = '" + Util.ToRawUuidString(LLUUID.Zero) + "'";
|
||||||
DataRow[] rows = inventoryFolderTable.Select(selectExp);
|
DataRow[] rows = inventoryFolderTable.Select(selectExp);
|
||||||
foreach (DataRow row in rows)
|
foreach (DataRow row in rows)
|
||||||
{
|
{
|
||||||
|
@ -276,7 +276,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
protected void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID)
|
protected void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID)
|
||||||
{
|
{
|
||||||
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
||||||
string selectExp = "parentID = '" + parentID.ToString() + "'";
|
string selectExp = "parentID = '" + Util.ToRawUuidString(parentID) + "'";
|
||||||
DataRow[] rows = inventoryFolderTable.Select(selectExp);
|
DataRow[] rows = inventoryFolderTable.Select(selectExp);
|
||||||
foreach (DataRow row in rows)
|
foreach (DataRow row in rows)
|
||||||
{
|
{
|
||||||
|
@ -292,7 +292,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID)
|
public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID)
|
||||||
{
|
{
|
||||||
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
||||||
getInventoryFolders(ref folders, parentID);
|
getInventoryFolders(ref folders, Util.ToRawUuidString(parentID));
|
||||||
return folders;
|
return folders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,10 +304,10 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
protected List<InventoryFolderBase> getFolderHierarchy(LLUUID parentID)
|
protected List<InventoryFolderBase> getFolderHierarchy(LLUUID parentID)
|
||||||
{
|
{
|
||||||
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
|
||||||
getInventoryFolders(ref folders, parentID);
|
getInventoryFolders(ref folders, Util.ToRawUuidString(parentID));
|
||||||
|
|
||||||
for (int i = 0; i < folders.Count; i++)
|
for (int i = 0; i < folders.Count; i++)
|
||||||
getInventoryFolders(ref folders, folders[i].folderID);
|
getInventoryFolders(ref folders, Util.ToRawUuidString(folders[i].folderID));
|
||||||
|
|
||||||
return folders;
|
return folders;
|
||||||
}
|
}
|
||||||
|
@ -319,7 +319,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
/// <returns>A class containing item information</returns>
|
/// <returns>A class containing item information</returns>
|
||||||
public InventoryItemBase getInventoryItem(LLUUID item)
|
public InventoryItemBase getInventoryItem(LLUUID item)
|
||||||
{
|
{
|
||||||
DataRow row = ds.Tables["inventoryitems"].Rows.Find(item);
|
DataRow row = ds.Tables["inventoryitems"].Rows.Find(Util.ToRawUuidString(item));
|
||||||
if (row != null)
|
if (row != null)
|
||||||
{
|
{
|
||||||
return buildItem(row);
|
return buildItem(row);
|
||||||
|
@ -343,7 +343,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
// that you don't get to see system textures why creating
|
// that you don't get to see system textures why creating
|
||||||
// clothes and the like. :(
|
// clothes and the like. :(
|
||||||
|
|
||||||
DataRow row = ds.Tables["inventoryfolders"].Rows.Find(folder);
|
DataRow row = ds.Tables["inventoryfolders"].Rows.Find(Util.ToRawUuidString(folder));
|
||||||
if (row != null)
|
if (row != null)
|
||||||
{
|
{
|
||||||
return buildFolder(row);
|
return buildFolder(row);
|
||||||
|
@ -380,7 +380,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
{
|
{
|
||||||
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
|
||||||
|
|
||||||
DataRow inventoryRow = inventoryItemTable.Rows.Find(itemID);
|
DataRow inventoryRow = inventoryItemTable.Rows.Find(Util.ToRawUuidString(itemID));
|
||||||
if (inventoryRow != null)
|
if (inventoryRow != null)
|
||||||
{
|
{
|
||||||
inventoryRow.Delete();
|
inventoryRow.Delete();
|
||||||
|
@ -397,10 +397,10 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
//!TODO, this is horribly inefficient, but I don't want to ruin the overall structure of this implementation
|
//!TODO, this is horribly inefficient, but I don't want to ruin the overall structure of this implementation
|
||||||
private void deleteItemsInFolder(LLUUID folderId)
|
private void deleteItemsInFolder(LLUUID folderId)
|
||||||
{
|
{
|
||||||
List<InventoryItemBase> items = getInventoryInFolder(folderId);
|
List<InventoryItemBase> items = getInventoryInFolder(Util.ToRawUuidString(folderId));
|
||||||
|
|
||||||
foreach (InventoryItemBase i in items)
|
foreach (InventoryItemBase i in items)
|
||||||
deleteInventoryItem(i.inventoryID);
|
deleteInventoryItem(Util.ToRawUuidString(i.inventoryID));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -439,7 +439,7 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
/// <param name="item"></param>
|
/// <param name="item"></param>
|
||||||
public void deleteInventoryFolder(LLUUID folderID)
|
public void deleteInventoryFolder(LLUUID folderID)
|
||||||
{
|
{
|
||||||
List<InventoryFolderBase> subFolders = getFolderHierarchy(folderID);
|
List<InventoryFolderBase> subFolders = getFolderHierarchy(Util.ToRawUuidString(folderID));
|
||||||
|
|
||||||
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
|
||||||
DataRow inventoryRow;
|
DataRow inventoryRow;
|
||||||
|
@ -447,19 +447,19 @@ namespace OpenSim.Framework.Data.SQLite
|
||||||
//Delete all sub-folders
|
//Delete all sub-folders
|
||||||
foreach (InventoryFolderBase f in subFolders)
|
foreach (InventoryFolderBase f in subFolders)
|
||||||
{
|
{
|
||||||
inventoryRow = inventoryFolderTable.Rows.Find(f.folderID);
|
inventoryRow = inventoryFolderTable.Rows.Find(Util.ToRawUuidString(f.folderID));
|
||||||
if (inventoryRow != null)
|
if (inventoryRow != null)
|
||||||
{
|
{
|
||||||
deleteItemsInFolder(f.folderID);
|
deleteItemsInFolder(Util.ToRawUuidString(f.folderID));
|
||||||
inventoryRow.Delete();
|
inventoryRow.Delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete the actual row
|
//Delete the actual row
|
||||||
inventoryRow = inventoryFolderTable.Rows.Find(folderID);
|
inventoryRow = inventoryFolderTable.Rows.Find(Util.ToRawUuidString(folderID));
|
||||||
if (inventoryRow != null)
|
if (inventoryRow != null)
|
||||||
{
|
{
|
||||||
deleteItemsInFolder(folderID);
|
deleteItemsInFolder(Util.ToRawUuidString(folderID));
|
||||||
inventoryRow.Delete();
|
inventoryRow.Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -383,5 +383,15 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
return Math.Min(Math.Max(x, min), max);
|
return Math.Min(Math.Max(x, min), max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert an LLUUID to a raw uuid string. This is a string without hyphens.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="lluuid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static String ToRawUuidString(LLUUID lluuid)
|
||||||
|
{
|
||||||
|
return lluuid.UUID.ToString("n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue