From ccd74f888bcb2fe60d14d45bfc9506a2c005aa82 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 23 Aug 2008 02:30:07 +0000 Subject: [PATCH] Some complex re-ordering to make prebuild do what needed to be done. It is now possible to use module interfaces without referencing Scene. Place those interfaces in OpenSim/Region/Interfaces. They may not use any refs from OpenSim.Region.Environment as parameters. This resolves a circular library ref introduced in r5949 --- .../Communications/Capabilities/Caps.cs | 5 ++-- OpenSim/Framework/IScene.cs | 4 ++- .../AssetTransactionModule.cs | 1 + .../Currency/SampleMoney/SampleMoneyModule.cs | 3 +- .../Environment/Scenes/Scene.Inventory.cs | 1 + OpenSim/Region/Environment/Scenes/Scene.cs | 2 +- .../Region/Environment/Scenes/SceneBase.cs | 5 ++++ .../Interfaces/IMoneyModule.cs | 4 +-- .../Common/LSL_BuiltIn_Commands.cs | 1 + .../Common/ScriptEngineBase/EventManager.cs | 1 + .../Shared/Api/Implementation/LSL_Api.cs | 1 + .../ScriptEngine/XEngine/EventManager.cs | 1 + prebuild.xml | 29 ++++++++++++++++++- 13 files changed, 49 insertions(+), 9 deletions(-) rename OpenSim/Region/{Environment => }/Interfaces/IMoneyModule.cs (95%) diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index 338604db82..6946561e19 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs @@ -35,8 +35,7 @@ using log4net; using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Servers; using OpenSim.Framework; -using OpenSim.Region.Environment.Interfaces; -using OpenSim.Region.Environment.Scenes; +using OpenSim.Region.Interfaces; namespace OpenSim.Framework.Communications.Capabilities { @@ -614,7 +613,7 @@ namespace OpenSim.Framework.Communications.Capabilities llsdRequest.asset_type == "sound") { IClientAPI client = GetClient(m_agentID); - Scene scene = (Scene)client.Scene; + IScene scene = client.Scene; IMoneyModule mm = scene.RequestModuleInterface(); diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index 82002c2c85..2cce12f002 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs @@ -63,5 +63,7 @@ namespace OpenSim.Framework bool PresenceChildStatus(LLUUID avatarID); string GetCapsPath(LLUUID agentId); + + T RequestModuleInterface(); } -} \ No newline at end of file +} diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetTransactionModule.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetTransactionModule.cs index d8720dbb4c..d5e4df7d30 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetTransactionModule.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetTransactionModule.cs @@ -32,6 +32,7 @@ using libsecondlife; using log4net; using Nini.Config; using OpenSim.Framework; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes; diff --git a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs index e31770f3fa..4a6828c592 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs @@ -38,6 +38,7 @@ using Nini.Config; using Nwc.XmlRpc; using OpenSim.Framework; using OpenSim.Region.Environment.Interfaces; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Scenes; using OpenSim.Framework.Communications.Cache; @@ -54,7 +55,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney /// Centralized grid structure example using OpenSimWi Redux revision 9+ /// svn co https://opensimwiredux.svn.sourceforge.net/svnroot/opensimwiredux /// - public class SampleMoneyModule : IMoneyModule + public class SampleMoneyModule : IMoneyModule, IRegionModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 9c917250bf..83824679d3 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -35,6 +35,7 @@ using libsecondlife.Packets; using log4net; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Interfaces; namespace OpenSim.Region.Environment.Scenes diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index fb2cbb6841..3bae46373b 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -2963,7 +2963,7 @@ namespace OpenSim.Region.Environment.Scenes /// For the given interface, retrieve the region module which implements it. /// /// null if there is no module implementing that interface - public T RequestModuleInterface() + public override T RequestModuleInterface() { if (ModuleInterfaces.ContainsKey(typeof(T))) { diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs index fbef367285..c624a418a6 100644 --- a/OpenSim/Region/Environment/Scenes/SceneBase.cs +++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs @@ -220,5 +220,10 @@ namespace OpenSim.Region.Environment.Scenes return null; } + + public virtual T RequestModuleInterface() + { + return default(T); + } } } diff --git a/OpenSim/Region/Environment/Interfaces/IMoneyModule.cs b/OpenSim/Region/Interfaces/IMoneyModule.cs similarity index 95% rename from OpenSim/Region/Environment/Interfaces/IMoneyModule.cs rename to OpenSim/Region/Interfaces/IMoneyModule.cs index 49d096b378..5636857633 100644 --- a/OpenSim/Region/Environment/Interfaces/IMoneyModule.cs +++ b/OpenSim/Region/Interfaces/IMoneyModule.cs @@ -29,10 +29,10 @@ using System; using OpenSim.Framework; using libsecondlife; -namespace OpenSim.Region.Environment.Interfaces +namespace OpenSim.Region.Interfaces { public delegate void ObjectPaid(LLUUID objectID, LLUUID agentID, int amount); - public interface IMoneyModule : IRegionModule + public interface IMoneyModule { bool ObjectGiveMoney(LLUUID objectID, LLUUID fromID, LLUUID toID, int amount); diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 6c62d883e1..be337e71b5 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs @@ -38,6 +38,7 @@ using libsecondlife.Packets; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Environment; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney; using OpenSim.Region.Environment.Modules.World.Land; diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs index eea7ab4d62..a6bb405bf9 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs @@ -31,6 +31,7 @@ using libsecondlife; using OpenSim.Framework; using OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney; using OpenSim.Region.Environment; +using OpenSim.Region.Interfaces; using OpenSim.Region; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Interfaces; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index b90ab7935f..2428bc4ffb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -39,6 +39,7 @@ using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Environment; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney; using OpenSim.Region.Environment.Modules.World.Land; diff --git a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs index db11e6b385..a4b9d4c482 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs @@ -31,6 +31,7 @@ using System.Collections.Generic; using libsecondlife; using OpenSim.Framework; using OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.ScriptEngine.Shared; diff --git a/prebuild.xml b/prebuild.xml index 2f67c60e2f..48c4093ad7 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -650,6 +650,29 @@ + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + @@ -668,12 +691,12 @@ - + @@ -768,6 +791,7 @@ + @@ -1575,6 +1599,7 @@ + @@ -1665,6 +1690,7 @@ + @@ -1888,6 +1914,7 @@ +