aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs')
-rw-r--r--OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs533
1 files changed, 265 insertions, 268 deletions
diff --git a/OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs b/OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs
index d4e9097..7f8d8f9 100644
--- a/OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs
+++ b/OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim/OpenSimInventoryFrontendPlugin.cs
@@ -30,12 +30,9 @@
30using System; 30using System;
31using System.Reflection; 31using System.Reflection;
32using System.Collections.Generic; 32using System.Collections.Generic;
33using System.Net;
34using System.IO; 33using System.IO;
35using System.Xml; 34using System.Xml;
36using OpenMetaverse; 35using OpenMetaverse;
37using OpenMetaverse.StructuredData;
38using HttpServer;
39using OpenSim.Framework; 36using OpenSim.Framework;
40using log4net; 37using log4net;
41 38
@@ -44,10 +41,10 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
44 public class OpenSimInventoryFrontendPlugin : IAssetInventoryServerPlugin 41 public class OpenSimInventoryFrontendPlugin : IAssetInventoryServerPlugin
45 { 42 {
46 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47 private AssetInventoryServer server; 44 //private AssetInventoryServer m_server;
48 private Utils.InventoryItemSerializer itemSerializer = new Utils.InventoryItemSerializer(); 45 //private Utils.InventoryItemSerializer itemSerializer = new Utils.InventoryItemSerializer();
49 private Utils.InventoryFolderSerializer folderSerializer = new Utils.InventoryFolderSerializer(); 46 //private Utils.InventoryFolderSerializer folderSerializer = new Utils.InventoryFolderSerializer();
50 private Utils.InventoryCollectionSerializer collectionSerializer = new Utils.InventoryCollectionSerializer(); 47 //private Utils.InventoryCollectionSerializer collectionSerializer = new Utils.InventoryCollectionSerializer();
51 48
52 public OpenSimInventoryFrontendPlugin() 49 public OpenSimInventoryFrontendPlugin()
53 { 50 {
@@ -57,18 +54,18 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
57 54
58 public void Initialise(AssetInventoryServer server) 55 public void Initialise(AssetInventoryServer server)
59 { 56 {
60 this.server = server; 57 //m_server = server;
61 58
62 //server.HttpServer.AddHandler("post", null, @"^/GetInventory/", GetInventoryHandler); 59 //m_server.HttpServer.AddHandler("post", null, @"^/GetInventory/", GetInventoryHandler);
63 //server.HttpServer.AddHandler("post", null, @"^/CreateInventory/", CreateInventoryHandler); 60 //m_server.HttpServer.AddHandler("post", null, @"^/CreateInventory/", CreateInventoryHandler);
64 //server.HttpServer.AddHandler("post", null, @"^/NewFolder/", NewFolderHandler); 61 //m_server.HttpServer.AddHandler("post", null, @"^/NewFolder/", NewFolderHandler);
65 //server.HttpServer.AddHandler("post", null, @"^/UpdateFolder/", UpdateFolderHandler); 62 //m_server.HttpServer.AddHandler("post", null, @"^/UpdateFolder/", UpdateFolderHandler);
66 //server.HttpServer.AddHandler("post", null, @"^/MoveFolder/", MoveFolderHandler); 63 //m_server.HttpServer.AddHandler("post", null, @"^/MoveFolder/", MoveFolderHandler);
67 //server.HttpServer.AddHandler("post", null, @"^/PurgeFolder/", PurgeFolderHandler); 64 //m_server.HttpServer.AddHandler("post", null, @"^/PurgeFolder/", PurgeFolderHandler);
68 //server.HttpServer.AddHandler("post", null, @"^/NewItem/", NewItemHandler); 65 //m_server.HttpServer.AddHandler("post", null, @"^/NewItem/", NewItemHandler);
69 //server.HttpServer.AddHandler("post", null, @"^/DeleteItem/", DeleteItemHandler); 66 //m_server.HttpServer.AddHandler("post", null, @"^/DeleteItem/", DeleteItemHandler);
70 //server.HttpServer.AddHandler("post", null, @"^/RootFolders/", RootFoldersHandler); 67 //m_server.HttpServer.AddHandler("post", null, @"^/RootFolders/", RootFoldersHandler);
71 //server.HttpServer.AddHandler("post", null, @"^/ActiveGestures/", ActiveGesturesHandler); 68 //m_server.HttpServer.AddHandler("post", null, @"^/ActiveGestures/", ActiveGesturesHandler);
72 69
73 m_log.Info("[INVENTORY] OpenSim Inventory Frontend loaded."); 70 m_log.Info("[INVENTORY] OpenSim Inventory Frontend loaded.");
74 } 71 }
@@ -110,7 +107,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
110 107
111 // Uri owner = Utils.GetOpenSimUri(ownerID); 108 // Uri owner = Utils.GetOpenSimUri(ownerID);
112 // InventoryCollection inventory; 109 // InventoryCollection inventory;
113 // BackendResponse storageResponse = server.InventoryProvider.TryFetchInventory(owner, out inventory); 110 // BackendResponse storageResponse = m_server.InventoryProvider.TryFetchInventory(owner, out inventory);
114 111
115 // if (storageResponse == BackendResponse.Success) 112 // if (storageResponse == BackendResponse.Success)
116 // { 113 // {
@@ -150,7 +147,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
150 // m_log.DebugFormat("Created URI {0} for inventory creation", owner); 147 // m_log.DebugFormat("Created URI {0} for inventory creation", owner);
151 148
152 // InventoryFolder rootFolder = new InventoryFolder("My Inventory", ownerID, UUID.Zero, (short)AssetType.Folder); 149 // InventoryFolder rootFolder = new InventoryFolder("My Inventory", ownerID, UUID.Zero, (short)AssetType.Folder);
153 // BackendResponse storageResponse = server.InventoryProvider.TryCreateInventory(owner, rootFolder); 150 // BackendResponse storageResponse = m_server.InventoryProvider.TryCreateInventory(owner, rootFolder);
154 // if (storageResponse == BackendResponse.Success) 151 // if (storageResponse == BackendResponse.Success)
155 // { 152 // {
156 // CreateFolder("Animations", ownerID, rootFolder.ID, AssetType.Animation); 153 // CreateFolder("Animations", ownerID, rootFolder.ID, AssetType.Animation);
@@ -192,11 +189,11 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
192 // if (String.IsNullOrEmpty(folder.Name)) 189 // if (String.IsNullOrEmpty(folder.Name))
193 // { 190 // {
194 // InventoryFolder oldFolder; 191 // InventoryFolder oldFolder;
195 // if (server.InventoryProvider.TryFetchFolder(owner, folder.ID, out oldFolder) == BackendResponse.Success) 192 // if (m_server.InventoryProvider.TryFetchFolder(owner, folder.ID, out oldFolder) == BackendResponse.Success)
196 // folder.Name = oldFolder.Name; 193 // folder.Name = oldFolder.Name;
197 // } 194 // }
198 195
199 // BackendResponse storageResponse = server.InventoryProvider.TryCreateFolder(owner, folder); 196 // BackendResponse storageResponse = m_server.InventoryProvider.TryCreateFolder(owner, folder);
200 197
201 // if (storageResponse == BackendResponse.Success) 198 // if (storageResponse == BackendResponse.Success)
202 // { 199 // {
@@ -227,7 +224,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
227 // if (folder != null) 224 // if (folder != null)
228 // { 225 // {
229 // Uri owner = Utils.GetOpenSimUri(folder.Owner); 226 // Uri owner = Utils.GetOpenSimUri(folder.Owner);
230 // BackendResponse storageResponse = server.InventoryProvider.TryPurgeFolder(owner, folder.ID); 227 // BackendResponse storageResponse = m_server.InventoryProvider.TryPurgeFolder(owner, folder.ID);
231 228
232 // if (storageResponse == BackendResponse.Success) 229 // if (storageResponse == BackendResponse.Success)
233 // { 230 // {
@@ -248,7 +245,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
248 // if (item != null) 245 // if (item != null)
249 // { 246 // {
250 // Uri owner = Utils.GetOpenSimUri(agentID); 247 // Uri owner = Utils.GetOpenSimUri(agentID);
251 // BackendResponse storageResponse = server.InventoryProvider.TryCreateItem(owner, item); 248 // BackendResponse storageResponse = m_server.InventoryProvider.TryCreateItem(owner, item);
252 249
253 // if (storageResponse == BackendResponse.Success) 250 // if (storageResponse == BackendResponse.Success)
254 // { 251 // {
@@ -269,7 +266,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
269 // if (item != null) 266 // if (item != null)
270 // { 267 // {
271 // Uri owner = Utils.GetOpenSimUri(item.Owner); 268 // Uri owner = Utils.GetOpenSimUri(item.Owner);
272 // BackendResponse storageResponse = server.InventoryProvider.TryDeleteItem(owner, item.ID); 269 // BackendResponse storageResponse = m_server.InventoryProvider.TryDeleteItem(owner, item.ID);
273 270
274 // if (storageResponse == BackendResponse.Success) 271 // if (storageResponse == BackendResponse.Success)
275 // { 272 // {
@@ -290,7 +287,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
290 // { 287 // {
291 // Uri owner = Utils.GetOpenSimUri(ownerID); 288 // Uri owner = Utils.GetOpenSimUri(ownerID);
292 // List<InventoryFolder> skeleton; 289 // List<InventoryFolder> skeleton;
293 // BackendResponse storageResponse = server.InventoryProvider.TryFetchFolderList(owner, out skeleton); 290 // BackendResponse storageResponse = m_server.InventoryProvider.TryFetchFolderList(owner, out skeleton);
294 291
295 // if (storageResponse == BackendResponse.Success) 292 // if (storageResponse == BackendResponse.Success)
296 // { 293 // {
@@ -323,7 +320,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
323 // { 320 // {
324 // Uri owner = Utils.GetOpenSimUri(ownerID); 321 // Uri owner = Utils.GetOpenSimUri(ownerID);
325 // List<InventoryItem> gestures; 322 // List<InventoryItem> gestures;
326 // BackendResponse storageResponse = server.InventoryProvider.TryFetchActiveGestures(owner, out gestures); 323 // BackendResponse storageResponse = m_server.InventoryProvider.TryFetchActiveGestures(owner, out gestures);
327 324
328 // if (storageResponse == BackendResponse.Success) 325 // if (storageResponse == BackendResponse.Success)
329 // { 326 // {
@@ -347,255 +344,255 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
347 // return true; 344 // return true;
348 //} 345 //}
349 346
350 BackendResponse CreateFolder(string name, UUID ownerID, UUID parentID, AssetType assetType) 347 //BackendResponse CreateFolder(string name, UUID ownerID, UUID parentID, AssetType assetType)
351 { 348 //{
352 InventoryFolder folder = new InventoryFolder(name, ownerID, parentID, (short)assetType); 349 // InventoryFolder folder = new InventoryFolder(name, ownerID, parentID, (short)assetType);
353 Uri owner = Utils.GetOpenSimUri(ownerID); 350 // Uri owner = Utils.GetOpenSimUri(ownerID);
354 return server.InventoryProvider.TryCreateFolder(owner, folder); 351 // return m_server.InventoryProvider.TryCreateFolder(owner, folder);
355 } 352 //}
356 353
357 UUID DeserializeUUID(Stream stream) 354 //UUID DeserializeUUID(Stream stream)
358 { 355 //{
359 UUID id = UUID.Zero; 356 // UUID id = UUID.Zero;
360
361 try
362 {
363 using (XmlReader reader = XmlReader.Create(stream))
364 {
365 reader.MoveToContent();
366 UUID.TryParse(reader.ReadElementContentAsString("guid", String.Empty), out id);
367 }
368 }
369 catch (Exception ex)
370 {
371 m_log.Warn("Failed to parse POST data (expecting guid): " + ex.Message);
372 }
373
374 return id;
375 }
376 357
377 UUID DeserializeUUID(Stream stream, out UUID agentID, out UUID sessionID) 358 // try
378 { 359 // {
379 UUID id; 360 // using (XmlReader reader = XmlReader.Create(stream))
380 361 // {
381 try 362 // reader.MoveToContent();
382 { 363 // UUID.TryParse(reader.ReadElementContentAsString("guid", String.Empty), out id);
383 using (XmlReader reader = XmlReader.Create(stream)) 364 // }
384 { 365 // }
385 reader.MoveToContent(); 366 // catch (Exception ex)
386 reader.ReadStartElement("RestSessionObjectOfGuid"); 367 // {
387 UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID); 368 // m_log.Warn("Failed to parse POST data (expecting guid): " + ex.Message);
388 UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID); 369 // }
389 UUID.TryParse(reader.ReadElementContentAsString("Body", String.Empty), out id);
390 reader.ReadEndElement();
391 }
392 }
393 catch (Exception ex)
394 {
395 m_log.Warn("Failed to parse GetInventory POST data: " + ex.Message);
396 agentID = UUID.Zero;
397 sessionID = UUID.Zero;
398 return UUID.Zero;
399 }
400
401 return id;
402 }
403 370
404 InventoryFolder DeserializeFolder(Stream stream, out UUID agentID, out UUID sessionID) 371 // return id;
405 { 372 //}
406 InventoryFolder folder = new InventoryFolder();
407
408 try
409 {
410 using (XmlReader reader = XmlReader.Create(stream))
411 {
412 reader.MoveToContent();
413 reader.ReadStartElement("RestSessionObjectOfInventoryFolderBase");
414 UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID);
415 UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID);
416 reader.ReadStartElement("Body");
417 if (reader.Name == "Name")
418 folder.Name = reader.ReadElementContentAsString("Name", String.Empty);
419 else
420 folder.Name = String.Empty;
421 ReadUUID(reader, "Owner", out folder.Owner);
422 ReadUUID(reader, "ParentID", out folder.ParentID);
423 ReadUUID(reader, "ID", out folder.ID);
424 Int16.TryParse(reader.ReadElementContentAsString("Type", String.Empty), out folder.Type);
425 UInt16.TryParse(reader.ReadElementContentAsString("Version", String.Empty), out folder.Version);
426 reader.ReadEndElement();
427 reader.ReadEndElement();
428 }
429 }
430 catch (Exception ex)
431 {
432 m_log.Warn("Failed to parse POST data (expecting InventoryFolderBase): " + ex.Message);
433 agentID = UUID.Zero;
434 sessionID = UUID.Zero;
435 return null;
436 }
437
438 return folder;
439 }
440 373
441 InventoryItem DeserializeItem(Stream stream, out UUID agentID, out UUID sessionID) 374 //UUID DeserializeUUID(Stream stream, out UUID agentID, out UUID sessionID)
442 { 375 //{
443 InventoryItem item = new InventoryItem(); 376 // UUID id;
444
445 try
446 {
447 using (XmlReader reader = XmlReader.Create(stream))
448 {
449 reader.MoveToContent();
450 reader.ReadStartElement("RestSessionObjectOfInventoryItemBase");
451 UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID);
452 UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID);
453 reader.ReadStartElement("Body");
454 ReadUUID(reader, "ID", out item.ID);
455 Int32.TryParse(reader.ReadElementContentAsString("InvType", String.Empty), out item.InvType);
456 ReadUUID(reader, "Folder", out item.Folder);
457 ReadUUID(reader, "Owner", out item.Owner);
458 ReadUUID(reader, "Creator", out item.Creator);
459 item.Name = reader.ReadElementContentAsString("Name", String.Empty);
460 item.Description = reader.ReadElementContentAsString("Description", String.Empty);
461 UInt32.TryParse(reader.ReadElementContentAsString("NextPermissions", String.Empty), out item.NextPermissions);
462 UInt32.TryParse(reader.ReadElementContentAsString("CurrentPermissions", String.Empty), out item.CurrentPermissions);
463 UInt32.TryParse(reader.ReadElementContentAsString("BasePermissions", String.Empty), out item.BasePermissions);
464 UInt32.TryParse(reader.ReadElementContentAsString("EveryOnePermissions", String.Empty), out item.EveryOnePermissions);
465 UInt32.TryParse(reader.ReadElementContentAsString("GroupPermissions", String.Empty), out item.GroupPermissions);
466 Int32.TryParse(reader.ReadElementContentAsString("AssetType", String.Empty), out item.AssetType);
467 ReadUUID(reader, "AssetID", out item.AssetID);
468 ReadUUID(reader, "GroupID", out item.GroupID);
469 Boolean.TryParse(reader.ReadElementContentAsString("GroupOwned", String.Empty), out item.GroupOwned);
470 Int32.TryParse(reader.ReadElementContentAsString("SalePrice", String.Empty), out item.SalePrice);
471 Byte.TryParse(reader.ReadElementContentAsString("SaleType", String.Empty), out item.SaleType);
472 UInt32.TryParse(reader.ReadElementContentAsString("Flags", String.Empty), out item.Flags);
473 Int32.TryParse(reader.ReadElementContentAsString("CreationDate", String.Empty), out item.CreationDate);
474 reader.ReadEndElement();
475 reader.ReadEndElement();
476 }
477 }
478 catch (Exception ex)
479 {
480 m_log.Warn("Failed to parse POST data (expecting InventoryItemBase): " + ex.Message);
481 agentID = UUID.Zero;
482 sessionID = UUID.Zero;
483 return null;
484 }
485
486 return item;
487 }
488 377
489 void SerializeBool(Stream stream, bool value) 378 // try
490 { 379 // {
491 using (XmlWriter writer = XmlWriter.Create(stream)) 380 // using (XmlReader reader = XmlReader.Create(stream))
492 { 381 // {
493 writer.WriteStartDocument(); 382 // reader.MoveToContent();
494 writer.WriteStartElement("boolean"); 383 // reader.ReadStartElement("RestSessionObjectOfGuid");
495 writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); 384 // UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID);
496 writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema"); 385 // UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID);
497 writer.WriteString(value.ToString().ToLower()); 386 // UUID.TryParse(reader.ReadElementContentAsString("Body", String.Empty), out id);
498 writer.WriteEndElement(); 387 // reader.ReadEndElement();
499 writer.WriteEndDocument(); 388 // }
500 writer.Flush(); 389 // }
501 } 390 // catch (Exception ex)
502 391 // {
503 stream.Flush(); 392 // m_log.Warn("Failed to parse GetInventory POST data: " + ex.Message);
504 } 393 // agentID = UUID.Zero;
394 // sessionID = UUID.Zero;
395 // return UUID.Zero;
396 // }
505 397
506 void SerializeFolderList(Stream stream, List<InventoryFolder> folders) 398 // return id;
507 { 399 //}
508 using (XmlWriter writer = XmlWriter.Create(stream))
509 {
510 writer.WriteStartDocument();
511 writer.WriteStartElement("ArrayOfInventoryFolderBase");
512 writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
513 writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
514
515 if (folders != null)
516 {
517 foreach (InventoryFolder folder in folders)
518 {
519 writer.WriteStartElement("InventoryFolderBase");
520 writer.WriteElementString("Name", folder.Name);
521 WriteUUID(writer, "Owner", folder.Owner);
522 WriteUUID(writer, "ParentID", folder.ParentID);
523 WriteUUID(writer, "ID", folder.ID);
524 writer.WriteElementString("Type", XmlConvert.ToString(folder.Type));
525 writer.WriteElementString("Version", XmlConvert.ToString(folder.Version));
526 writer.WriteEndElement();
527 }
528 }
529
530 writer.WriteEndElement();
531 writer.WriteEndDocument();
532
533 writer.Flush();
534 }
535
536 stream.Flush();
537 }
538 400
539 void SerializeItemList(Stream stream, List<InventoryItem> items) 401 //InventoryFolder DeserializeFolder(Stream stream, out UUID agentID, out UUID sessionID)
540 { 402 //{
541 using (XmlWriter writer = XmlWriter.Create(stream)) 403 // InventoryFolder folder = new InventoryFolder();
542 {
543 writer.WriteStartDocument();
544 writer.WriteStartElement("ArrayOfInventoryItemBase");
545 writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
546 writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
547
548 if (items != null)
549 {
550 foreach (InventoryItem item in items)
551 {
552 writer.WriteStartElement("InventoryItemBase");
553 WriteUUID(writer, "ID", item.ID);
554 writer.WriteElementString("InvType", XmlConvert.ToString(item.InvType));
555 WriteUUID(writer, "Folder", item.Folder);
556 WriteUUID(writer, "Owner", item.Owner);
557 WriteUUID(writer, "Creator", item.Creator);
558 writer.WriteElementString("Name", item.Name);
559 writer.WriteElementString("Description", item.Description);
560 writer.WriteElementString("NextPermissions", XmlConvert.ToString(item.NextPermissions));
561 writer.WriteElementString("CurrentPermissions", XmlConvert.ToString(item.CurrentPermissions));
562 writer.WriteElementString("BasePermissions", XmlConvert.ToString(item.BasePermissions));
563 writer.WriteElementString("EveryOnePermissions", XmlConvert.ToString(item.EveryOnePermissions));
564 writer.WriteElementString("GroupPermissions", XmlConvert.ToString(item.GroupPermissions));
565 writer.WriteElementString("AssetType", XmlConvert.ToString(item.AssetType));
566 WriteUUID(writer, "AssetID", item.AssetID);
567 WriteUUID(writer, "GroupID", item.GroupID);
568 writer.WriteElementString("GroupOwned", XmlConvert.ToString(item.GroupOwned));
569 writer.WriteElementString("SalePrice", XmlConvert.ToString(item.SalePrice));
570 writer.WriteElementString("SaleType", XmlConvert.ToString(item.SaleType));
571 writer.WriteElementString("Flags", XmlConvert.ToString(item.Flags));
572 writer.WriteElementString("CreationDate", XmlConvert.ToString(item.CreationDate));
573 writer.WriteEndElement();
574 }
575 }
576
577 writer.WriteEndElement();
578 writer.WriteEndDocument();
579
580 writer.Flush();
581 }
582
583 stream.Flush();
584 }
585 404
586 void WriteUUID(XmlWriter writer, string name, UUID id) 405 // try
587 { 406 // {
588 writer.WriteStartElement(name); 407 // using (XmlReader reader = XmlReader.Create(stream))
589 writer.WriteElementString("Guid", XmlConvert.ToString(id.Guid)); 408 // {
590 writer.WriteEndElement(); 409 // reader.MoveToContent();
591 } 410 // reader.ReadStartElement("RestSessionObjectOfInventoryFolderBase");
411 // UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID);
412 // UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID);
413 // reader.ReadStartElement("Body");
414 // if (reader.Name == "Name")
415 // folder.Name = reader.ReadElementContentAsString("Name", String.Empty);
416 // else
417 // folder.Name = String.Empty;
418 // ReadUUID(reader, "Owner", out folder.Owner);
419 // ReadUUID(reader, "ParentID", out folder.ParentID);
420 // ReadUUID(reader, "ID", out folder.ID);
421 // Int16.TryParse(reader.ReadElementContentAsString("Type", String.Empty), out folder.Type);
422 // UInt16.TryParse(reader.ReadElementContentAsString("Version", String.Empty), out folder.Version);
423 // reader.ReadEndElement();
424 // reader.ReadEndElement();
425 // }
426 // }
427 // catch (Exception ex)
428 // {
429 // m_log.Warn("Failed to parse POST data (expecting InventoryFolderBase): " + ex.Message);
430 // agentID = UUID.Zero;
431 // sessionID = UUID.Zero;
432 // return null;
433 // }
592 434
593 void ReadUUID(XmlReader reader, string name, out UUID id) 435 // return folder;
594 { 436 //}
595 reader.ReadStartElement(name); 437
596 UUID.TryParse(reader.ReadElementContentAsString("Guid", String.Empty), out id); 438 //InventoryItem DeserializeItem(Stream stream, out UUID agentID, out UUID sessionID)
597 reader.ReadEndElement(); 439 //{
598 } 440 // InventoryItem item = new InventoryItem();
441
442 // try
443 // {
444 // using (XmlReader reader = XmlReader.Create(stream))
445 // {
446 // reader.MoveToContent();
447 // reader.ReadStartElement("RestSessionObjectOfInventoryItemBase");
448 // UUID.TryParse(reader.ReadElementContentAsString("SessionID", String.Empty), out sessionID);
449 // UUID.TryParse(reader.ReadElementContentAsString("AvatarID", String.Empty), out agentID);
450 // reader.ReadStartElement("Body");
451 // ReadUUID(reader, "ID", out item.ID);
452 // Int32.TryParse(reader.ReadElementContentAsString("InvType", String.Empty), out item.InvType);
453 // ReadUUID(reader, "Folder", out item.Folder);
454 // ReadUUID(reader, "Owner", out item.Owner);
455 // ReadUUID(reader, "Creator", out item.Creator);
456 // item.Name = reader.ReadElementContentAsString("Name", String.Empty);
457 // item.Description = reader.ReadElementContentAsString("Description", String.Empty);
458 // UInt32.TryParse(reader.ReadElementContentAsString("NextPermissions", String.Empty), out item.NextPermissions);
459 // UInt32.TryParse(reader.ReadElementContentAsString("CurrentPermissions", String.Empty), out item.CurrentPermissions);
460 // UInt32.TryParse(reader.ReadElementContentAsString("BasePermissions", String.Empty), out item.BasePermissions);
461 // UInt32.TryParse(reader.ReadElementContentAsString("EveryOnePermissions", String.Empty), out item.EveryOnePermissions);
462 // UInt32.TryParse(reader.ReadElementContentAsString("GroupPermissions", String.Empty), out item.GroupPermissions);
463 // Int32.TryParse(reader.ReadElementContentAsString("AssetType", String.Empty), out item.AssetType);
464 // ReadUUID(reader, "AssetID", out item.AssetID);
465 // ReadUUID(reader, "GroupID", out item.GroupID);
466 // Boolean.TryParse(reader.ReadElementContentAsString("GroupOwned", String.Empty), out item.GroupOwned);
467 // Int32.TryParse(reader.ReadElementContentAsString("SalePrice", String.Empty), out item.SalePrice);
468 // Byte.TryParse(reader.ReadElementContentAsString("SaleType", String.Empty), out item.SaleType);
469 // UInt32.TryParse(reader.ReadElementContentAsString("Flags", String.Empty), out item.Flags);
470 // Int32.TryParse(reader.ReadElementContentAsString("CreationDate", String.Empty), out item.CreationDate);
471 // reader.ReadEndElement();
472 // reader.ReadEndElement();
473 // }
474 // }
475 // catch (Exception ex)
476 // {
477 // m_log.Warn("Failed to parse POST data (expecting InventoryItemBase): " + ex.Message);
478 // agentID = UUID.Zero;
479 // sessionID = UUID.Zero;
480 // return null;
481 // }
482
483 // return item;
484 //}
485
486 //void SerializeBool(Stream stream, bool value)
487 //{
488 // using (XmlWriter writer = XmlWriter.Create(stream))
489 // {
490 // writer.WriteStartDocument();
491 // writer.WriteStartElement("boolean");
492 // writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
493 // writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
494 // writer.WriteString(value.ToString().ToLower());
495 // writer.WriteEndElement();
496 // writer.WriteEndDocument();
497 // writer.Flush();
498 // }
499
500 // stream.Flush();
501 //}
502
503 //void SerializeFolderList(Stream stream, List<InventoryFolder> folders)
504 //{
505 // using (XmlWriter writer = XmlWriter.Create(stream))
506 // {
507 // writer.WriteStartDocument();
508 // writer.WriteStartElement("ArrayOfInventoryFolderBase");
509 // writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
510 // writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
511
512 // if (folders != null)
513 // {
514 // foreach (InventoryFolder folder in folders)
515 // {
516 // writer.WriteStartElement("InventoryFolderBase");
517 // writer.WriteElementString("Name", folder.Name);
518 // WriteUUID(writer, "Owner", folder.Owner);
519 // WriteUUID(writer, "ParentID", folder.ParentID);
520 // WriteUUID(writer, "ID", folder.ID);
521 // writer.WriteElementString("Type", XmlConvert.ToString(folder.Type));
522 // writer.WriteElementString("Version", XmlConvert.ToString(folder.Version));
523 // writer.WriteEndElement();
524 // }
525 // }
526
527 // writer.WriteEndElement();
528 // writer.WriteEndDocument();
529
530 // writer.Flush();
531 // }
532
533 // stream.Flush();
534 //}
535
536 //void SerializeItemList(Stream stream, List<InventoryItem> items)
537 //{
538 // using (XmlWriter writer = XmlWriter.Create(stream))
539 // {
540 // writer.WriteStartDocument();
541 // writer.WriteStartElement("ArrayOfInventoryItemBase");
542 // writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
543 // writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
544
545 // if (items != null)
546 // {
547 // foreach (InventoryItem item in items)
548 // {
549 // writer.WriteStartElement("InventoryItemBase");
550 // WriteUUID(writer, "ID", item.ID);
551 // writer.WriteElementString("InvType", XmlConvert.ToString(item.InvType));
552 // WriteUUID(writer, "Folder", item.Folder);
553 // WriteUUID(writer, "Owner", item.Owner);
554 // WriteUUID(writer, "Creator", item.Creator);
555 // writer.WriteElementString("Name", item.Name);
556 // writer.WriteElementString("Description", item.Description);
557 // writer.WriteElementString("NextPermissions", XmlConvert.ToString(item.NextPermissions));
558 // writer.WriteElementString("CurrentPermissions", XmlConvert.ToString(item.CurrentPermissions));
559 // writer.WriteElementString("BasePermissions", XmlConvert.ToString(item.BasePermissions));
560 // writer.WriteElementString("EveryOnePermissions", XmlConvert.ToString(item.EveryOnePermissions));
561 // writer.WriteElementString("GroupPermissions", XmlConvert.ToString(item.GroupPermissions));
562 // writer.WriteElementString("AssetType", XmlConvert.ToString(item.AssetType));
563 // WriteUUID(writer, "AssetID", item.AssetID);
564 // WriteUUID(writer, "GroupID", item.GroupID);
565 // writer.WriteElementString("GroupOwned", XmlConvert.ToString(item.GroupOwned));
566 // writer.WriteElementString("SalePrice", XmlConvert.ToString(item.SalePrice));
567 // writer.WriteElementString("SaleType", XmlConvert.ToString(item.SaleType));
568 // writer.WriteElementString("Flags", XmlConvert.ToString(item.Flags));
569 // writer.WriteElementString("CreationDate", XmlConvert.ToString(item.CreationDate));
570 // writer.WriteEndElement();
571 // }
572 // }
573
574 // writer.WriteEndElement();
575 // writer.WriteEndDocument();
576
577 // writer.Flush();
578 // }
579
580 // stream.Flush();
581 //}
582
583 //void WriteUUID(XmlWriter writer, string name, UUID id)
584 //{
585 // writer.WriteStartElement(name);
586 // writer.WriteElementString("Guid", XmlConvert.ToString(id.Guid));
587 // writer.WriteEndElement();
588 //}
589
590 //void ReadUUID(XmlReader reader, string name, out UUID id)
591 //{
592 // reader.ReadStartElement(name);
593 // UUID.TryParse(reader.ReadElementContentAsString("Guid", String.Empty), out id);
594 // reader.ReadEndElement();
595 //}
599 } 596 }
600 597
601 #region OpenSim AssetType 598 #region OpenSim AssetType