From 5460f2e035f50aade96b3daa0cb284bcb6faeea7 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 1 Dec 2011 23:24:15 +0000
Subject: refactor: Separate the upload baked texture handler out from
BunchOfCaps
---
.../Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 123 +--------------------
1 file changed, 1 insertion(+), 122 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 07b4df3..98dda36 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -56,8 +56,6 @@ namespace OpenSim.Region.ClientStack.Linden
string assetName, string description, UUID assetID, UUID inventoryItem, UUID parentFolder,
byte[] data, string inventoryType, string assetType);
- public delegate void UploadedBakedTexture(UUID assetID, byte[] data);
-
public delegate UUID UpdateItem(UUID itemID, byte[] data);
public delegate void UpdateTaskScript(UUID itemID, UUID primID, bool isScriptRunning, byte[] data, ref ArrayList errors);
@@ -97,7 +95,6 @@ namespace OpenSim.Region.ClientStack.Linden
private static readonly string m_notecardTaskUpdatePath = "0005/";
// private static readonly string m_fetchInventoryPath = "0006/";
// private static readonly string m_remoteParcelRequestPath = "0009/";// This is in the LandManagementModule.
- private static readonly string m_uploadBakedTexturePath = "0010/";// This is in the LandManagementModule.
// These are callbacks which will be setup by the scene so that we can update scene data when we
@@ -164,8 +161,6 @@ namespace OpenSim.Region.ClientStack.Linden
IRequestHandler req = new RestStreamHandler("POST", capsBase + m_notecardTaskUpdatePath, ScriptTaskInventory);
m_HostCapsObj.RegisterHandler("UpdateScriptTaskInventory", req);
m_HostCapsObj.RegisterHandler("UpdateScriptTask", req);
- m_HostCapsObj.RegisterHandler("UploadBakedTexture", new RestStreamHandler("POST", capsBase + m_uploadBakedTexturePath, UploadBakedTexture));
-
}
catch (Exception e)
{
@@ -331,74 +326,6 @@ namespace OpenSim.Region.ClientStack.Linden
}
///
- /// Handle a request from the client for a Uri to upload a baked texture.
- ///
- ///
- ///
- ///
- ///
- ///
- /// The upload response if the request is successful, null otherwise.
- public string UploadBakedTexture(string request, string path,
- string param, OSHttpRequest httpRequest,
- OSHttpResponse httpResponse)
- {
- try
- {
-// m_log.Debug("[CAPS]: UploadBakedTexture Request in region: " + m_regionName);
-
- string capsBase = "/CAPS/" + m_HostCapsObj.CapsObjectPath;
- string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
-
- BakedTextureUploader uploader =
- new BakedTextureUploader(capsBase + uploaderPath, m_HostCapsObj.HttpListener);
- uploader.OnUpLoad += BakedTextureUploaded;
-
- m_HostCapsObj.HttpListener.AddStreamHandler(
- new BinaryStreamHandler("POST", capsBase + uploaderPath,
- uploader.uploaderCaps));
-
- string protocol = "http://";
-
- if (m_HostCapsObj.SSLCaps)
- protocol = "https://";
-
- string uploaderURL = protocol + m_HostCapsObj.HostName + ":" +
- m_HostCapsObj.Port.ToString() + capsBase + uploaderPath;
-
- LLSDAssetUploadResponse uploadResponse =
- new LLSDAssetUploadResponse();
- uploadResponse.uploader = uploaderURL;
- uploadResponse.state = "upload";
-
- return LLSDHelpers.SerialiseLLSDReply(uploadResponse);
- }
- catch (Exception e)
- {
- m_log.Error("[CAPS]: " + e.ToString());
- }
-
- return null;
- }
-
- ///
- /// Called when a baked texture has been successfully uploaded by a client.
- ///
- ///
- ///
- public void BakedTextureUploaded(UUID assetID, byte[] data)
- {
- // m_log.WarnFormat("[CAPS]: Received baked texture {0}", assetID.ToString());
-
- AssetBase asset;
- asset = new AssetBase(assetID, "Baked Texture", (sbyte)AssetType.Texture, m_HostCapsObj.AgentID.ToString());
- asset.Data = data;
- asset.Temporary = true;
- asset.Local = !m_persistBakedTextures; // Local assets aren't persisted, non-local are
- m_assetService.Store(asset);
- }
-
- ///
/// Called when new asset data for an agent inventory item update has been uploaded.
///
/// Item to update
@@ -1067,6 +994,7 @@ namespace OpenSim.Region.ClientStack.Linden
// XXX Maybe this should be some meaningful error packet
return null;
}
+
///Left this in and commented in case there are unforseen issues
//private void SaveAssetToFile(string filename, byte[] data)
//{
@@ -1090,53 +1018,4 @@ namespace OpenSim.Region.ClientStack.Linden
fs.Close();
}
}
-
- public class BakedTextureUploader
- {
- public event UploadedBakedTexture OnUpLoad;
- private UploadedBakedTexture handlerUpLoad = null;
-
- private string uploaderPath = String.Empty;
- private UUID newAssetID;
- private IHttpServer httpListener;
-
- public BakedTextureUploader(string path, IHttpServer httpServer)
- {
- newAssetID = UUID.Random();
- uploaderPath = path;
- httpListener = httpServer;
- // m_log.InfoFormat("[CAPS] baked texture upload starting for {0}",newAssetID);
- }
-
- ///
- /// Handle raw uploaded baked texture data.
- ///
- ///
- ///
- ///
- ///
- public string uploaderCaps(byte[] data, string path, string param)
- {
- handlerUpLoad = OnUpLoad;
- if (handlerUpLoad != null)
- {
- Util.FireAndForget(delegate(object o) { handlerUpLoad(newAssetID, data); });
- }
-
- string res = String.Empty;
- LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete();
- uploadComplete.new_asset = newAssetID.ToString();
- uploadComplete.new_inventory_item = UUID.Zero;
- uploadComplete.state = "complete";
-
- res = LLSDHelpers.SerialiseLLSDReply(uploadComplete);
-
- httpListener.RemoveStreamHandler("POST", uploaderPath);
-
- // m_log.InfoFormat("[CAPS] baked texture upload completed for {0}",newAssetID);
-
- return res;
- }
- }
-
}
\ No newline at end of file
--
cgit v1.1