Factor out TaskInventoryItem
							parent
							
								
									7cedb09869
								
							
						
					
					
						commit
						679923ec87
					
				| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
/*
 | 
			
		||||
* Copyright (c) Contributors, http://opensimulator.org/
 | 
			
		||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
 | 
			
		||||
*
 | 
			
		||||
* Redistribution and use in source and binary forms, with or without
 | 
			
		||||
* modification, are permitted provided that the following conditions are met:
 | 
			
		||||
*     * Redistributions of source code must retain the above copyright
 | 
			
		||||
*       notice, this list of conditions and the following disclaimer.
 | 
			
		||||
*     * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
*       notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
*       documentation and/or other materials provided with the distribution.
 | 
			
		||||
*     * Neither the name of the OpenSim Project nor the
 | 
			
		||||
*       names of its contributors may be used to endorse or promote products
 | 
			
		||||
*       derived from this software without specific prior written permission.
 | 
			
		||||
*
 | 
			
		||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
 | 
			
		||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
			
		||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
 | 
			
		||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
			
		||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
* 
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
using libsecondlife;
 | 
			
		||||
 | 
			
		||||
namespace OpenSim.Framework
 | 
			
		||||
{
 | 
			
		||||
    public class TaskInventoryItem
 | 
			
		||||
    {
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// XXX This should really be factored out into some constants class.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        private const uint FULL_MASK_PERMISSIONS_GENERAL = 2147483647;
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Inventory types
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string[] InvTypes = new string[]
 | 
			
		||||
        {
 | 
			
		||||
            "texture",
 | 
			
		||||
            "sound",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "lsl_text",
 | 
			
		||||
            ""
 | 
			
		||||
        };
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Asset types
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string[] Types = new string[]
 | 
			
		||||
        {
 | 
			
		||||
            "texture",
 | 
			
		||||
            "sound",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "",
 | 
			
		||||
            "lsltext",
 | 
			
		||||
            ""
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        public LLUUID item_id = LLUUID.Zero;
 | 
			
		||||
        public LLUUID parent_id = LLUUID.Zero; //parent folder id 
 | 
			
		||||
 | 
			
		||||
        public uint base_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
        public uint owner_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
        public uint group_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
        public uint everyone_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
        public uint next_owner_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
        public LLUUID creator_id = LLUUID.Zero;
 | 
			
		||||
        public LLUUID owner_id = LLUUID.Zero;
 | 
			
		||||
        public LLUUID last_owner_id = LLUUID.Zero;
 | 
			
		||||
        public LLUUID group_id = LLUUID.Zero;
 | 
			
		||||
 | 
			
		||||
        public LLUUID asset_id = LLUUID.Zero;
 | 
			
		||||
        public string type = "";
 | 
			
		||||
        public string inv_type = "";
 | 
			
		||||
        public uint flags = 0;
 | 
			
		||||
        public string name = "";
 | 
			
		||||
        public string desc = "";
 | 
			
		||||
        public uint creation_date = 0;
 | 
			
		||||
 | 
			
		||||
        public LLUUID ParentPartID = LLUUID.Zero;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1178,15 +1178,15 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
            SceneObjectPart part = GetChildPart(localID);
 | 
			
		||||
            if (part != null)
 | 
			
		||||
            {
 | 
			
		||||
                SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem();
 | 
			
		||||
                TaskInventoryItem taskItem = new TaskInventoryItem();
 | 
			
		||||
                taskItem.item_id = item.inventoryID;
 | 
			
		||||
                taskItem.asset_id = item.assetID;
 | 
			
		||||
                taskItem.name = item.inventoryName;
 | 
			
		||||
                taskItem.desc = item.inventoryDescription;
 | 
			
		||||
                taskItem.owner_id = item.avatarID;
 | 
			
		||||
                taskItem.creator_id = item.creatorsID;
 | 
			
		||||
                taskItem.type = SceneObjectPart.TaskInventoryItem.Types[item.assetType];
 | 
			
		||||
                taskItem.inv_type = SceneObjectPart.TaskInventoryItem.Types[item.invType];
 | 
			
		||||
                taskItem.type = TaskInventoryItem.Types[item.assetType];
 | 
			
		||||
                taskItem.inv_type = TaskInventoryItem.Types[item.invType];
 | 
			
		||||
                part.AddInventoryItem(taskItem);
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -1200,15 +1200,15 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
                SceneObjectPart part = GetChildPart(localID);
 | 
			
		||||
                if (part != null)
 | 
			
		||||
                {
 | 
			
		||||
                    SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem();
 | 
			
		||||
                    TaskInventoryItem taskItem = new TaskInventoryItem();
 | 
			
		||||
                    taskItem.item_id = copyItemID;
 | 
			
		||||
                    taskItem.asset_id = item.assetID;
 | 
			
		||||
                    taskItem.name = item.inventoryName;
 | 
			
		||||
                    taskItem.desc = item.inventoryDescription;
 | 
			
		||||
                    taskItem.owner_id = new LLUUID(item.avatarID.ToString());
 | 
			
		||||
                    taskItem.creator_id = new LLUUID(item.creatorsID.ToString());
 | 
			
		||||
                    taskItem.type = SceneObjectPart.TaskInventoryItem.Types[item.assetType];
 | 
			
		||||
                    taskItem.inv_type = SceneObjectPart.TaskInventoryItem.InvTypes[item.invType];
 | 
			
		||||
                    taskItem.type = TaskInventoryItem.Types[item.assetType];
 | 
			
		||||
                    taskItem.inv_type = TaskInventoryItem.InvTypes[item.invType];
 | 
			
		||||
                    part.AddInventoryItem(taskItem);
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1736,73 +1736,5 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
            {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public class TaskInventoryItem
 | 
			
		||||
        {
 | 
			
		||||
            /// <summary>
 | 
			
		||||
            /// Inventory types
 | 
			
		||||
            /// </summary>
 | 
			
		||||
            public static string[] InvTypes = new string[]
 | 
			
		||||
            {
 | 
			
		||||
                "texture",
 | 
			
		||||
                "sound",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "lsl_text",
 | 
			
		||||
                ""
 | 
			
		||||
            };
 | 
			
		||||
            
 | 
			
		||||
            /// <summary>
 | 
			
		||||
            /// Asset types
 | 
			
		||||
            /// </summary>
 | 
			
		||||
            public static string[] Types = new string[]
 | 
			
		||||
            {
 | 
			
		||||
                "texture",
 | 
			
		||||
                "sound",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "",
 | 
			
		||||
                "lsltext",
 | 
			
		||||
                ""
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            public LLUUID item_id = LLUUID.Zero;
 | 
			
		||||
            public LLUUID parent_id = LLUUID.Zero; //parent folder id 
 | 
			
		||||
 | 
			
		||||
            public uint base_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
            public uint owner_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
            public uint group_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
            public uint everyone_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
            public uint next_owner_mask = FULL_MASK_PERMISSIONS_GENERAL;
 | 
			
		||||
            public LLUUID creator_id = LLUUID.Zero;
 | 
			
		||||
            public LLUUID owner_id = LLUUID.Zero;
 | 
			
		||||
            public LLUUID last_owner_id = LLUUID.Zero;
 | 
			
		||||
            public LLUUID group_id = LLUUID.Zero;
 | 
			
		||||
 | 
			
		||||
            public LLUUID asset_id = LLUUID.Zero;
 | 
			
		||||
            public string type = "";
 | 
			
		||||
            public string inv_type = "";
 | 
			
		||||
            public uint flags = 0;
 | 
			
		||||
            public string name = "";
 | 
			
		||||
            public string desc = "";
 | 
			
		||||
            public uint creation_date = 0;
 | 
			
		||||
 | 
			
		||||
            public LLUUID ParentPartID = LLUUID.Zero;
 | 
			
		||||
 | 
			
		||||
            public TaskInventoryItem()
 | 
			
		||||
            {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -340,11 +340,11 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
            String sql = String.Format("primID = '{0}'", prim.UUID.ToString());            
 | 
			
		||||
            DataRow[] dbItemRows = dbItems.Select(sql);
 | 
			
		||||
            
 | 
			
		||||
            IList<SceneObjectPart.TaskInventoryItem> inventory = new List<SceneObjectPart.TaskInventoryItem>();
 | 
			
		||||
            IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
 | 
			
		||||
            
 | 
			
		||||
            foreach (DataRow row in dbItemRows)
 | 
			
		||||
            {
 | 
			
		||||
                SceneObjectPart.TaskInventoryItem item = buildItem(row);
 | 
			
		||||
                TaskInventoryItem item = buildItem(row);
 | 
			
		||||
                inventory.Add(item);
 | 
			
		||||
                
 | 
			
		||||
                MainLog.Instance.Verbose("DATASTORE", "Restored item {0}, {1}", item.name, item.item_id); 
 | 
			
		||||
| 
						 | 
				
			
			@ -897,9 +897,9 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        /// <param name="row"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        private SceneObjectPart.TaskInventoryItem buildItem(DataRow row)
 | 
			
		||||
        private TaskInventoryItem buildItem(DataRow row)
 | 
			
		||||
        {
 | 
			
		||||
            SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem();
 | 
			
		||||
            TaskInventoryItem taskItem = new TaskInventoryItem();
 | 
			
		||||
            
 | 
			
		||||
            taskItem.item_id         = new LLUUID((String)row["itemID"]); 
 | 
			
		||||
            taskItem.ParentPartID    = new LLUUID((String)row["primID"]);
 | 
			
		||||
| 
						 | 
				
			
			@ -1069,7 +1069,7 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
            row["SitTargetOrientZ"] = sitTargetOrient.Z;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private void fillItemRow(DataRow row, SceneObjectPart.TaskInventoryItem taskItem)
 | 
			
		||||
        private void fillItemRow(DataRow row, TaskInventoryItem taskItem)
 | 
			
		||||
        {
 | 
			
		||||
            row["itemID"] = taskItem.item_id;
 | 
			
		||||
            row["primID"] = taskItem.ParentPartID;
 | 
			
		||||
| 
						 | 
				
			
			@ -1271,7 +1271,7 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
        /// <param name="primID"></param>
 | 
			
		||||
        /// <param name="items"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        private void addPrimInventory(LLUUID primID, IDictionary<LLUUID, SceneObjectPart.TaskInventoryItem> items)
 | 
			
		||||
        private void addPrimInventory(LLUUID primID, IDictionary<LLUUID, TaskInventoryItem> items)
 | 
			
		||||
        {
 | 
			
		||||
            MainLog.Instance.Verbose("DATASTORE", "Entered addPrimInventory with prim ID {0}", primID);
 | 
			
		||||
            
 | 
			
		||||
| 
						 | 
				
			
			@ -1283,8 +1283,8 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
            
 | 
			
		||||
            // Build structures for manipulation purposes
 | 
			
		||||
            IDictionary<String, DataRow> dbItemsToRemove = new Dictionary<String, DataRow>();
 | 
			
		||||
            ICollection<SceneObjectPart.TaskInventoryItem> itemsToAdd 
 | 
			
		||||
                = new List<SceneObjectPart.TaskInventoryItem>();
 | 
			
		||||
            ICollection<TaskInventoryItem> itemsToAdd 
 | 
			
		||||
                = new List<TaskInventoryItem>();
 | 
			
		||||
            
 | 
			
		||||
            foreach (DataRow row in dbItemRows)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1319,7 +1319,7 @@ namespace OpenSim.DataStore.MonoSqlite
 | 
			
		|||
            }
 | 
			
		||||
            
 | 
			
		||||
            // Insert items not already present 
 | 
			
		||||
            foreach (SceneObjectPart.TaskInventoryItem newItem in itemsToAdd)
 | 
			
		||||
            foreach (TaskInventoryItem newItem in itemsToAdd)
 | 
			
		||||
            {
 | 
			
		||||
                MainLog.Instance.Verbose(
 | 
			
		||||
                    "DATASTORE", 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue