A few minor tweaks here and there in XInventoryService.
parent
6eaff18961
commit
953fe46811
|
@ -40,9 +40,9 @@ namespace OpenSim.Services.InventoryService
|
||||||
{
|
{
|
||||||
public class XInventoryService : ServiceBase, IInventoryService
|
public class XInventoryService : ServiceBase, IInventoryService
|
||||||
{
|
{
|
||||||
// private static readonly ILog m_log =
|
private static readonly ILog m_log =
|
||||||
// LogManager.GetLogger(
|
LogManager.GetLogger(
|
||||||
// MethodBase.GetCurrentMethod().DeclaringType);
|
MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
protected IXInventoryData m_Database;
|
protected IXInventoryData m_Database;
|
||||||
protected bool m_AllowDelete = true;
|
protected bool m_AllowDelete = true;
|
||||||
|
@ -113,7 +113,7 @@ namespace OpenSim.Services.InventoryService
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
XInventoryFolder[] sysFolders = GetSystemFolders(principalID);
|
XInventoryFolder[] sysFolders = GetSystemFolders(principalID, rootFolder.ID);
|
||||||
|
|
||||||
if (!Array.Exists(sysFolders, delegate (XInventoryFolder f) { if (f.type == (int)AssetType.Animation) return true; return false; }))
|
if (!Array.Exists(sysFolders, delegate (XInventoryFolder f) { if (f.type == (int)AssetType.Animation) return true; return false; }))
|
||||||
CreateFolder(principalID, rootFolder.ID, (int)AssetType.Animation, "Animations");
|
CreateFolder(principalID, rootFolder.ID, (int)AssetType.Animation, "Animations");
|
||||||
|
@ -163,13 +163,13 @@ namespace OpenSim.Services.InventoryService
|
||||||
return newFolder;
|
return newFolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual XInventoryFolder[] GetSystemFolders(UUID principalID)
|
protected virtual XInventoryFolder[] GetSystemFolders(UUID principalID, UUID rootID)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat("[XINVENTORY SERVICE]: Getting system folders for {0}", principalID);
|
// m_log.DebugFormat("[XINVENTORY SERVICE]: Getting system folders for {0}", principalID);
|
||||||
|
|
||||||
XInventoryFolder[] allFolders = m_Database.GetFolders(
|
XInventoryFolder[] allFolders = m_Database.GetFolders(
|
||||||
new string[] { "agentID" },
|
new string[] { "agentID", "parentFolderID" },
|
||||||
new string[] { principalID.ToString() });
|
new string[] { principalID.ToString(), rootID.ToString() });
|
||||||
|
|
||||||
XInventoryFolder[] sysFolders = Array.FindAll(
|
XInventoryFolder[] sysFolders = Array.FindAll(
|
||||||
allFolders,
|
allFolders,
|
||||||
|
@ -301,16 +301,26 @@ namespace OpenSim.Services.InventoryService
|
||||||
|
|
||||||
public virtual bool AddFolder(InventoryFolderBase folder)
|
public virtual bool AddFolder(InventoryFolderBase folder)
|
||||||
{
|
{
|
||||||
|
//m_log.DebugFormat("[XINVENTORY]: Add folder {0} type {1} in parent {2}", folder.Name, folder.Type, folder.ParentID);
|
||||||
InventoryFolderBase check = GetFolder(folder);
|
InventoryFolderBase check = GetFolder(folder);
|
||||||
if (check != null)
|
if (check != null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
|
if (folder.Type == (short)AssetType.Folder || folder.Type == (short)AssetType.Unknown ||
|
||||||
return m_Database.StoreFolder(xFolder);
|
GetFolderForType(folder.Owner, (AssetType)(folder.Type)) == null)
|
||||||
|
{
|
||||||
|
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
|
||||||
|
return m_Database.StoreFolder(xFolder);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_log.DebugFormat("[XINVENTORY]: Folder {0} of type {1} already exists", folder.Name, folder.Type);
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool UpdateFolder(InventoryFolderBase folder)
|
public virtual bool UpdateFolder(InventoryFolderBase folder)
|
||||||
{
|
{
|
||||||
|
//m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID);
|
||||||
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
|
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
|
||||||
InventoryFolderBase check = GetFolder(folder);
|
InventoryFolderBase check = GetFolder(folder);
|
||||||
if (check == null)
|
if (check == null)
|
||||||
|
@ -319,9 +329,13 @@ namespace OpenSim.Services.InventoryService
|
||||||
if (check.Type != -1 || xFolder.type != -1)
|
if (check.Type != -1 || xFolder.type != -1)
|
||||||
{
|
{
|
||||||
if (xFolder.version < check.Version)
|
if (xFolder.version < check.Version)
|
||||||
|
{
|
||||||
|
//m_log.DebugFormat("[XINVENTORY]: {0} < {1} can't do", xFolder.version, check.Version);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
check.Version = (ushort)xFolder.version;
|
check.Version = (ushort)xFolder.version;
|
||||||
xFolder = ConvertFromOpenSim(check);
|
xFolder = ConvertFromOpenSim(check);
|
||||||
|
//m_log.DebugFormat("[XINVENTORY]: Storing {0} {1} {2}", xFolder.folderName, xFolder.version, xFolder.type);
|
||||||
return m_Database.StoreFolder(xFolder);
|
return m_Database.StoreFolder(xFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,13 +513,30 @@ namespace OpenSim.Services.InventoryService
|
||||||
return m_Database.GetAssetPermissions(principalID, assetID);
|
return m_Database.GetAssetPermissions(principalID, assetID);
|
||||||
}
|
}
|
||||||
|
|
||||||
// CM never needed those. Left unimplemented.
|
public virtual InventoryCollection GetUserInventory(UUID userID)
|
||||||
// Obsolete in core
|
|
||||||
//
|
|
||||||
public InventoryCollection GetUserInventory(UUID userID)
|
|
||||||
{
|
{
|
||||||
return null;
|
InventoryCollection userInventory = new InventoryCollection();
|
||||||
|
userInventory.UserID = userID;
|
||||||
|
userInventory.Folders = new List<InventoryFolderBase>();
|
||||||
|
userInventory.Items = new List<InventoryItemBase>();
|
||||||
|
|
||||||
|
List<InventoryFolderBase> skel = GetInventorySkeleton(userID);
|
||||||
|
if (skel != null)
|
||||||
|
{
|
||||||
|
foreach (InventoryFolderBase f in skel)
|
||||||
|
{
|
||||||
|
InventoryCollection c = GetFolderContent(userID, f.ID);
|
||||||
|
if (c != null && c.Items != null && c.Items.Count > 0)
|
||||||
|
userInventory.Items.AddRange(c.Items);
|
||||||
|
if (c != null && c.Folders != null && c.Folders.Count > 0)
|
||||||
|
userInventory.Folders.AddRange(c.Folders);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_log.DebugFormat("[XINVENTORY SERVICE]: GetUserInventory for user {0} returning {1} folders and {2} items",
|
||||||
|
userID, userInventory.Folders.Count, userInventory.Items.Count);
|
||||||
|
return userInventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetUserInventory(UUID userID, InventoryReceiptCallback callback)
|
public void GetUserInventory(UUID userID, InventoryReceiptCallback callback)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -525,6 +556,9 @@ namespace OpenSim.Services.InventoryService
|
||||||
|
|
||||||
newFolder.ParentID = folder.parentFolderID;
|
newFolder.ParentID = folder.parentFolderID;
|
||||||
newFolder.Type = (short)folder.type;
|
newFolder.Type = (short)folder.type;
|
||||||
|
// Viewer can't understand anything that's not in it's LLFolderType enum
|
||||||
|
if (newFolder.Type == 100)
|
||||||
|
newFolder.Type = -1;
|
||||||
newFolder.Version = (ushort)folder.version;
|
newFolder.Version = (ushort)folder.version;
|
||||||
newFolder.Name = folder.folderName;
|
newFolder.Name = folder.folderName;
|
||||||
newFolder.Owner = folder.agentID;
|
newFolder.Owner = folder.agentID;
|
||||||
|
|
Loading…
Reference in New Issue