A bit more work on the AssetCache.
parent
38a800400a
commit
1b8b75d80a
|
@ -571,17 +571,23 @@ namespace OpenSim.Caches
|
||||||
{
|
{
|
||||||
public AssetRequest request;
|
public AssetRequest request;
|
||||||
public event DownloadComplete OnComplete;
|
public event DownloadComplete OnComplete;
|
||||||
|
Thread m_thread;
|
||||||
public TextureSender(AssetRequest req)
|
public TextureSender(AssetRequest req)
|
||||||
{
|
{
|
||||||
request = req;
|
request = req;
|
||||||
//Console.WriteLine("creating worker thread for texture " + req.ImageInfo.FullID.ToStringHyphenated());
|
//Console.WriteLine("creating worker thread for texture " + req.ImageInfo.FullID.ToStringHyphenated());
|
||||||
//Console.WriteLine("texture data length is " + req.ImageInfo.Data.Length);
|
//Console.WriteLine("texture data length is " + req.ImageInfo.Data.Length);
|
||||||
// Console.WriteLine("in " + req.NumPackets + " packets");
|
// Console.WriteLine("in " + req.NumPackets + " packets");
|
||||||
ThreadPool.QueueUserWorkItem(new WaitCallback(SendTexture), new object());
|
//ThreadPool.QueueUserWorkItem(new WaitCallback(SendTexture), new object());
|
||||||
|
|
||||||
|
//need some sort of custom threadpool here, as using the .net one, overloads it and stops the handling of incoming packets etc
|
||||||
|
//but don't really want to create a thread for every texture download
|
||||||
|
m_thread = new Thread(new ThreadStart(SendTexture));
|
||||||
|
m_thread.IsBackground = true;
|
||||||
|
m_thread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendTexture(Object obj)
|
public void SendTexture()
|
||||||
{
|
{
|
||||||
//Console.WriteLine("starting to send sending texture " + request.ImageInfo.FullID.ToStringHyphenated());
|
//Console.WriteLine("starting to send sending texture " + request.ImageInfo.FullID.ToStringHyphenated());
|
||||||
while (request.PacketCounter != request.NumPackets)
|
while (request.PacketCounter != request.NumPackets)
|
||||||
|
|
|
@ -86,7 +86,6 @@ namespace OpenSim.Region
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string MapLayer(string request, string path, string param)
|
public string MapLayer(string request, string path, string param)
|
||||||
{
|
{
|
||||||
|
|
||||||
string res = "<llsd><map><key>AgentData</key><map><key>Flags</key><integer>0</integer></map><key>LayerData</key><array>";
|
string res = "<llsd><map><key>AgentData</key><map><key>Flags</key><integer>0</integer></map><key>LayerData</key><array>";
|
||||||
res += this.BuildLLSDMapLayerResponse();
|
res += this.BuildLLSDMapLayerResponse();
|
||||||
res += "</array></map></llsd>";
|
res += "</array></map></llsd>";
|
||||||
|
@ -119,12 +118,12 @@ namespace OpenSim.Region
|
||||||
|
|
||||||
public string NewAgentInventory(string request, string path, string param)
|
public string NewAgentInventory(string request, string path, string param)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Console.WriteLine("received upload request:"+ request);
|
//Console.WriteLine("received upload request:"+ request);
|
||||||
string res = "";
|
string res = "";
|
||||||
LLUUID newAsset = LLUUID.Random();
|
LLUUID newAsset = LLUUID.Random();
|
||||||
string uploaderPath = capsObjectPath + Util.RandomClass.Next(5000, 7000).ToString("0000");
|
LLUUID newInvItem = LLUUID.Random();
|
||||||
AssetUploader uploader = new AssetUploader(newAsset, uploaderPath, this.httpListener);
|
string uploaderPath = capsObjectPath + Util.RandomClass.Next(5000, 8000).ToString("0000");
|
||||||
|
AssetUploader uploader = new AssetUploader(newAsset,newInvItem, uploaderPath, this.httpListener);
|
||||||
httpListener.AddRestHandler("POST", "/CAPS/" + uploaderPath, uploader.uploaderCaps);
|
httpListener.AddRestHandler("POST", "/CAPS/" + uploaderPath, uploader.uploaderCaps);
|
||||||
string uploaderURL = "http://" + httpListenerAddress + ":" + httpListenPort.ToString() + "/CAPS/" + uploaderPath;
|
string uploaderURL = "http://" + httpListenerAddress + ":" + httpListenPort.ToString() + "/CAPS/" + uploaderPath;
|
||||||
Console.WriteLine("uploader url is " + uploaderURL);
|
Console.WriteLine("uploader url is " + uploaderURL);
|
||||||
|
@ -157,11 +156,12 @@ namespace OpenSim.Region
|
||||||
|
|
||||||
private string uploaderPath = "";
|
private string uploaderPath = "";
|
||||||
private LLUUID newAssetID;
|
private LLUUID newAssetID;
|
||||||
//private LLUUID inventoryItemID;
|
private LLUUID inventoryItemID;
|
||||||
private BaseHttpServer httpListener;
|
private BaseHttpServer httpListener;
|
||||||
public AssetUploader(LLUUID assetID, string path,BaseHttpServer httpServer)
|
public AssetUploader(LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer)
|
||||||
{
|
{
|
||||||
newAssetID = assetID;
|
newAssetID = assetID;
|
||||||
|
inventoryItemID = inventoryItem;
|
||||||
uploaderPath = path;
|
uploaderPath = path;
|
||||||
httpListener = httpServer;
|
httpListener = httpServer;
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ namespace OpenSim.Region
|
||||||
Encoding _enc = System.Text.Encoding.UTF8;
|
Encoding _enc = System.Text.Encoding.UTF8;
|
||||||
byte[] data = _enc.GetBytes(request);
|
byte[] data = _enc.GetBytes(request);
|
||||||
//Console.WriteLine("recieved upload " + Util.FieldToString(data));
|
//Console.WriteLine("recieved upload " + Util.FieldToString(data));
|
||||||
LLUUID inv = LLUUID.Random();
|
LLUUID inv = this.inventoryItemID;
|
||||||
string res = "";
|
string res = "";
|
||||||
res += "<llsd><map>";
|
res += "<llsd><map>";
|
||||||
res += "<key>new_asset</key><string>" + newAssetID.ToStringHyphenated() + "</string>";
|
res += "<key>new_asset</key><string>" + newAssetID.ToStringHyphenated() + "</string>";
|
||||||
|
|
|
@ -422,10 +422,6 @@ namespace OpenSim.Region.Scenes
|
||||||
float[] map = this.localStorage.LoadWorld();
|
float[] map = this.localStorage.LoadWorld();
|
||||||
if (map == null)
|
if (map == null)
|
||||||
{
|
{
|
||||||
// Console.WriteLine("creating new terrain");
|
|
||||||
// this.Terrain.hills();
|
|
||||||
|
|
||||||
// this.localStorage.SaveMap(this.Terrain.getHeights1D());
|
|
||||||
if (string.IsNullOrEmpty(this.m_regInfo.estateSettings.terrainFile))
|
if (string.IsNullOrEmpty(this.m_regInfo.estateSettings.terrainFile))
|
||||||
{
|
{
|
||||||
Console.WriteLine("No default terrain, procedurally generating...");
|
Console.WriteLine("No default terrain, procedurally generating...");
|
||||||
|
@ -795,7 +791,6 @@ namespace OpenSim.Region.Scenes
|
||||||
{
|
{
|
||||||
List<MapBlockData> mapBlocks;
|
List<MapBlockData> mapBlocks;
|
||||||
mapBlocks = this.commsManager.GridServer.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
|
mapBlocks = this.commsManager.GridServer.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
|
||||||
Console.WriteLine("number of mapblocks " + mapBlocks.Count +" in "+ minX +" , " + minY + " , "+ maxX + " , "+ maxY);
|
|
||||||
remoteClient.SendMapBlock(mapBlocks);
|
remoteClient.SendMapBlock(mapBlocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -289,6 +289,7 @@ namespace OpenSim
|
||||||
|
|
||||||
if (Asset.Data.Length > 2)
|
if (Asset.Data.Length > 2)
|
||||||
{
|
{
|
||||||
|
//data block should only have data in it, if there is no more data to be uploaded
|
||||||
this.SendCompleteMessage();
|
this.SendCompleteMessage();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue