Implemented all Inventory frontend handlers.
This doesn't mean they all work as expected, though. More changes to come as testing unveils bugs.0.6.4-rc1
parent
293e70a666
commit
56158443b3
|
@ -99,6 +99,33 @@ namespace OpenSim.Grid.AssetInventoryServer
|
||||||
|
|
||||||
public class InventoryFolderWithChildren : InventoryFolderBase
|
public class InventoryFolderWithChildren : InventoryFolderBase
|
||||||
{
|
{
|
||||||
|
public InventoryFolderWithChildren()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public InventoryFolderWithChildren(InventoryFolderBase folder)
|
||||||
|
{
|
||||||
|
// from InventoryNodeBase
|
||||||
|
Name = folder.Name;
|
||||||
|
ID = folder.ID;
|
||||||
|
Owner = folder.Owner;
|
||||||
|
|
||||||
|
// from InventoryFolderBase
|
||||||
|
ParentID = folder.ParentID;
|
||||||
|
Type = folder.Type;
|
||||||
|
Version = folder.Version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InventoryFolderWithChildren(string name, UUID ownerID, UUID parentID, short assetType)
|
||||||
|
{
|
||||||
|
ID = UUID.Random();
|
||||||
|
Name = name;
|
||||||
|
Owner = ownerID;
|
||||||
|
ParentID = parentID;
|
||||||
|
Type = assetType;
|
||||||
|
Version = 1;
|
||||||
|
}
|
||||||
|
|
||||||
[NonSerialized]
|
[NonSerialized]
|
||||||
public Dictionary<UUID, InventoryNodeBase> Children = new Dictionary<UUID, InventoryNodeBase>();
|
public Dictionary<UUID, InventoryNodeBase> Children = new Dictionary<UUID, InventoryNodeBase>();
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -43,13 +43,11 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
const string EXTENSION_NAME = "OpenSimInventoryStorage"; // Used in metrics reporting
|
const string EXTENSION_NAME = "OpenSimInventoryStorage"; // Used in metrics reporting
|
||||||
|
|
||||||
private AssetInventoryServer m_server;
|
private AssetInventoryServer m_server;
|
||||||
private IInventoryDataPlugin m_inventoryProvider;
|
|
||||||
private IConfig m_openSimConfig;
|
private IConfig m_openSimConfig;
|
||||||
private OpenSimInventoryService m_inventoryService;
|
private OpenSimInventoryService m_inventoryService;
|
||||||
|
|
||||||
public OpenSimInventoryStoragePlugin()
|
public OpenSimInventoryStoragePlugin()
|
||||||
{
|
{
|
||||||
m_inventoryService = new OpenSimInventoryService();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region IInventoryStorageProvider implementation
|
#region IInventoryStorageProvider implementation
|
||||||
|
@ -231,16 +229,17 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
|
|
||||||
public BackendResponse TryFetchFolderList(Uri owner, out List<InventoryFolderWithChildren> folders)
|
public BackendResponse TryFetchFolderList(Uri owner, out List<InventoryFolderWithChildren> folders)
|
||||||
{
|
{
|
||||||
folders = null;
|
folders = new List<InventoryFolderWithChildren>();
|
||||||
BackendResponse ret;
|
BackendResponse ret;
|
||||||
UUID ownerID;
|
UUID ownerID;
|
||||||
|
|
||||||
if (Utils.TryGetOpenSimUUID(owner, out ownerID))
|
if (Utils.TryGetOpenSimUUID(owner, out ownerID))
|
||||||
{
|
{
|
||||||
foreach (InventoryFolderWithChildren baseFolder in m_inventoryService.GetInventorySkeleton(ownerID))
|
List<InventoryFolderBase> baseFolders = m_inventoryService.GetInventorySkeleton(ownerID);
|
||||||
|
foreach (InventoryFolderBase baseFolder in baseFolders)
|
||||||
{
|
{
|
||||||
InventoryFolderWithChildren folder = (InventoryFolderWithChildren) baseFolder;
|
InventoryFolderWithChildren folder = new InventoryFolderWithChildren(baseFolder);
|
||||||
folder.Children = null; // This call does not create a folder hierarchy
|
//folder.Children = null; // This call does not create a folder hierarchy
|
||||||
folders.Add(folder);
|
folders.Add(folder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,6 +247,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
folders = null;
|
||||||
ret = BackendResponse.NotFound;
|
ret = BackendResponse.NotFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,23 +512,9 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
m_server = server;
|
m_server = server;
|
||||||
m_openSimConfig = server.ConfigFile.Configs["OpenSim"];
|
m_openSimConfig = server.ConfigFile.Configs["OpenSim"];
|
||||||
|
|
||||||
try
|
m_inventoryService = new OpenSimInventoryService();
|
||||||
{
|
m_inventoryService.AddPlugin(m_openSimConfig.GetString("inventory_database_provider"),
|
||||||
m_inventoryProvider = DataPluginFactory.LoadDataPlugin<IInventoryDataPlugin>(m_openSimConfig.GetString("inventory_database_provider"),
|
m_openSimConfig.GetString("inventory_database_connect"));
|
||||||
m_openSimConfig.GetString("inventory_database_connect"));
|
|
||||||
if (m_inventoryProvider == null)
|
|
||||||
{
|
|
||||||
m_log.Error("[OPENSIMINVENTORYSTORAGE]: Failed to load a database plugin, server halting.");
|
|
||||||
Environment.Exit(-1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
m_log.InfoFormat("[OPENSIMINVENTORYSTORAGE]: Loaded storage backend: {0}", Version);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
m_log.WarnFormat("[OPENSIMINVENTORYSTORAGE]: Failure loading data plugin: {0}", e.ToString());
|
|
||||||
throw new PluginNotInitialisedException(Name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop()
|
public void Stop()
|
||||||
|
@ -547,7 +533,8 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
|
|
||||||
public string Version
|
public string Version
|
||||||
{
|
{
|
||||||
get { return m_inventoryProvider.Version; }
|
// TODO: this should be something meaningful and not hardcoded?
|
||||||
|
get { return "0.1"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name
|
public string Name
|
||||||
|
|
Loading…
Reference in New Issue