plumbing for multiple inventory servers. Mostly done on the region server side.

TODO next is to make the login server read/write a users inventory from the correct server (the inventory url set in a userprofile)
On the region side, although not tested with multiple servers it should work if that inventory url was set, and the inventory servers urls have been added to the CommunicationsManager, using CommunicationsManager.AddInventoryService(string hostUrl)
This commit is contained in:
MW
2008-06-28 15:13:17 +00:00
parent 42e892140c
commit 86defd0a69
13 changed files with 217 additions and 35 deletions

View File

@@ -173,7 +173,7 @@ namespace OpenSim
{
if (File.Exists("OpenSim.xml"))
{
//chech for a xml config file
//check for a xml config file
Application.iniFilePath = "OpenSim.xml";
m_config.Source = new XmlConfigSource();
m_config.Source.Merge(new XmlConfigSource(Application.iniFilePath));

View File

@@ -44,7 +44,8 @@ namespace OpenSim.Region.Communications.Local
IGridServices gridService, bool dumpAssetsToFile)
: base(serversInfo, httpServer, assetCache, dumpAssetsToFile)
{
m_inventoryService = inventoryService;
AddInventoryService( inventoryService);
m_defaultInventoryHost = inventoryService.Host;
m_userService = userService;
m_gridService = gridService;
m_interRegion = interRegionService;

View File

@@ -41,8 +41,17 @@ namespace OpenSim.Region.Communications.OGS1
m_gridService = gridInterComms;
m_interRegion = gridInterComms;
m_inventoryService = new OGS1InventoryService(serversInfo.InventoryURL);
OGS1InventoryService invService = new OGS1InventoryService(serversInfo.InventoryURL);
AddInventoryService(invService);
m_defaultInventoryHost = invService.Host;
m_userService = new OGS1UserServices(this);
}
public override void AddInventoryService(string hostUrl)
{
OGS1InventoryService invService = new OGS1InventoryService(hostUrl);
AddInventoryService(invService);
}
}
}

View File

@@ -45,16 +45,23 @@ namespace OpenSim.Region.Communications.OGS1
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private string _inventoryServerUrl;
private Uri m_Uri;
private Dictionary<LLUUID, InventoryReceiptCallback> m_RequestingInventory
= new Dictionary<LLUUID, InventoryReceiptCallback>();
public OGS1InventoryService(string inventoryServerUrl)
{
_inventoryServerUrl = inventoryServerUrl;
m_Uri = new Uri(_inventoryServerUrl);
}
#region IInventoryServices Members
public string Host
{
get { return m_Uri.Host; }
}
/// <summary>
/// <see cref="OpenSim.Framework.Communications.IInventoryServices"></see>
/// </summary>

View File

@@ -696,5 +696,6 @@ namespace OpenSim.Region.Environment.Scenes
{
return m_commsProvider.GenerateAgentPickerRequestResponse(queryID, query);
}
}
}

View File

@@ -66,6 +66,7 @@ namespace OpenSim.Region.Modules.AvatarFactory
appearance = CreateDefault(avatarId);
m_log.InfoFormat("[APPEARANCE] appearance not found for {0}, creating default", avatarId.ToString());
return false;
}
private AvatarAppearance CreateDefault(LLUUID avatarId)