Add persistence of active gestures. This needs an UGAIM update to work.

Active gestures are sent as part of the login-response. Added
fetchActiveGestures to SQLite and MySQL; added an empty one for MSSQL and
NHibernate. Using the empty ones won't cause errors, but doesn't provide
persistence either, of course.
This commit is contained in:
Homer Horwitz
2008-09-24 21:12:21 +00:00
parent cffb975dd9
commit fe9aea258f
13 changed files with 198 additions and 4 deletions

View File

@@ -798,6 +798,11 @@ namespace OpenSim.Data.MSSQL
m_log.Error("[INVENTORY DB] Error deleting folder :" + e.Message);
}
}
public List<InventoryItemBase> fetchActiveGestures (UUID avatarID)
{
return null;
}
#endregion
}
}

View File

@@ -795,5 +795,41 @@ namespace OpenSim.Data.MySQL
deleteOneFolder(folderID);
deleteItemsInFolder(folderID);
}
public List<InventoryItemBase> fetchActiveGestures(UUID avatarID)
{
MySqlDataReader result = null;
MySqlCommand sqlCmd = null;
lock (database)
{
try
{
database.CheckConnection();
sqlCmd = new MySqlCommand(
"SELECT * FROM inventoryitems WHERE avatarId = ?uuid AND assetType = ?type and flags = 1",
database.Connection);
sqlCmd.Parameters.AddWithValue("?uuid", avatarID.ToString());
sqlCmd.Parameters.AddWithValue("?type", (int)AssetType.Gesture);
result = sqlCmd.ExecuteReader();
List<InventoryItemBase> list = new List<InventoryItemBase>();
while (result.Read())
list.Add(readInventoryItem(result));
return list;
}
catch (Exception e)
{
database.Reconnect();
m_log.Error(e.ToString());
return null;
}
finally
{
if(result != null) result.Close();
if(sqlCmd != null) sqlCmd.Dispose();
}
}
}
}
}

View File

@@ -389,5 +389,10 @@ namespace OpenSim.Data.NHibernate
return folders;
}
public List<InventoryItemBase> fetchActiveGestures (UUID avatarID)
{
return null;
}
}
}

View File

@@ -847,5 +847,24 @@ namespace OpenSim.Data.SQLite
row["UUID"] = Util.ToRawUuidString(folder.ID);
row["parentID"] = Util.ToRawUuidString(folder.ParentID);
}
public List<InventoryItemBase> fetchActiveGestures (UUID avatarID)
{
lock (ds)
{
List<InventoryItemBase> items = new List<InventoryItemBase>();
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
string selectExp = "avatarID = '" + Util.ToRawUuidString(avatarID) + "' AND assetType = " +
(int)AssetType.Gesture + " AND flags = 1";
m_log.DebugFormat("[SQL]: sql = " + selectExp);
DataRow[] rows = inventoryItemTable.Select(selectExp);
foreach (DataRow row in rows)
{
items.Add(buildItem(row));
}
return items;
}
}
}
}