aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/InventoryItemBase.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2009-05-25 19:54:47 +0000
committerJustin Clarke Casey2009-05-25 19:54:47 +0000
commit582c20b1c4fb669884f0e2804487dd050f779f2b (patch)
tree3152941227a4445f08fa2ff5941890c447b3dfca /OpenSim/Framework/InventoryItemBase.cs
parentOne more utility. Not used yet. (diff)
downloadopensim-SC-582c20b1c4fb669884f0e2804487dd050f779f2b.zip
opensim-SC-582c20b1c4fb669884f0e2804487dd050f779f2b.tar.gz
opensim-SC-582c20b1c4fb669884f0e2804487dd050f779f2b.tar.bz2
opensim-SC-582c20b1c4fb669884f0e2804487dd050f779f2b.tar.xz
* reseparate inventory item creator id and creator uuid
* unfortunately, while the client requires uuids and we want to be able to have arbitrary string ids, these cannot be kept in sync * I think the problems last time were due to a serialization change * So the major inteface version has been bumped to take care of any lingering issues here. * This means that region servers beyond this revision can only connect to similarly uptodate grid services, and vice versa
Diffstat (limited to 'OpenSim/Framework/InventoryItemBase.cs')
-rw-r--r--OpenSim/Framework/InventoryItemBase.cs24
1 files changed, 18 insertions, 6 deletions
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs
index 2968712..cab241e 100644
--- a/OpenSim/Framework/InventoryItemBase.cs
+++ b/OpenSim/Framework/InventoryItemBase.cs
@@ -84,26 +84,38 @@ namespace OpenSim.Framework
84 m_creatorId = value; 84 m_creatorId = value;
85 } 85 }
86 } 86 }
87 protected string m_creatorId;
87 88
88 protected string m_creatorId = UUID.Zero.ToString();
89 /// <value> 89 /// <value>
90 /// The creator of this item expressed as a UUID. Database plugins don't need to set this, it will be set by 90 /// The UUID for the creator. This may be different from the canonical CreatorId. This property is used
91 /// for communication with the client over the Second Life protocol, since that protocol can only understand
92 /// UUIDs. As this is a basic framework class, this means that both the string creator id and the uuid
93 /// reference have to be settable separately
94 ///
95 /// Database plugins don't need to set this, it will be set by
91 /// upstream code (or set by the get accessor if left unset). 96 /// upstream code (or set by the get accessor if left unset).
97 ///
98 /// XXX: An alternative to having a separate uuid property would be to hash the CreatorId appropriately
99 /// every time there was communication with a UUID-only client. This may be much more expensive.
92 /// </value> 100 /// </value>
93 public UUID CreatorIdAsUuid 101 public UUID CreatorIdAsUuid
94 { 102 {
95 get 103 get
96 { 104 {
97 UUID temp = UUID.Zero; 105 if (UUID.Zero == m_creatorIdAsUuid)
98 UUID.TryParse(CreatorId, out temp); 106 {
99 return temp; 107 UUID.TryParse(CreatorId, out m_creatorIdAsUuid);
108 }
109
110 return m_creatorIdAsUuid;
100 } 111 }
101 112
102 set 113 set
103 { 114 {
104 CreatorId = value.ToString(); 115 m_creatorIdAsUuid = value;
105 } 116 }
106 } 117 }
118 protected UUID m_creatorIdAsUuid = UUID.Zero;
107 119
108 /// <value> 120 /// <value>
109 /// The description of the inventory item (must be less than 64 characters) 121 /// The description of the inventory item (must be less than 64 characters)