Converted AssetManager to the new event model.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3286 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -17,7 +17,7 @@ namespace OpenMetaverse.TestClient
|
||||
/// Create a Synchronization event object
|
||||
/// </summary>
|
||||
private static AutoResetEvent xferTimeout = new AutoResetEvent(false);
|
||||
|
||||
|
||||
/// <summary>A string we use to report the result of the request with.</summary>
|
||||
private static System.Text.StringBuilder result = new System.Text.StringBuilder();
|
||||
|
||||
@@ -44,21 +44,22 @@ namespace OpenMetaverse.TestClient
|
||||
{
|
||||
int timeout = 120000; // default the timeout to 2 minutes
|
||||
fileName = Client.Network.CurrentSim.Name + ".raw";
|
||||
|
||||
if(args.Length > 0 && int.TryParse(args[0], out timeout) != true)
|
||||
|
||||
if (args.Length > 0 && int.TryParse(args[0], out timeout) != true)
|
||||
return "Usage: downloadterrain [timeout]";
|
||||
|
||||
|
||||
// Create a delegate which will be fired when the simulator receives our download request
|
||||
// Starts the actual transfer request
|
||||
AssetManager.InitiateDownloadCallback initiateDownloadDelegate = delegate(string simFilename, string viewerFileName) {
|
||||
Client.Assets.RequestAssetXfer(simFilename, false, false, UUID.Zero, AssetType.Unknown, false);
|
||||
};
|
||||
EventHandler<InitiateDownloadEventArgs> initiateDownloadDelegate =
|
||||
delegate(object sender, InitiateDownloadEventArgs e)
|
||||
{
|
||||
Client.Assets.RequestAssetXfer(e.SimFileName, false, false, UUID.Zero, AssetType.Unknown, false);
|
||||
};
|
||||
|
||||
// Subscribe to the event that will tell us the status of the download
|
||||
Client.Assets.OnXferReceived += new AssetManager.XferReceivedCallback(Assets_OnXferReceived);
|
||||
|
||||
Client.Assets.XferReceived += new EventHandler<XferReceivedEventArgs>(Assets_XferReceived);
|
||||
// subscribe to the event which tells us when the simulator has received our request
|
||||
Client.Assets.OnInitiateDownload += initiateDownloadDelegate;
|
||||
Client.Assets.InitiateDownload += initiateDownloadDelegate;
|
||||
|
||||
// configure request to tell the simulator to send us the file
|
||||
List<string> parameters = new List<string>();
|
||||
@@ -74,8 +75,8 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
|
||||
// unsubscribe from events
|
||||
Client.Assets.OnInitiateDownload -= initiateDownloadDelegate;
|
||||
Client.Assets.OnXferReceived -= new AssetManager.XferReceivedCallback(Assets_OnXferReceived);
|
||||
Client.Assets.InitiateDownload -= initiateDownloadDelegate;
|
||||
Client.Assets.XferReceived -= new EventHandler<XferReceivedEventArgs>(Assets_XferReceived);
|
||||
|
||||
// return the result
|
||||
return result.ToString();
|
||||
@@ -84,23 +85,21 @@ namespace OpenMetaverse.TestClient
|
||||
/// <summary>
|
||||
/// Handle the reply to the OnXferReceived event
|
||||
/// </summary>
|
||||
/// <param name="xfer"></param>
|
||||
private void Assets_OnXferReceived(XferDownload xfer)
|
||||
private void Assets_XferReceived(object sender, XferReceivedEventArgs e)
|
||||
{
|
||||
if (xfer.Success)
|
||||
if (e.Xfer.Success)
|
||||
{
|
||||
// set the result message
|
||||
result.AppendFormat("Terrain file {0} ({1} bytes) downloaded successfully, written to {2}", xfer.Filename, xfer.Size, fileName);
|
||||
result.AppendFormat("Terrain file {0} ({1} bytes) downloaded successfully, written to {2}", e.Xfer.Filename, e.Xfer.Size, fileName);
|
||||
|
||||
// write the file to disk
|
||||
FileStream stream = new FileStream(fileName, FileMode.Create);
|
||||
BinaryWriter w = new BinaryWriter(stream);
|
||||
w.Write(xfer.AssetData);
|
||||
w.Write(e.Xfer.AssetData);
|
||||
w.Close();
|
||||
|
||||
// tell the application we've gotten the file
|
||||
xferTimeout.Set();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,8 +33,7 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
// Setup callbacks for upload request reply and progress indicator
|
||||
// so we can detect when the upload is complete
|
||||
Client.Assets.OnUploadProgress += new AssetManager.UploadProgressCallback(Assets_OnUploadProgress);
|
||||
|
||||
Client.Assets.UploadProgress += new EventHandler<AssetUploadEventArgs>(Assets_UploadProgress);
|
||||
byte[] fileData = File.ReadAllBytes(fileName);
|
||||
|
||||
Client.Estate.UploadTerrain(fileData, fileName);
|
||||
@@ -57,17 +56,13 @@ namespace OpenMetaverse.TestClient
|
||||
/// </summary>
|
||||
private void Cleanup()
|
||||
{
|
||||
Client.Assets.OnUploadProgress -= new AssetManager.UploadProgressCallback(Assets_OnUploadProgress);
|
||||
Client.Assets.UploadProgress -= new EventHandler<AssetUploadEventArgs>(Assets_UploadProgress);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="upload"></param>
|
||||
void Assets_OnUploadProgress(AssetUpload upload)
|
||||
void Assets_UploadProgress(object sender, AssetUploadEventArgs e)
|
||||
{
|
||||
if (upload.Transferred == upload.Size)
|
||||
if (e.Upload.Transferred == e.Upload.Size)
|
||||
{
|
||||
WaitForUploadComplete.Set();
|
||||
}
|
||||
|
||||
@@ -52,25 +52,25 @@ namespace OpenMetaverse.TestClient
|
||||
ulong xferID = 0;
|
||||
byte[] data = null;
|
||||
|
||||
AssetManager.XferReceivedCallback xferCallback =
|
||||
delegate(XferDownload xfer)
|
||||
EventHandler<XferReceivedEventArgs> xferCallback =
|
||||
delegate(object sender, XferReceivedEventArgs e)
|
||||
{
|
||||
if (xfer.XferID == xferID)
|
||||
if (e.Xfer.XferID == xferID)
|
||||
{
|
||||
if (xfer.Success)
|
||||
data = xfer.AssetData;
|
||||
if (e.Xfer.Success)
|
||||
data = e.Xfer.AssetData;
|
||||
xferEvent.Set();
|
||||
}
|
||||
};
|
||||
|
||||
Client.Assets.OnXferReceived += xferCallback;
|
||||
Client.Assets.XferReceived += xferCallback;
|
||||
|
||||
filename = assetID + ".asset";
|
||||
xferID = Client.Assets.RequestAssetXfer(filename, false, true, assetID, type, false);
|
||||
|
||||
xferEvent.WaitOne(FETCH_ASSET_TIMEOUT, false);
|
||||
|
||||
Client.Assets.OnXferReceived -= xferCallback;
|
||||
Client.Assets.XferReceived -= xferCallback;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user