LIBOMV-686 Implements new event patterns based on the Microsoft Framework Design Guidelines in InventoryManager (Not every delegate is converted yet)
LIBOMV-734 Thanks to Douglas R. Miles for converting the events in EstateManager over to new patterns LIBOMV-735 Removes redundant LoggedIn event from NetworkManager, when LoginProgress Status == Success you can reliably send packets to a simulator. If you send before this event is raised, an exception will be thrown and your application will crash, previously your request would just get sent to the bitbucket without any notice, Thanks lkalif for the help getting this bug fixed correctly git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3187 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -139,33 +139,33 @@ namespace OpenMetaverse.TestClient
|
||||
return "Notecard creation failed: " + message;
|
||||
}
|
||||
|
||||
InventoryItem FetchItem(UUID itemID)
|
||||
private InventoryItem FetchItem(UUID itemID)
|
||||
{
|
||||
InventoryItem fetchItem = null;
|
||||
AutoResetEvent fetchItemEvent = new AutoResetEvent(false);
|
||||
|
||||
InventoryManager.ItemReceivedCallback itemReceivedCallback =
|
||||
delegate(InventoryItem item)
|
||||
EventHandler<ItemReceivedEventArgs> itemReceivedCallback =
|
||||
delegate(object sender, ItemReceivedEventArgs e)
|
||||
{
|
||||
if (item.UUID == itemID)
|
||||
if (e.Item.UUID == itemID)
|
||||
{
|
||||
fetchItem = item;
|
||||
fetchItem = e.Item;
|
||||
fetchItemEvent.Set();
|
||||
}
|
||||
};
|
||||
|
||||
Client.Inventory.OnItemReceived += itemReceivedCallback;
|
||||
Client.Inventory.ItemReceived += itemReceivedCallback;
|
||||
|
||||
Client.Inventory.RequestFetchInventory(itemID, Client.Self.AgentID);
|
||||
|
||||
fetchItemEvent.WaitOne(INVENTORY_FETCH_TIMEOUT, false);
|
||||
|
||||
Client.Inventory.OnItemReceived -= itemReceivedCallback;
|
||||
Client.Inventory.ItemReceived -= itemReceivedCallback;
|
||||
|
||||
return fetchItem;
|
||||
}
|
||||
|
||||
string DownloadNotecard(UUID itemID, UUID assetID)
|
||||
private string DownloadNotecard(UUID itemID, UUID assetID)
|
||||
{
|
||||
AutoResetEvent assetDownloadEvent = new AutoResetEvent(false);
|
||||
byte[] notecardData = null;
|
||||
|
||||
@@ -67,20 +67,20 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
bool wasRunning = false;
|
||||
|
||||
InventoryManager.ScriptRunningCallback callback;
|
||||
EventHandler<ScriptRunningReplyEventArgs> callback;
|
||||
using (AutoResetEvent OnScriptRunningReset = new AutoResetEvent(false))
|
||||
{
|
||||
callback = ((UUID objectID0, UUID sctriptID, bool isMono, bool isRunning) =>
|
||||
callback = ((object sender, ScriptRunningReplyEventArgs e) =>
|
||||
{
|
||||
if (objectID0 == objectID)
|
||||
if (e.ObjectID == objectID)
|
||||
{
|
||||
result += String.Format(" IsMono: {0} IsRunning: {1}", isMono, isRunning);
|
||||
wasRunning = isRunning;
|
||||
result += String.Format(" IsMono: {0} IsRunning: {1}", e.IsMono, e.IsRunning);
|
||||
wasRunning = e.IsRunning;
|
||||
OnScriptRunningReset.Set();
|
||||
}
|
||||
});
|
||||
|
||||
Client.Inventory.OnScriptRunning += callback;
|
||||
Client.Inventory.ScriptRunningReply += callback;
|
||||
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
@@ -98,7 +98,7 @@ namespace OpenMetaverse.TestClient
|
||||
if (assetType == AssetType.LSLBytecode || assetType == AssetType.LSLText)
|
||||
{
|
||||
OnScriptRunningReset.Reset();
|
||||
Client.Inventory.GetScriptRunning(objectID, item.UUID);
|
||||
Client.Inventory.RequestGetScriptRunning(objectID, item.UUID);
|
||||
if (!OnScriptRunningReset.WaitOne(10000, true))
|
||||
{
|
||||
result += " (no script info)";
|
||||
@@ -109,7 +109,7 @@ namespace OpenMetaverse.TestClient
|
||||
{
|
||||
OnScriptRunningReset.Reset();
|
||||
result += " Setting " + setTaskTo + " => ";
|
||||
Client.Inventory.SetScriptRunning(objectID, item.UUID, setTaskTo);
|
||||
Client.Inventory.RequestSetScriptRunning(objectID, item.UUID, setTaskTo);
|
||||
if (!OnScriptRunningReset.WaitOne(10000, true))
|
||||
{
|
||||
result += " (was not set)";
|
||||
@@ -122,7 +122,7 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
}
|
||||
}
|
||||
Client.Inventory.OnScriptRunning -= callback;
|
||||
Client.Inventory.ScriptRunningReply -= callback;
|
||||
return result;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace OpenMetaverse.TestClient
|
||||
Network.LoginProgress += LoginHandler;
|
||||
Self.IM += Self_IM;
|
||||
Groups.GroupMembersReply += GroupMembersHandler;
|
||||
Inventory.OnObjectOffered += new InventoryManager.ObjectOfferedCallback(Inventory_OnInventoryObjectReceived);
|
||||
Inventory.InventoryObjectOffered += Inventory_OnInventoryObjectReceived;
|
||||
|
||||
Network.RegisterCallback(PacketType.AvatarAppearance, AvatarAppearanceHandler);
|
||||
Network.RegisterCallback(PacketType.AlertMessage, AlertMessageHandler);
|
||||
@@ -189,7 +189,7 @@ namespace OpenMetaverse.TestClient
|
||||
if (p.AgentData.AgentID == e.Simulator.Client.Self.AgentID)
|
||||
{
|
||||
GroupID = p.AgentData.ActiveGroupID;
|
||||
|
||||
|
||||
GroupMembersRequestID = e.Simulator.Client.Groups.RequestGroupMembers(GroupID);
|
||||
}
|
||||
}
|
||||
@@ -219,20 +219,20 @@ namespace OpenMetaverse.TestClient
|
||||
Logger.Log("[AlertMessage] " + Utils.BytesToString(message.AlertData.Message), Helpers.LogLevel.Info, this);
|
||||
}
|
||||
|
||||
private bool Inventory_OnInventoryObjectReceived(InstantMessage offer, AssetType type,
|
||||
UUID objectID, bool fromTask)
|
||||
private void Inventory_OnInventoryObjectReceived(object sender, InventoryObjectOfferedEventArgs e)
|
||||
{
|
||||
if (MasterKey != UUID.Zero)
|
||||
{
|
||||
if (offer.FromAgentID != MasterKey)
|
||||
return false;
|
||||
if (e.Offer.FromAgentID != MasterKey)
|
||||
return;
|
||||
}
|
||||
else if (GroupMembers != null && !GroupMembers.ContainsKey(offer.FromAgentID))
|
||||
else if (GroupMembers != null && !GroupMembers.ContainsKey(e.Offer.FromAgentID))
|
||||
{
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
return true;
|
||||
e.Accept = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user