* Reduce publicly exposed fields on InventoryCollection, which was causing duplicate sets of inventory data to be sent over the grid
* Won't actually fix anything, since we were handling the problem anyway * Also add more doc, fix up debugging messages, etc0.6.0-stable
parent
8f345d36d8
commit
b3f783ae05
|
@ -37,47 +37,8 @@ namespace OpenSim.Framework
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class InventoryCollection
|
public class InventoryCollection
|
||||||
{
|
{
|
||||||
public List<InventoryFolderBase> _folders;
|
public List<InventoryFolderBase> Folders;
|
||||||
public List<InventoryItemBase> _allItems;
|
public List<InventoryItemBase> Items;
|
||||||
public LLUUID _userID;
|
public LLUUID UserID;
|
||||||
|
|
||||||
public List<InventoryFolderBase> Folders {
|
|
||||||
get {
|
|
||||||
return _folders;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
_folders = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<InventoryItemBase> AllItems {
|
|
||||||
get {
|
|
||||||
return _allItems;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
_allItems = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public LLUUID UserID {
|
|
||||||
get {
|
|
||||||
return _userID;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
_userID = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public InventoryCollection()
|
|
||||||
{
|
|
||||||
_folders = new List<InventoryFolderBase>();
|
|
||||||
_allItems = new List<InventoryItemBase>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public InventoryCollection(List<InventoryFolderBase> folders, List<InventoryItemBase> allItems)
|
|
||||||
{
|
|
||||||
_folders = folders;
|
|
||||||
_allItems = allItems;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,9 @@ namespace OpenSim.Framework.Servers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RestObjectPosterResponse<TResponse>
|
public class RestObjectPosterResponse<TResponse>
|
||||||
{
|
{
|
||||||
|
// private static readonly log4net.ILog m_log
|
||||||
|
// = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
public ReturnResponse<TResponse> ResponseCallback;
|
public ReturnResponse<TResponse> ResponseCallback;
|
||||||
|
|
||||||
public void BeginPostObject<TRequest>(string requestUrl, TRequest obj)
|
public void BeginPostObject<TRequest>(string requestUrl, TRequest obj)
|
||||||
|
@ -83,7 +86,13 @@ namespace OpenSim.Framework.Servers
|
||||||
{
|
{
|
||||||
TResponse deserial;
|
TResponse deserial;
|
||||||
XmlSerializer deserializer = new XmlSerializer(typeof (TResponse));
|
XmlSerializer deserializer = new XmlSerializer(typeof (TResponse));
|
||||||
deserial = (TResponse) deserializer.Deserialize(resp.GetResponseStream());
|
Stream stream = resp.GetResponseStream();
|
||||||
|
|
||||||
|
// This is currently a bad debug stanza since it gobbles us the response...
|
||||||
|
// StreamReader reader = new StreamReader(stream);
|
||||||
|
// m_log.DebugFormat("[REST OBJECT POSTER RESPONSE]: Received {0}", reader.ReadToEnd());
|
||||||
|
|
||||||
|
deserial = (TResponse) deserializer.Deserialize(stream);
|
||||||
|
|
||||||
if (deserial != null && ResponseCallback != null)
|
if (deserial != null && ResponseCallback != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,9 +37,13 @@ using OpenSim.Framework.Console;
|
||||||
|
|
||||||
namespace OpenSim.Grid.InventoryServer
|
namespace OpenSim.Grid.InventoryServer
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Used on a grid server to satisfy external inventory requests
|
||||||
|
/// </summary>
|
||||||
public class GridInventoryService : InventoryServiceBase
|
public class GridInventoryService : InventoryServiceBase
|
||||||
{
|
{
|
||||||
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog m_log
|
||||||
|
= log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
public override void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback)
|
public override void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback)
|
||||||
{
|
{
|
||||||
|
@ -110,7 +114,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
|
|
||||||
LLUUID userID = new LLUUID(rawUserID);
|
LLUUID userID = new LLUUID(rawUserID);
|
||||||
|
|
||||||
m_log.InfoFormat("[AGENT INVENTORY]: Processing request for inventory of {0}", userID);
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Processing request for inventory of {0}", userID);
|
||||||
|
|
||||||
InventoryCollection invCollection = new InventoryCollection();
|
InventoryCollection invCollection = new InventoryCollection();
|
||||||
|
|
||||||
|
@ -118,7 +122,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
|
|
||||||
if (null == allFolders)
|
if (null == allFolders)
|
||||||
{
|
{
|
||||||
m_log.WarnFormat("[AGENT INVENTORY]: No inventory found for user {0}", rawUserID);
|
m_log.WarnFormat("[GRID AGENT INVENTORY]: No inventory found for user {0}", rawUserID);
|
||||||
|
|
||||||
return invCollection;
|
return invCollection;
|
||||||
}
|
}
|
||||||
|
@ -135,24 +139,24 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
invCollection.AllItems = allItems;
|
|
||||||
invCollection.Folders = allFolders;
|
|
||||||
invCollection.UserID = userID;
|
invCollection.UserID = userID;
|
||||||
|
invCollection.Folders = allFolders;
|
||||||
|
invCollection.Items = allItems;
|
||||||
|
|
||||||
// foreach (InventoryFolderBase folder in folders)
|
// foreach (InventoryFolderBase folder in invCollection.Folders)
|
||||||
// {
|
// {
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back folder {0} {1}", folder.Name, folder.ID);
|
||||||
// "[AGENT INVENTORY]: Sending back folder {0}, {1}",
|
|
||||||
// folder.name, folder.folderID);
|
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// foreach (InventoryItemBase item in allItems)
|
// foreach (InventoryItemBase item in invCollection.Items)
|
||||||
// {
|
// {
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back item {0} {1}, folder {2}", item.Name, item.ID, item.Folder);
|
||||||
// "[AGENT INVENTORY]: Sending back item {0}, {1}, folder {2}",
|
|
||||||
// item.inventoryName, item.inventoryID, item.parentFolderID);
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
m_log.InfoFormat(
|
||||||
|
"[GRID AGENT INVENTORY]: Sending back inventory response to user {0} containing {1} folders and {2} items",
|
||||||
|
invCollection.UserID, invCollection.Folders.Count, invCollection.Items.Count);
|
||||||
|
|
||||||
return invCollection;
|
return invCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,8 +180,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
{
|
{
|
||||||
LLUUID userID = new LLUUID(rawUserID);
|
LLUUID userID = new LLUUID(rawUserID);
|
||||||
|
|
||||||
m_log.Info(
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Creating new set of inventory folders for user {0}", userID);
|
||||||
"[AGENT INVENTORY]: Creating new set of inventory folders for " + userID.ToString());
|
|
||||||
|
|
||||||
CreateNewUserInventory(userID);
|
CreateNewUserInventory(userID);
|
||||||
return true;
|
return true;
|
||||||
|
@ -202,10 +205,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
public bool AddInventoryFolder(InventoryFolderBase folder)
|
public bool AddInventoryFolder(InventoryFolderBase folder)
|
||||||
{
|
{
|
||||||
// Right now, this actions act more like an update/insert combination than a simple create.
|
// Right now, this actions act more like an update/insert combination than a simple create.
|
||||||
m_log.Info(
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Creating folder {0} {1} in folder {2}", folder.Name, folder.ID, folder.ParentID);
|
||||||
"[AGENT INVENTORY]: " +
|
|
||||||
"Updating in " + folder.ParentID.ToString()
|
|
||||||
+ ", folder " + folder.Name);
|
|
||||||
|
|
||||||
AddNewInventoryFolder(folder.Owner, folder);
|
AddNewInventoryFolder(folder.Owner, folder);
|
||||||
return true;
|
return true;
|
||||||
|
@ -213,10 +213,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
|
|
||||||
public bool MoveInventoryFolder(InventoryFolderBase folder)
|
public bool MoveInventoryFolder(InventoryFolderBase folder)
|
||||||
{
|
{
|
||||||
m_log.Info(
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Moving folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID);
|
||||||
"[AGENT INVENTORY]: " +
|
|
||||||
"Moving folder " + folder.ID
|
|
||||||
+ " to " + folder.ParentID.ToString());
|
|
||||||
|
|
||||||
MoveExistingInventoryFolder(folder);
|
MoveExistingInventoryFolder(folder);
|
||||||
return true;
|
return true;
|
||||||
|
@ -225,10 +222,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
public bool AddInventoryItem(InventoryItemBase item)
|
public bool AddInventoryItem(InventoryItemBase item)
|
||||||
{
|
{
|
||||||
// Right now, this actions act more like an update/insert combination than a simple create.
|
// Right now, this actions act more like an update/insert combination than a simple create.
|
||||||
m_log.Info(
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Adding item {0} {1} to folder {2}", item.Name, item.ID, item.Folder);
|
||||||
"[AGENT INVENTORY]: " +
|
|
||||||
"Updating in " + item.Folder.ToString()
|
|
||||||
+ ", item " + item.Name);
|
|
||||||
|
|
||||||
AddNewInventoryItem(item.Owner, item);
|
AddNewInventoryItem(item.Owner, item);
|
||||||
return true;
|
return true;
|
||||||
|
@ -236,15 +230,16 @@ namespace OpenSim.Grid.InventoryServer
|
||||||
|
|
||||||
public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item)
|
public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item)
|
||||||
{
|
{
|
||||||
// extra spaces to align with other inventory messages
|
m_log.InfoFormat("[GRID AGENT INVENTORY]: Deleting item {0} {1} from folder {2}", item.Name, item.ID, item.Folder);
|
||||||
m_log.Info(
|
|
||||||
"[AGENT INVENTORY]: " +
|
|
||||||
"Deleting in " + item.Folder.ToString()
|
|
||||||
+ ", item " + item.Name);
|
|
||||||
|
|
||||||
DeleteItem(item);
|
DeleteItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FIXME: Get DeleteInventoryItem to return a bool
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public bool DeleteInvItem(InventoryItemBase item)
|
public bool DeleteInvItem(InventoryItemBase item)
|
||||||
{
|
{
|
||||||
DeleteInventoryItem(item.Owner, item);
|
DeleteInventoryItem(item.Owner, item);
|
||||||
|
|
|
@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.OGS1
|
||||||
{
|
{
|
||||||
m_log.InfoFormat("[OGS1 INVENTORY SERVICE]: " +
|
m_log.InfoFormat("[OGS1 INVENTORY SERVICE]: " +
|
||||||
"Received inventory response for user {0} containing {1} folders and {2} items",
|
"Received inventory response for user {0} containing {1} folders and {2} items",
|
||||||
userID, response.Folders.Count, response.AllItems.Count);
|
userID, response.Folders.Count, response.Items.Count);
|
||||||
|
|
||||||
InventoryFolderImpl rootFolder = null;
|
InventoryFolderImpl rootFolder = null;
|
||||||
InventoryRequest request = m_RequestingInventory[userID];
|
InventoryRequest request = m_RequestingInventory[userID];
|
||||||
|
@ -108,6 +108,8 @@ namespace OpenSim.Region.Communications.OGS1
|
||||||
{
|
{
|
||||||
rootFolder = new InventoryFolderImpl(folder);
|
rootFolder = new InventoryFolderImpl(folder);
|
||||||
folders.Add(rootFolder);
|
folders.Add(rootFolder);
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,11 +123,15 @@ namespace OpenSim.Region.Communications.OGS1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (InventoryItemBase item in response.AllItems)
|
foreach (InventoryItemBase item in response.Items)
|
||||||
{
|
{
|
||||||
items.Add(item);
|
items.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: Did not get back an inventory containing a root folder for user {0}", userID);
|
||||||
|
}
|
||||||
|
|
||||||
request.Callback(userID, folders, items);
|
request.Callback(userID, folders, items);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue