aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs
diff options
context:
space:
mode:
authorMW2007-08-14 17:29:15 +0000
committerMW2007-08-14 17:29:15 +0000
commit181a90967ee9084676f84e74b2393855218c5723 (patch)
tree7eee2ef5dba2b95827e2849a8981075786cb5cc3 /OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs
parentCorrect caps of Default.lsl for Linux. Thanks again krinkec. :) (diff)
downloadopensim-SC-181a90967ee9084676f84e74b2393855218c5723.zip
opensim-SC-181a90967ee9084676f84e74b2393855218c5723.tar.gz
opensim-SC-181a90967ee9084676f84e74b2393855218c5723.tar.bz2
opensim-SC-181a90967ee9084676f84e74b2393855218c5723.tar.xz
Start of inventory items, when you upload a texture the data will now be stored in the inventory database and you will still have that texture in inventory on later logins (Again only in standalone mode with authentication.)
Also there might be some problems if you upload textures in other regions to the start one (due to us not updating the CAPS url properly).
Diffstat (limited to 'OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs')
-rw-r--r--OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs75
1 files changed, 71 insertions, 4 deletions
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs
index 811a355..045fbee 100644
--- a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs
+++ b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs
@@ -91,7 +91,7 @@ namespace OpenSim.Framework.Data.SQLite
91 data.Add("inventoryCurrentPermissions", DbType.Int32); 91 data.Add("inventoryCurrentPermissions", DbType.Int32);
92 data.Add("inventoryBasePermissions", DbType.Int32); 92 data.Add("inventoryBasePermissions", DbType.Int32);
93 data.Add("inventoryEveryOnePermissions", DbType.Int32); 93 data.Add("inventoryEveryOnePermissions", DbType.Int32);
94 94
95 return data; 95 return data;
96 } 96 }
97 97
@@ -219,6 +219,44 @@ namespace OpenSim.Framework.Data.SQLite
219 row["version"] = folder.version; 219 row["version"] = folder.version;
220 } 220 }
221 221
222 public InventoryItemBase BuildItem(DataRow row)
223 {
224 InventoryItemBase item = new InventoryItemBase();
225 item.inventoryID = new LLUUID((string)row["UUID"]);
226 item.assetID = new LLUUID((string)row["assetID"]);
227 item.assetType = Convert.ToInt32(row["assetType"]);
228 item.invType = Convert.ToInt32(row["invType"]);
229 item.parentFolderID = new LLUUID((string)row["parentFolderID"]);
230 item.avatarID = new LLUUID((string)row["avatarID"]);
231 item.creatorsID = new LLUUID((string)row["creatorsID"]);
232 item.inventoryName =(string) row["inventoryName"];
233 item.inventoryDescription = (string) row["inventoryDescription"];
234
235 item.inventoryNextPermissions = Convert.ToUInt32(row["inventoryNextPermissions"]);
236 item.inventoryCurrentPermissions = Convert.ToUInt32(row["inventoryCurrentPermissions"]);
237 item.inventoryBasePermissions = Convert.ToUInt32(row["inventoryBasePermissions"]);
238 item.inventoryEveryOnePermissions = Convert.ToUInt32(row["inventoryEveryOnePermissions"]);
239 return item;
240 }
241
242 private void fillItemRow(DataRow row, InventoryItemBase item)
243 {
244 row["UUID"] = item.inventoryID;
245 row["assetID"] = item.assetID;
246 row["assetType"] = item.assetType;
247 row["invType"] = item.invType;
248 row["parentFolderID"] = item.parentFolderID;
249 row["avatarID"] = item.avatarID;
250 row["creatorsID"] = item.creatorsID;
251 row["inventoryName"] = item.inventoryName;
252 row["inventoryDescription"] = item.inventoryDescription;
253
254 row["inventoryNextPermissions"] = item.inventoryNextPermissions;
255 row["inventoryCurrentPermissions"] = item.inventoryCurrentPermissions;
256 row["inventoryBasePermissions"] = item.inventoryBasePermissions;
257 row["inventoryEveryOnePermissions"] = item.inventoryEveryOnePermissions;
258 }
259
222 private void addFolder(InventoryFolderBase folder) 260 private void addFolder(InventoryFolderBase folder)
223 { 261 {
224 DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; 262 DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
@@ -238,6 +276,24 @@ namespace OpenSim.Framework.Data.SQLite
238 this.invFoldersDa.Update(ds, "inventoryfolders"); 276 this.invFoldersDa.Update(ds, "inventoryfolders");
239 } 277 }
240 278
279 private void addItem(InventoryItemBase item)
280 {
281 DataTable inventoryItemTable = ds.Tables["inventoryitems"];
282
283 DataRow inventoryRow = inventoryItemTable.Rows.Find(item.inventoryID);
284 if (inventoryRow == null)
285 {
286 inventoryRow = inventoryItemTable.NewRow();
287 fillItemRow(inventoryRow, item);
288 inventoryItemTable.Rows.Add(inventoryRow);
289 }
290 else
291 {
292 fillItemRow(inventoryRow, item);
293 }
294 this.invItemsDa.Update(ds, "inventoryitems");
295 }
296
241 public void Shutdown() 297 public void Shutdown()
242 { 298 {
243 // TODO: DataSet commit 299 // TODO: DataSet commit
@@ -275,7 +331,16 @@ namespace OpenSim.Framework.Data.SQLite
275 /// <returns>A List of InventoryItemBase items</returns> 331 /// <returns>A List of InventoryItemBase items</returns>
276 public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) 332 public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID)
277 { 333 {
278 return null; 334 List<InventoryItemBase> retval = new List<InventoryItemBase>();
335 DataTable inventoryItemTable = ds.Tables["inventoryitems"];
336 string selectExp = "parentFolderID = '" + folderID.ToString() + "'";
337 DataRow[] rows = inventoryItemTable.Select(selectExp);
338 foreach (DataRow row in rows)
339 {
340 retval.Add(BuildItem(row));
341 }
342
343 return retval;
279 } 344 }
280 345
281 /// <summary> 346 /// <summary>
@@ -297,7 +362,7 @@ namespace OpenSim.Framework.Data.SQLite
297 { 362 {
298 List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); 363 List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
299 DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; 364 DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
300 string selectExp = "agentID = '"+ user.ToString()+"' AND parentID = '"+ LLUUID.Zero.ToString()+"'"; 365 string selectExp = "agentID = '" + user.ToString() + "' AND parentID = '" + LLUUID.Zero.ToString() + "'";
301 DataRow[] rows = inventoryFolderTable.Select(selectExp); 366 DataRow[] rows = inventoryFolderTable.Select(selectExp);
302 foreach (DataRow row in rows) 367 foreach (DataRow row in rows)
303 { 368 {
@@ -339,7 +404,7 @@ namespace OpenSim.Framework.Data.SQLite
339 { 404 {
340 folders.Add(this.buildFolder(row)); 405 folders.Add(this.buildFolder(row));
341 } 406 }
342 // System.Console.WriteLine("found " + folders.Count + " inventory folders"); 407 // System.Console.WriteLine("found " + folders.Count + " inventory folders");
343 return folders; 408 return folders;
344 } 409 }
345 410
@@ -369,6 +434,7 @@ namespace OpenSim.Framework.Data.SQLite
369 /// <param name="item">The item to be created</param> 434 /// <param name="item">The item to be created</param>
370 public void addInventoryItem(InventoryItemBase item) 435 public void addInventoryItem(InventoryItemBase item)
371 { 436 {
437 this.addItem(item);
372 } 438 }
373 439
374 /// <summary> 440 /// <summary>
@@ -377,6 +443,7 @@ namespace OpenSim.Framework.Data.SQLite
377 /// <param name="item">The updated item</param> 443 /// <param name="item">The updated item</param>
378 public void updateInventoryItem(InventoryItemBase item) 444 public void updateInventoryItem(InventoryItemBase item)
379 { 445 {
446 this.addItem(item);
380 } 447 }
381 448
382 /// <summary> 449 /// <summary>