* Encapsulated all CommunicationsManager services

afrisby
lbsa71 2007-09-24 05:15:13 +00:00
parent 13c1c33ed4
commit 40468f18a4
18 changed files with 225 additions and 178 deletions

View File

@ -37,7 +37,7 @@ using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities; using OpenSim.Framework.Utilities;
namespace OpenSim.Framework.Communications.Caches namespace OpenSim.Framework.Communications.Cache
{ {
public delegate void DownloadComplete(AssetCache.TextureSender sender); public delegate void DownloadComplete(AssetCache.TextureSender sender);
@ -180,7 +180,7 @@ namespace OpenSim.Framework.Communications.Caches
public void DeleteAsset(LLUUID assetID) public void DeleteAsset(LLUUID assetID)
{ {
// this._assetServer.DeleteAsset(assetID); // this._assetServer.DeleteAsset(assetID);
//Todo should delete it from memory too //Todo should delete it from memory too
} }
@ -268,7 +268,7 @@ namespace OpenSim.Framework.Communications.Caches
if (this.SendingTextures.ContainsKey(sender.request.ImageInfo.FullID)) if (this.SendingTextures.ContainsKey(sender.request.ImageInfo.FullID))
{ {
this.SendingTextures.Remove(sender.request.ImageInfo.FullID); this.SendingTextures.Remove(sender.request.ImageInfo.FullID);
// this.AvatarRecievedTextures[sender.request.RequestUser.AgentId].Add(sender.request.ImageInfo.FullID); // this.AvatarRecievedTextures[sender.request.RequestUser.AgentId].Add(sender.request.ImageInfo.FullID);
} }
} }
@ -791,5 +791,4 @@ namespace OpenSim.Framework.Communications.Caches
} }
} }
} }
} }

View File

@ -31,10 +31,10 @@ using System.Collections.Generic;
using System.Text; using System.Text;
using System.IO; using System.IO;
using libsecondlife; using libsecondlife;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities; using OpenSim.Framework.Utilities;
using OpenSim.Framework.Communications.Caches;
using OpenSim.Framework.Data; using OpenSim.Framework.Data;
namespace OpenSim.Region.Capabilities namespace OpenSim.Region.Capabilities

View File

