diff options
author | Justin Clarke Casey | 2007-12-22 19:48:01 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2007-12-22 19:48:01 +0000 |
commit | c470efea5734e4515baaf9023f2f2b2cd724725c (patch) | |
tree | 23c6c1d80fe1c8995644c2e51002290de7216048 /OpenSim/Region | |
parent | minor refactor (diff) | |
download | opensim-SC-c470efea5734e4515baaf9023f2f2b2cd724725c.zip opensim-SC-c470efea5734e4515baaf9023f2f2b2cd724725c.tar.gz opensim-SC-c470efea5734e4515baaf9023f2f2b2cd724725c.tar.bz2 opensim-SC-c470efea5734e4515baaf9023f2f2b2cd724725c.tar.xz |
Make copying of scripts into prim inventories more reliable on the first attempt when the asset server is lagging by formalising the de facto polling.
This may not be the best solution in the long run, but should improve things for now.
This may also improve reliability when updating inventory item metadata (e.g. renaming an item) and in retrieving textures
for the main map view.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 43 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | 7 |
3 files changed, 32 insertions, 30 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 34a9b09..9e695ea 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -130,7 +130,7 @@ namespace OpenSim.Region.ClientStack | |||
130 | } | 130 | } |
131 | 131 | ||
132 | /// <summary> | 132 | /// <summary> |
133 | /// | 133 | /// First name of the agent/avatar represented by the client |
134 | /// </summary> | 134 | /// </summary> |
135 | public string FirstName | 135 | public string FirstName |
136 | { | 136 | { |
@@ -138,12 +138,20 @@ namespace OpenSim.Region.ClientStack | |||
138 | } | 138 | } |
139 | 139 | ||
140 | /// <summary> | 140 | /// <summary> |
141 | /// | 141 | /// Last name of the agent/avatar represented by the client |
142 | /// </summary> | 142 | /// </summary> |
143 | public string LastName | 143 | public string LastName |
144 | { | 144 | { |
145 | get { return m_lastName; } | 145 | get { return m_lastName; } |
146 | } | 146 | } |
147 | |||
148 | /// <summary> | ||
149 | /// Full name of the client (first name and last name) | ||
150 | /// </summary> | ||
151 | public string Name | ||
152 | { | ||
153 | get { return FirstName + " " + LastName; } | ||
154 | } | ||
147 | 155 | ||
148 | public uint CircuitCode | 156 | public uint CircuitCode |
149 | { | 157 | { |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index efd96d2..2d0ffd8 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -429,16 +429,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
429 | //group.AddInventoryItem(rmoteClient, primLocalID, null); | 429 | //group.AddInventoryItem(rmoteClient, primLocalID, null); |
430 | MainLog.Instance.Verbose( | 430 | MainLog.Instance.Verbose( |
431 | "PRIMINVENTORY", | 431 | "PRIMINVENTORY", |
432 | "UpdateTaskInventory called with item {0}, folder {1}, primLocalID {2}", | 432 | "UpdateTaskInventory called with script {0}, folder {1}, primLocalID {2}, user {3}", |
433 | itemID, folderID, primLocalID); | 433 | itemID, folderID, primLocalID, remoteClient.Name); |
434 | } | 434 | } |
435 | else | 435 | else |
436 | { | 436 | { |
437 | MainLog.Instance.Warn( | 437 | MainLog.Instance.Warn( |
438 | "PRIMINVENTORY", | 438 | "PRIMINVENTORY", |
439 | "Update with item {0} requested of prim {1} but this prim does not exist", | 439 | "Update with script {0} requested of prim {1} for {2} but this prim does not exist", |
440 | itemID, | 440 | itemID, primLocalID, remoteClient.Name); |
441 | primLocalID); | ||
442 | } | 441 | } |
443 | } | 442 | } |
444 | 443 | ||
@@ -465,14 +464,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
465 | { | 464 | { |
466 | isTexture = true; | 465 | isTexture = true; |
467 | } | 466 | } |
467 | |||
468 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, isTexture); | 468 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, isTexture); |
469 | 469 | ||
470 | if (rezAsset == null) | ||
471 | { | ||
472 | // lets try once more in case the asset cache is being slow getting the asset from server | ||
473 | rezAsset = AssetCache.GetAsset(item.assetID, isTexture); | ||
474 | } | ||
475 | |||
476 | if (rezAsset != null) | 470 | if (rezAsset != null) |
477 | { | 471 | { |
478 | string script = Util.FieldToString(rezAsset.Data); | 472 | string script = Util.FieldToString(rezAsset.Data); |
@@ -489,32 +483,35 @@ namespace OpenSim.Region.Environment.Scenes | |||
489 | // TODO: do we care about the value of this bool? | 483 | // TODO: do we care about the value of this bool? |
490 | group.AddInventoryItem(remoteClient, localID, item, copyID); | 484 | group.AddInventoryItem(remoteClient, localID, item, copyID); |
491 | group.GetProperites(remoteClient); | 485 | group.GetProperites(remoteClient); |
486 | |||
487 | MainLog.Instance.Verbose( | ||
488 | "PRIMINVENTORY", | ||
489 | "Rezzed script {0} (asset {1}) into prim {2} for user {3}", | ||
490 | item.inventoryName, rezAsset.FullID, localID, remoteClient.Name); | ||
492 | } | 491 | } |
493 | else | 492 | else |
494 | { | 493 | { |
495 | MainLog.Instance.Warn( | 494 | MainLog.Instance.Warn( |
496 | "PRIMINVENTORY", | 495 | "PRIMINVENTORY", |
497 | "Could not rez item {0} into prim {1}" | 496 | "Could not rez script {0} into prim {1} for user {2}" |
498 | + " because the prim could not be found in the region!", | 497 | + " because the prim could not be found in the region!", |
499 | item.inventoryName, | 498 | item.inventoryName, localID, remoteClient.Name); |
500 | localID); | ||
501 | } | 499 | } |
502 | } | 500 | } |
503 | else | 501 | else |
504 | { | 502 | { |
505 | MainLog.Instance.Warn( | 503 | MainLog.Instance.Warn( |
506 | "PRIMINVENTORY", | 504 | "PRIMINVENTORY", |
507 | "Could not rez item {0} into prim {1}" | 505 | "Could not rez script {0} into prim {1} for user {2}" |
508 | + " because the item asset {2} could not be found!", | 506 | + " because the item asset {3} could not be found!", |
509 | item.inventoryName, | 507 | item.inventoryName, localID, item.assetID, remoteClient.Name); |
510 | localID, | ||
511 | item.assetID); | ||
512 | } | 508 | } |
513 | } | 509 | } |
514 | else | 510 | else |
515 | { | 511 | { |
516 | MainLog.Instance.Warn( | 512 | MainLog.Instance.Warn( |
517 | "PRIMINVENTORY", "Could not find script inventory item {0} to rez!", itemID); | 513 | "PRIMINVENTORY", "Could not find script inventory item {0} to rez for {1}!", |
514 | itemID, remoteClient.Name); | ||
518 | } | 515 | } |
519 | } | 516 | } |
520 | } | 517 | } |
@@ -625,12 +622,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
625 | { | 622 | { |
626 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, false); | 623 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, false); |
627 | 624 | ||
628 | if (rezAsset == null) | ||
629 | { | ||
630 | // lets try once more in case the asset cache is being slow getting the asset from server | ||
631 | rezAsset = AssetCache.GetAsset(item.assetID, false); | ||
632 | } | ||
633 | |||
634 | if (rezAsset != null) | 625 | if (rezAsset != null) |
635 | { | 626 | { |
636 | AddRezObject(Util.FieldToString(rezAsset.Data), pos); | 627 | AddRezObject(Util.FieldToString(rezAsset.Data), pos); |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index b31784e..ec93362 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | |||
@@ -185,6 +185,11 @@ namespace SimpleApp | |||
185 | { | 185 | { |
186 | get { return lastName; } | 186 | get { return lastName; } |
187 | } | 187 | } |
188 | |||
189 | public virtual String Name | ||
190 | { | ||
191 | get { return FirstName + LastName; } | ||
192 | } | ||
188 | 193 | ||
189 | 194 | ||
190 | public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) | 195 | public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) |
@@ -394,8 +399,6 @@ namespace SimpleApp | |||
394 | 399 | ||
395 | private void Update() | 400 | private void Update() |
396 | { | 401 | { |
397 | Encoding enc = Encoding.ASCII; | ||
398 | |||
399 | if (OnAgentUpdate != null) | 402 | if (OnAgentUpdate != null) |
400 | { | 403 | { |
401 | AgentUpdatePacket pack = new AgentUpdatePacket(); | 404 | AgentUpdatePacket pack = new AgentUpdatePacket(); |