diff options
author | Justin Clarke Casey | 2009-05-25 19:54:47 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-05-25 19:54:47 +0000 |
commit | 582c20b1c4fb669884f0e2804487dd050f779f2b (patch) | |
tree | 3152941227a4445f08fa2ff5941890c447b3dfca /OpenSim/Framework/InventoryItemBase.cs | |
parent | One more utility. Not used yet. (diff) | |
download | opensim-SC_OLD-582c20b1c4fb669884f0e2804487dd050f779f2b.zip opensim-SC_OLD-582c20b1c4fb669884f0e2804487dd050f779f2b.tar.gz opensim-SC_OLD-582c20b1c4fb669884f0e2804487dd050f779f2b.tar.bz2 opensim-SC_OLD-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 '')
-rw-r--r-- | OpenSim/Framework/InventoryItemBase.cs | 24 |
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) |