@ -28,6 +28,7 @@
using System.Text; using System.Text;
using libsecondlife; using libsecondlife;
using libsecondlife.Packets; using libsecondlife.Packets;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Data; using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
@ -40,33 +41,80 @@ namespace OpenSim.Framework.Communications
public class CommunicationsManager public class CommunicationsManager
{ {
public IUserServices UserServer;
public IGridServices GridServer;
public IInventoryServices InventoryServer;
public IInterRegionCommunications InterRegion;
public UserProfileCache UserProfiles;
public AssetTransactionManager TransactionsManager;
public AssetCache AssetCache;
public NetworkServersInfo ServersInfo;
public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache) public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache)
{ {
ServersInfo = serversInfo; this.serversInfo = serversInfo;
this.AssetCache = assetCache; this.m_assetCache = assetCache;
UserProfiles = new UserProfileCache(this); m_userProfiles = new UserProfileCache(this);
TransactionsManager = new AssetTransactionManager(this); m_transactionsManager = new AssetTransactionManager(this);
}
private IUserServices m_userServer;
public IUserServices UserServer
{
get { return m_userServer; }
set { m_userServer = value; }
}
private IGridServices m_gridServer;
public IGridServices GridServer
{
get { return m_gridServer; }
set { m_gridServer = value; }
}
private IInventoryServices m_inventoryServer;
public IInventoryServices InventoryServer
{
get { return m_inventoryServer; }
set { m_inventoryServer = value; }
}
private IInterRegionCommunications m_interRegion;
public IInterRegionCommunications InterRegion
{
get { return m_interRegion; }
set { m_interRegion = value; }
}
private UserProfileCache m_userProfiles;
public UserProfileCache UserProfiles
{
get { return m_userProfiles; }
set { m_userProfiles = value; }
}
private AssetTransactionManager m_transactionsManager;
public AssetTransactionManager TransactionsManager
{
get { return m_transactionsManager; }
set { m_transactionsManager = value; }
}
private AssetCache m_assetCache;
public AssetCache AssetCache
{
get { return m_assetCache; }
set { m_assetCache = value; }
}
private NetworkServersInfo serversInfo;
public NetworkServersInfo ServersInfo
{
get { return serversInfo; }
set { serversInfo = value; }
} }
#region Packet Handlers #region Packet Handlers
public void HandleUUIDNameRequest(LLUUID uuid, IClientAPI remote_client) public void HandleUUIDNameRequest(LLUUID uuid, IClientAPI remote_client)
{ {
if (uuid == UserProfiles.libraryRoot.agentID) if (uuid == m_userProfiles.libraryRoot.agentID)
{ {
remote_client.SendNameReply(uuid , "Mr" , "OpenSim"); remote_client.SendNameReply(uuid , "Mr" , "OpenSim");
} }
else else
{ {
UserProfileData profileData = this.UserServer.GetUserProfile(uuid); UserProfileData profileData = this.m_userServer.GetUserProfile(uuid);
if (profileData != null) if (profileData != null)
{ {
LLUUID profileId = profileData.UUID; LLUUID profileId = profileData.UUID;

View File

@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using Nini.Config; using Nini.Config;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Caches; using OpenSim.Framework.Communications.Caches;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
@ -270,7 +271,7 @@ namespace OpenSim
} }
assetServer.SetServerInfo(m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); assetServer.SetServerInfo(m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
m_assetCache = new AssetCache(assetServer); m_assetCache = new AssetCache(assetServer);
// m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); // m_assetCache = new assetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
} }
protected override LogBase CreateLog() protected override LogBase CreateLog()

View File

@ -34,13 +34,12 @@ using System.Timers;
using libsecondlife; using libsecondlife;
using libsecondlife.Packets; using libsecondlife.Packets;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Inventory; using OpenSim.Framework.Inventory;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities; using OpenSim.Framework.Utilities;
using OpenSim.Framework.Communications.Caches;
using Timer = System.Timers.Timer; using Timer = System.Timers.Timer;
namespace OpenSim.Region.ClientStack namespace OpenSim.Region.ClientStack

View File

@ -30,9 +30,9 @@ using System.Net;
using System.Net.Sockets; using System.Net.Sockets;
using libsecondlife.Packets; using libsecondlife.Packets;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Communications.Caches;
using libsecondlife; using libsecondlife;
namespace OpenSim.Region.ClientStack namespace OpenSim.Region.ClientStack

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net; using System.Net;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Data; using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
@ -39,7 +40,6 @@ using OpenSim.Region.Environment;
using libsecondlife; using libsecondlife;
using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Caches;
namespace OpenSim.Region.ClientStack namespace OpenSim.Region.ClientStack
{ {

View File

@ -31,10 +31,10 @@ using System.Net;
using System.Net.Sockets; using System.Net.Sockets;
using libsecondlife.Packets; using libsecondlife.Packets;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Communications.Caches;
namespace OpenSim.Region.ClientStack namespace OpenSim.Region.ClientStack
{ {

View File

@ -27,9 +27,9 @@
*/ */
using System; using System;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Communications.Caches;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Utilities; using OpenSim.Framework.Utilities;
using OpenSim.Framework.Data; using OpenSim.Framework.Data;

View File

@ -1,8 +1,8 @@
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Communications.Caches;
namespace OpenSim.Region.Communications.OGS1 namespace OpenSim.Region.Communications.OGS1
{ {

View File

@ -320,7 +320,7 @@ namespace OpenSim.Region.Communications.OGS1
return new XmlRpcResponse(); return new XmlRpcResponse();
} }
#region InterRegion Comms #region m_interRegion Comms
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>

View File

@ -6,152 +6,152 @@ using OpenSim.Framework.Utilities;
using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Interfaces;
using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.Environment.Modules namespace OpenSim.Region.Environment.Modules
{ {
public class DynamicTextureModule : IRegionModule, IDynamicTextureManager public class DynamicTextureModule : IRegionModule, IDynamicTextureManager
{ {
private Dictionary<LLUUID, Scene> RegisteredScenes = new Dictionary<LLUUID, Scene>(); private Dictionary<LLUUID, Scene> RegisteredScenes = new Dictionary<LLUUID, Scene>();
private Dictionary<string, IDynamicTextureRender> RenderPlugins = private Dictionary<string, IDynamicTextureRender> RenderPlugins =
new Dictionary<string, IDynamicTextureRender>(); new Dictionary<string, IDynamicTextureRender>();
private Dictionary<LLUUID, DynamicTextureUpdater> Updaters = new Dictionary<LLUUID, DynamicTextureUpdater>(); private Dictionary<LLUUID, DynamicTextureUpdater> Updaters = new Dictionary<LLUUID, DynamicTextureUpdater>();
public void Initialise(Scene scene) public void Initialise(Scene scene)
{
if (!RegisteredScenes.ContainsKey(scene.RegionInfo.SimUUID))
{
RegisteredScenes.Add(scene.RegionInfo.SimUUID, scene);
scene.RegisterModuleInterface<IDynamicTextureManager>(this);
}
}
public void PostInitialise()
{ {
} if (!RegisteredScenes.ContainsKey(scene.RegionInfo.SimUUID))
{
public void CloseDown() RegisteredScenes.Add(scene.RegionInfo.SimUUID, scene);
{ scene.RegisterModuleInterface<IDynamicTextureManager>(this);
} }
}
public string GetName()
{ public void PostInitialise()
return "DynamicTextureModule"; {
} }
public bool IsSharedModule() public void CloseDown()
{ {
return true; }
}
public string GetName()
public void RegisterRender(string handleType, IDynamicTextureRender render) {
{ return "DynamicTextureModule";
if (!RenderPlugins.ContainsKey(handleType)) }
{
RenderPlugins.Add(handleType, render); public bool IsSharedModule()
} {
} return true;
}
public void ReturnData(LLUUID id, byte[] data)
{ public void RegisterRender(string handleType, IDynamicTextureRender render)
if (Updaters.ContainsKey(id)) {
{ if (!RenderPlugins.ContainsKey(handleType))
DynamicTextureUpdater updater = Updaters[id]; {
if (RegisteredScenes.ContainsKey(updater.SimUUID)) RenderPlugins.Add(handleType, render);
{ }
Scene scene = RegisteredScenes[updater.SimUUID]; }
updater.DataReceived(data, scene);
} public void ReturnData(LLUUID id, byte[] data)
} {
} if (Updaters.ContainsKey(id))
{
DynamicTextureUpdater updater = Updaters[id];
if (RegisteredScenes.ContainsKey(updater.SimUUID))
{
Scene scene = RegisteredScenes[updater.SimUUID];
updater.DataReceived(data, scene);
}
}
}
public LLUUID AddDynamicTextureURL(LLUUID simID, LLUUID primID, string contentType, string url, public LLUUID AddDynamicTextureURL(LLUUID simID, LLUUID primID, string contentType, string url,
string extraParams, int updateTimer) string extraParams, int updateTimer)
{ {
Console.WriteLine("dynamic texture being created: " + url + " of type " + contentType); Console.WriteLine("dynamic texture being created: " + url + " of type " + contentType);
if (RenderPlugins.ContainsKey(contentType)) if (RenderPlugins.ContainsKey(contentType))
{ {
DynamicTextureUpdater updater = new DynamicTextureUpdater(); DynamicTextureUpdater updater = new DynamicTextureUpdater();
updater.SimUUID = simID; updater.SimUUID = simID;
updater.PrimID = primID; updater.PrimID = primID;
updater.ContentType = contentType; updater.ContentType = contentType;
updater.Url = url; updater.Url = url;
updater.UpdateTimer = updateTimer; updater.UpdateTimer = updateTimer;
updater.UpdaterID = LLUUID.Random(); updater.UpdaterID = LLUUID.Random();
updater.Params = extraParams; updater.Params = extraParams;
if (!Updaters.ContainsKey(updater.UpdaterID)) if (!Updaters.ContainsKey(updater.UpdaterID))
{ {
Updaters.Add(updater.UpdaterID, updater); Updaters.Add(updater.UpdaterID, updater);
} }
RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams); RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams);
return updater.UpdaterID; return updater.UpdaterID;
} }
return LLUUID.Zero; return LLUUID.Zero;
} }
public LLUUID AddDynamicTextureData(LLUUID simID, LLUUID primID, string contentType, string data, public LLUUID AddDynamicTextureData(LLUUID simID, LLUUID primID, string contentType, string data,
string extraParams, int updateTimer) string extraParams, int updateTimer)
{ {
if (RenderPlugins.ContainsKey(contentType)) if (RenderPlugins.ContainsKey(contentType))
{ {
DynamicTextureUpdater updater = new DynamicTextureUpdater(); DynamicTextureUpdater updater = new DynamicTextureUpdater();
updater.SimUUID = simID; updater.SimUUID = simID;
updater.PrimID = primID; updater.PrimID = primID;
updater.ContentType = contentType; updater.ContentType = contentType;
updater.BodyData = data; updater.BodyData = data;
updater.UpdateTimer = updateTimer; updater.UpdateTimer = updateTimer;
updater.UpdaterID = LLUUID.Random(); updater.UpdaterID = LLUUID.Random();
updater.Params = extraParams; updater.Params = extraParams;
if (!Updaters.ContainsKey(updater.UpdaterID)) if (!Updaters.ContainsKey(updater.UpdaterID))
{ {
Updaters.Add(updater.UpdaterID, updater); Updaters.Add(updater.UpdaterID, updater);
} }
RenderPlugins[contentType].AsyncConvertData(updater.UpdaterID, data, extraParams); RenderPlugins[contentType].AsyncConvertData(updater.UpdaterID, data, extraParams);
return updater.UpdaterID; return updater.UpdaterID;
} }
return LLUUID.Zero; return LLUUID.Zero;
} }
public class DynamicTextureUpdater public class DynamicTextureUpdater
{ {
public LLUUID SimUUID; public LLUUID SimUUID;
public LLUUID UpdaterID; public LLUUID UpdaterID;
public string ContentType; public string ContentType;
public string Url; public string Url;
public string BodyData; public string BodyData;
public LLUUID PrimID; public LLUUID PrimID;
public int UpdateTimer; public int UpdateTimer;
public LLUUID LastAssetID; public LLUUID LastAssetID;
public string Params; public string Params;
public DynamicTextureUpdater() public DynamicTextureUpdater()
{ {
LastAssetID = LLUUID.Zero; LastAssetID = LLUUID.Zero;
UpdateTimer = 0; UpdateTimer = 0;
BodyData = null; BodyData = null;
} }
public void DataReceived(byte[] data, Scene scene) public void DataReceived(byte[] data, Scene scene)
{ {
//TODO delete the last asset(data), if it was a dynamic texture //TODO delete the last asset(data), if it was a dynamic texture
AssetBase asset = new AssetBase(); AssetBase asset = new AssetBase();
asset.FullID = LLUUID.Random(); asset.FullID = LLUUID.Random();
asset.Data = data; asset.Data = data;
asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000); asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000);
asset.Type = 0; asset.Type = 0;
scene.commsManager.AssetCache.AddAsset(asset); scene.commsManager.AssetCache.AddAsset(asset);
LastAssetID = asset.FullID; LastAssetID = asset.FullID;
SceneObjectPart part = scene.GetSceneObjectPart(PrimID); SceneObjectPart part = scene.GetSceneObjectPart(PrimID);
part.Shape.TextureEntry = new LLObject.TextureEntry(asset.FullID).ToBytes(); part.Shape.TextureEntry = new LLObject.TextureEntry(asset.FullID).ToBytes();
part.ScheduleFullUpdate(); part.ScheduleFullUpdate();
} }
} }
} }
} }

View File

@ -35,7 +35,7 @@ using Axiom.Math;
using libsecondlife; using libsecondlife;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Caches; using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;

View File

@ -28,7 +28,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using libsecondlife; using libsecondlife;
using OpenSim.Framework.Communications.Caches; using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;

View File

@ -80,7 +80,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
public LLVector3 AbsolutePosition public override LLVector3 AbsolutePosition
{ {
get { return m_rootPart.GroupPosition; } get { return m_rootPart.GroupPosition; }
set set

View File

@ -138,7 +138,7 @@ namespace OpenSim.Region.Environment.Scenes
get { return m_controllingClient; } get { return m_controllingClient; }
} }
public LLVector3 AbsolutePosition public override LLVector3 AbsolutePosition
{ {
get get
{ {
@ -172,7 +172,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
public LLVector3 Velocity public override LLVector3 Velocity
{ {
get get
{ {

View File

@ -2,6 +2,7 @@ using System.Collections.Generic;
using libsecondlife; using libsecondlife;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Interfaces; using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;
@ -9,8 +10,6 @@ using OpenSim.Framework.Types;
using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Terrain; using OpenSim.Region.Terrain;
using OpenSim.Region.Environment; using OpenSim.Region.Environment;
using OpenSim.Framework.Communications.Caches;
using Avatar=OpenSim.Region.Environment.Scenes.ScenePresence; using Avatar=OpenSim.Region.Environment.Scenes.ScenePresence;
namespace SimpleApp namespace SimpleApp

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net; using System.Net;
using libsecondlife; using libsecondlife;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Caches; using OpenSim.Framework.Communications.Caches;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Framework.Types; using OpenSim.Framework.Types;