From 497ab5d7abec3c644a6340c1c64a2557dbade0ef Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Mon, 16 Jul 2007 23:25:35 +0000 Subject: * RegionApplicationBase restructuring now complete * Still has some weird bug in SimpleApp though. --- OpenSim/Framework/General/AgentCircuitManager.cs | 130 +++++++++++++++++++++ .../Framework/General/AuthenticateSessionBase.cs | 130 --------------------- OpenSim/Region/Application/OpenSimMain.cs | 80 ++++--------- OpenSim/Region/ClientStack/ClientView.cs | 4 +- OpenSim/Region/ClientStack/PacketServer.cs | 4 +- .../Region/ClientStack/RegionApplicationBase.cs | 52 +++++++-- OpenSim/Region/ClientStack/UDPServer.cs | 5 +- OpenSim/Region/Environment/RegionManager.cs | 2 +- OpenSim/Region/Environment/Scenes/Scene.cs | 4 +- OpenSim/Region/Examples/SimpleApp/MyWorld.cs | 2 +- OpenSim/Region/Examples/SimpleApp/Program.cs | 69 ++++------- prebuild.xml | 1 + 12 files changed, 228 insertions(+), 255 deletions(-) create mode 100644 OpenSim/Framework/General/AgentCircuitManager.cs delete mode 100644 OpenSim/Framework/General/AuthenticateSessionBase.cs diff --git a/OpenSim/Framework/General/AgentCircuitManager.cs b/OpenSim/Framework/General/AgentCircuitManager.cs new file mode 100644 index 0000000..c19d6b1 --- /dev/null +++ b/OpenSim/Framework/General/AgentCircuitManager.cs @@ -0,0 +1,130 @@ +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System.Collections.Generic; +using libsecondlife; +using OpenSim.Framework.Interfaces; +using OpenSim.Framework.Types; + +namespace OpenSim.Framework +{ + public class AgentCircuitManager + { + public Dictionary AgentCircuits = new Dictionary(); + + public AgentCircuitManager() + { + + } + + public virtual AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitcode) + { + AgentCircuitData validcircuit = null; + if (this.AgentCircuits.ContainsKey(circuitcode)) + { + validcircuit = this.AgentCircuits[circuitcode]; + } + AuthenticateResponse user = new AuthenticateResponse(); + if (validcircuit == null) + { + //don't have this circuit code in our list + user.Authorised = false; + return (user); + } + + if ((sessionID == validcircuit.SessionID) && (agentID == validcircuit.AgentID)) + { + user.Authorised = true; + user.LoginInfo = new Login(); + user.LoginInfo.Agent = agentID; + user.LoginInfo.Session = sessionID; + user.LoginInfo.SecureSession = validcircuit.SecureSessionID; + user.LoginInfo.First = validcircuit.firstname; + user.LoginInfo.Last = validcircuit.lastname; + user.LoginInfo.InventoryFolder = validcircuit.InventoryFolder; + user.LoginInfo.BaseFolder = validcircuit.BaseFolder; + } + else + { + // Invalid + user.Authorised = false; + } + + return (user); + } + + public virtual void AddNewCircuit(uint circuitCode, AgentCircuitData agentData) + { + if (this.AgentCircuits.ContainsKey(circuitCode)) + { + this.AgentCircuits[circuitCode] = agentData; + } + else + { + this.AgentCircuits.Add(circuitCode, agentData); + } + } + + public LLVector3 GetPosition(uint circuitCode) + { + LLVector3 vec = new LLVector3(); + if (this.AgentCircuits.ContainsKey(circuitCode)) + { + vec = this.AgentCircuits[circuitCode].startpos; + } + return vec; + } + + public void UpdateAgentData(AgentCircuitData agentData) + { + if (this.AgentCircuits.ContainsKey((uint)agentData.circuitcode)) + { + this.AgentCircuits[(uint)agentData.circuitcode].firstname = agentData.firstname; + this.AgentCircuits[(uint)agentData.circuitcode].lastname = agentData.lastname; + this.AgentCircuits[(uint)agentData.circuitcode].startpos = agentData.startpos; + // Console.WriteLine("update user start pos is " + agentData.startpos.X + " , " + agentData.startpos.Y + " , " + agentData.startpos.Z); + } + } + + public void UpdateAgentChildStatus(uint circuitcode, bool childstatus) + { + if (this.AgentCircuits.ContainsKey(circuitcode)) + { + this.AgentCircuits[circuitcode].child = childstatus; + } + } + + public bool GetAgentChildStatus(uint circuitcode) + { + if (this.AgentCircuits.ContainsKey(circuitcode)) + { + return this.AgentCircuits[circuitcode].child; + } + return false; + } + } +} \ No newline at end of file diff --git a/OpenSim/Framework/General/AuthenticateSessionBase.cs b/OpenSim/Framework/General/AuthenticateSessionBase.cs deleted file mode 100644 index 2d02286..0000000 --- a/OpenSim/Framework/General/AuthenticateSessionBase.cs +++ /dev/null @@ -1,130 +0,0 @@ -/* -* Copyright (c) Contributors, http://www.openmetaverse.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ -using System.Collections.Generic; -using libsecondlife; -using OpenSim.Framework.Interfaces; -using OpenSim.Framework.Types; - -namespace OpenSim.Framework -{ - public class AuthenticateSessionsBase - { - public Dictionary AgentCircuits = new Dictionary(); - - public AuthenticateSessionsBase() - { - - } - - public virtual AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitcode) - { - AgentCircuitData validcircuit = null; - if (this.AgentCircuits.ContainsKey(circuitcode)) - { - validcircuit = this.AgentCircuits[circuitcode]; - } - AuthenticateResponse user = new AuthenticateResponse(); - if (validcircuit == null) - { - //don't have this circuit code in our list - user.Authorised = false; - return (user); - } - - if ((sessionID == validcircuit.SessionID) && (agentID == validcircuit.AgentID)) - { - user.Authorised = true; - user.LoginInfo = new Login(); - user.LoginInfo.Agent = agentID; - user.LoginInfo.Session = sessionID; - user.LoginInfo.SecureSession = validcircuit.SecureSessionID; - user.LoginInfo.First = validcircuit.firstname; - user.LoginInfo.Last = validcircuit.lastname; - user.LoginInfo.InventoryFolder = validcircuit.InventoryFolder; - user.LoginInfo.BaseFolder = validcircuit.BaseFolder; - } - else - { - // Invalid - user.Authorised = false; - } - - return (user); - } - - public virtual void AddNewCircuit(uint circuitCode, AgentCircuitData agentData) - { - if (this.AgentCircuits.ContainsKey(circuitCode)) - { - this.AgentCircuits[circuitCode] = agentData; - } - else - { - this.AgentCircuits.Add(circuitCode, agentData); - } - } - - public LLVector3 GetPosition(uint circuitCode) - { - LLVector3 vec = new LLVector3(); - if (this.AgentCircuits.ContainsKey(circuitCode)) - { - vec = this.AgentCircuits[circuitCode].startpos; - } - return vec; - } - - public void UpdateAgentData(AgentCircuitData agentData) - { - if (this.AgentCircuits.ContainsKey((uint)agentData.circuitcode)) - { - this.AgentCircuits[(uint)agentData.circuitcode].firstname = agentData.firstname; - this.AgentCircuits[(uint)agentData.circuitcode].lastname = agentData.lastname; - this.AgentCircuits[(uint)agentData.circuitcode].startpos = agentData.startpos; - // Console.WriteLine("update user start pos is " + agentData.startpos.X + " , " + agentData.startpos.Y + " , " + agentData.startpos.Z); - } - } - - public void UpdateAgentChildStatus(uint circuitcode, bool childstatus) - { - if (this.AgentCircuits.ContainsKey(circuitcode)) - { - this.AgentCircuits[circuitcode].child = childstatus; - } - } - - public bool GetAgentChildStatus(uint circuitcode) - { - if (this.AgentCircuits.ContainsKey(circuitcode)) - { - return this.AgentCircuits[circuitcode].child; - } - return false; - } - } -} \ No newline at end of file diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 074b34b..61541cc 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs @@ -46,6 +46,7 @@ using OpenSim.Region.Communications.OGS1; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment; using System.Text; +using System.Collections.Generic; namespace OpenSim { @@ -60,7 +61,9 @@ namespace OpenSim protected bool m_useConfigFile; public string m_configFileName; - protected CommunicationsManager commsManager; + protected List m_udpServers = new List(); + protected List m_regionData = new List(); + protected List m_localWorld = new List(); private bool m_silent; private string m_logFilename = "region-console-" + Guid.NewGuid().ToString() + ".log"; @@ -89,17 +92,13 @@ namespace OpenSim m_httpServer.AddStreamHandler(new SimStatusHandler()); } - AssetCache assetCache = m_assetCache; - assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); - m_inventoryCache = new InventoryCache(); - if (m_sandbox) { - this.commsManager = new CommunicationsLocal( m_networkServersInfo, m_httpServer); + m_commsManager = new CommunicationsLocal( m_networkServersInfo, m_httpServer); } else { - this.commsManager = new CommunicationsOGS1( m_networkServersInfo, m_httpServer ); + m_commsManager = new CommunicationsOGS1( m_networkServersInfo, m_httpServer ); } string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Regions"); @@ -129,60 +128,15 @@ namespace OpenSim regionInfo.InitConfig(this.m_sandbox, regionConfig); regionConfig.Close(); + + UDPServer udpServer; + Scene scene = SetupScene(regionInfo, out udpServer); + + m_localWorld.Add(scene); - AuthenticateSessionsBase authenBase; - - if (m_sandbox) - { - AuthenticateSessionsBase authen = new AuthenticateSessionsBase(); // new AuthenticateSessionsLocal(); - this.AuthenticateSessionsHandler.Add(authen); - authenBase = authen; - } - else - { - AuthenticateSessionsBase authen = new AuthenticateSessionsBase(); //new AuthenticateSessionsRemote(); - this.AuthenticateSessionsHandler.Add(authen); - authenBase = authen; - } - - UDPServer udpServer = new UDPServer(regionInfo.InternalEndPoint.Port, assetCache, this.m_inventoryCache, this.m_log, authenBase); - m_udpServers.Add(udpServer); m_regionData.Add(regionInfo); - - StorageManager tmpStoreManager = GetStoreManager(regionInfo); - - Scene scene = new Scene(regionInfo, authenBase, commsManager, assetCache, tmpStoreManager, m_httpServer); - m_localWorld.Add(scene); - - udpServer.LocalWorld = scene; - - scene.LoadStorageDLL("OpenSim.Region.Storage.LocalStorageDb4o.dll"); //all these dll names shouldn't be hard coded. - scene.LoadWorldMap(); - - PhysicsScene physicsScene = GetPhysicsScene(m_physicsEngine); - - scene.PhysScene = physicsScene; - scene.PhysScene.SetTerrain(scene.Terrain.getHeights1D()); - scene.LoadPrimsFromStorage(); - - //Master Avatar Setup - UserProfileData masterAvatar = commsManager.UserServer.SetupMasterUser(scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName, scene.RegionInfo.MasterAvatarSandboxPassword); - if (masterAvatar != null) - { - m_log.Notice("Parcels - Found master avatar [" + masterAvatar.UUID.ToStringHyphenated() + "]"); - scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.UUID; - scene.localStorage.LoadLandObjects((ILocalStorageLandObjectReceiver)scene.LandManager); - } - else - { - m_log.Notice("Parcels - No master avatar found, using null."); - scene.RegionInfo.MasterAvatarAssignedUUID = libsecondlife.LLUUID.Zero; - scene.localStorage.LoadLandObjects((ILocalStorageLandObjectReceiver)scene.LandManager); - } - scene.performParcelPrimCountUpdate(); - scene.StartTimer(); } // Start UDP servers @@ -193,15 +147,18 @@ namespace OpenSim } - protected override StorageManager GetStoreManager(RegionInfo regionInfo) + protected override StorageManager CreateStorageManager(RegionInfo regionInfo) { return new StorageManager("OpenSim.DataStore.NullStorage.dll", regionInfo.DataStore, regionInfo.RegionName); } + protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager) + { + return new Scene(regionInfo, circuitManager, m_commsManager, m_assetCache, storageManager, m_httpServer); + } + protected override void Initialize() { - m_log.Verbose("Loading Configuration [{0}]", m_configFileName); - IGenericConfig localConfig = new XmlConfig(m_configFileName); localConfig.LoadData(); @@ -210,11 +167,14 @@ namespace OpenSim SetupFromConfigFile(localConfig); } + StartLog(); + m_networkServersInfo.InitConfig(m_sandbox, localConfig); m_httpServerPort = m_networkServersInfo.HttpListenerPort; localConfig.Close(); + m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); } protected override LogBase CreateLog() diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 9fddc7b..44466c6 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -76,7 +76,7 @@ namespace OpenSim.Region.ClientStack private AssetCache m_assetCache; private InventoryCache m_inventoryCache; private int cachedtextureserial = 0; - protected AuthenticateSessionsBase m_authenticateSessionsHandler; + protected AgentCircuitManager m_authenticateSessionsHandler; private Encoding enc = Encoding.ASCII; // Dead client detection vars private Timer clientPingTimer; @@ -84,7 +84,7 @@ namespace OpenSim.Region.ClientStack private int probesWithNoIngressPackets = 0; private int lastPacketsReceived = 0; - public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AuthenticateSessionsBase authenSessions ) + public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AgentCircuitManager authenSessions ) { m_world = world; m_clientThreads = clientThreads; diff --git a/OpenSim/Region/ClientStack/PacketServer.cs b/OpenSim/Region/ClientStack/PacketServer.cs index 466fdde..41aaf3a 100644 --- a/OpenSim/Region/ClientStack/PacketServer.cs +++ b/OpenSim/Region/ClientStack/PacketServer.cs @@ -133,7 +133,7 @@ namespace OpenSim.Region.ClientStack /// /// /// - protected virtual ClientView CreateNewClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AuthenticateSessionsBase authenSessions) + protected virtual ClientView CreateNewClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AgentCircuitManager authenSessions) { return new ClientView(remoteEP, initialcirpack, clientThreads, world, assetCache, packServer, inventoryCache, authenSessions ); } @@ -147,7 +147,7 @@ namespace OpenSim.Region.ClientStack /// /// /// - public virtual bool AddNewClient(EndPoint epSender, UseCircuitCodePacket useCircuit, AssetCache assetCache, InventoryCache inventoryCache, AuthenticateSessionsBase authenticateSessionsClass) + public virtual bool AddNewClient(EndPoint epSender, UseCircuitCodePacket useCircuit, AssetCache assetCache, InventoryCache inventoryCache, AgentCircuitManager authenticateSessionsClass) { ClientView newuser = CreateNewClient(epSender, useCircuit, ClientThreads, _localWorld, assetCache, this, inventoryCache, diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 8467082..1bb383f 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs @@ -31,6 +31,7 @@ using System.Net; using OpenSim.Assets; using OpenSim.Framework; using OpenSim.Framework.Console; +using OpenSim.Framework.Data; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Servers; using OpenSim.Framework.Types; @@ -39,6 +40,7 @@ using OpenSim.Region.Caches; using OpenSim.Region.Environment; using libsecondlife; using OpenSim.Region.Environment.Scenes; +using OpenSim.Framework.Communications; namespace OpenSim.Region.ClientStack { @@ -50,14 +52,11 @@ namespace OpenSim.Region.ClientStack protected DateTime m_startuptime; protected NetworkServersInfo m_networkServersInfo; - protected List m_udpServers = new List(); - protected List m_regionData = new List(); - protected List m_localWorld = new List(); protected BaseHttpServer m_httpServer; protected int m_httpServerPort; - protected List AuthenticateSessionsHandler = new List(); protected LogBase m_log; + protected CommunicationsManager m_commsManager; public RegionApplicationBase( ) { @@ -72,19 +71,19 @@ namespace OpenSim.Region.ClientStack Initialize(); - StartLog(); - ScenePresence.LoadTextureFile("avatar-texture.dat"); m_httpServer = new BaseHttpServer( m_httpServerPort ); m_log.Verbose("Starting HTTP server"); m_httpServer.Start(); + + m_inventoryCache = new InventoryCache(); } protected abstract void Initialize(); - private void StartLog() + protected void StartLog() { m_log = CreateLog(); MainLog.Instance = m_log; @@ -92,7 +91,7 @@ namespace OpenSim.Region.ClientStack protected abstract LogBase CreateLog(); protected abstract PhysicsScene GetPhysicsScene( ); - protected abstract StorageManager GetStoreManager(RegionInfo regionInfo); + protected abstract StorageManager CreateStorageManager(RegionInfo regionInfo); protected PhysicsScene GetPhysicsScene(string engine) { @@ -102,5 +101,42 @@ namespace OpenSim.Region.ClientStack return physicsPluginManager.GetPhysicsScene( engine ); } + protected Scene SetupScene(RegionInfo regionInfo, out UDPServer udpServer) + { + AgentCircuitManager authen = new AgentCircuitManager(); + udpServer = new UDPServer(regionInfo.InternalEndPoint.Port, m_assetCache, m_inventoryCache, m_log, authen); + + StorageManager storageManager = CreateStorageManager(regionInfo); + Scene scene = CreateScene(regionInfo, storageManager, authen); + + udpServer.LocalWorld = scene; + + scene.LoadStorageDLL("OpenSim.Region.Storage.LocalStorageDb4o.dll"); + scene.LoadWorldMap(); + + scene.PhysScene = GetPhysicsScene( ); + scene.PhysScene.SetTerrain(scene.Terrain.getHeights1D()); + scene.LoadPrimsFromStorage(); + + //Master Avatar Setup + UserProfileData masterAvatar = m_commsManager.UserServer.SetupMasterUser(scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName, scene.RegionInfo.MasterAvatarSandboxPassword); + if (masterAvatar != null) + { + m_log.Notice("Parcels - Found master avatar [" + masterAvatar.UUID.ToStringHyphenated() + "]"); + scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.UUID; + scene.localStorage.LoadLandObjects((ILocalStorageLandObjectReceiver)scene.LandManager); + } + else + { + m_log.Notice("Parcels - No master avatar found, using null."); + scene.RegionInfo.MasterAvatarAssignedUUID = libsecondlife.LLUUID.Zero; + scene.localStorage.LoadLandObjects((ILocalStorageLandObjectReceiver)scene.LandManager); + } + scene.performParcelPrimCountUpdate(); + scene.StartTimer(); + return scene; + } + + protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager); } } diff --git a/OpenSim/Region/ClientStack/UDPServer.cs b/OpenSim/Region/ClientStack/UDPServer.cs index 781f96a..ac17720 100644 --- a/OpenSim/Region/ClientStack/UDPServer.cs +++ b/OpenSim/Region/ClientStack/UDPServer.cs @@ -56,7 +56,7 @@ namespace OpenSim.Region.ClientStack protected AssetCache m_assetCache; protected InventoryCache m_inventoryCache; protected LogBase m_log; - protected AuthenticateSessionsBase m_authenticateSessionsClass; + protected AgentCircuitManager m_authenticateSessionsClass; public PacketServer PacketServer { @@ -83,7 +83,7 @@ namespace OpenSim.Region.ClientStack { } - public UDPServer(int port, AssetCache assetCache, InventoryCache inventoryCache, LogBase console, AuthenticateSessionsBase authenticateClass) + public UDPServer(int port, AssetCache assetCache, InventoryCache inventoryCache, LogBase console, AgentCircuitManager authenticateClass) { listenPort = port; this.m_assetCache = assetCache; @@ -91,7 +91,6 @@ namespace OpenSim.Region.ClientStack this.m_log = console; this.m_authenticateSessionsClass = authenticateClass; this.CreatePacketServer(); - } protected virtual void CreatePacketServer() diff --git a/OpenSim/Region/Environment/RegionManager.cs b/OpenSim/Region/Environment/RegionManager.cs index f951701..e75ee60 100644 --- a/OpenSim/Region/Environment/RegionManager.cs +++ b/OpenSim/Region/Environment/RegionManager.cs @@ -10,7 +10,7 @@ namespace OpenSim.Region.Environment { public class RegionManager { - protected AuthenticateSessionsBase authenticateHandler; + protected AgentCircuitManager authenticateHandler; protected RegionCommsListener regionCommsHost; protected CommunicationsManager commsManager; protected List capsHandlers = new List(); diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d2bb030..671b222 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -66,7 +66,7 @@ namespace OpenSim.Region.Environment.Scenes private int landPrimCheckCount; private Mutex updateLock; - protected AuthenticateSessionsBase authenticateHandler; + protected AgentCircuitManager authenticateHandler; protected RegionCommsListener regionCommsHost; protected CommunicationsManager commsManager; protected StorageManager storageManager; @@ -128,7 +128,7 @@ namespace OpenSim.Region.Environment.Scenes /// Dictionary to contain client threads /// Region Handle for this region /// Region Name for this region - public Scene(RegionInfo regInfo, AuthenticateSessionsBase authen, CommunicationsManager commsMan, AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer) + public Scene(RegionInfo regInfo, AgentCircuitManager authen, CommunicationsManager commsMan, AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer) { updateLock = new Mutex(false); this.authenticateHandler = authen; diff --git a/OpenSim/Region/Examples/SimpleApp/MyWorld.cs b/OpenSim/Region/Examples/SimpleApp/MyWorld.cs index 4fe3c7a..cd69225 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyWorld.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyWorld.cs @@ -18,7 +18,7 @@ namespace SimpleApp { private List m_avatars; - public MyWorld( RegionInfo regionInfo, AuthenticateSessionsBase authen, CommunicationsManager commsMan, AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer) + public MyWorld( RegionInfo regionInfo, AgentCircuitManager authen, CommunicationsManager commsMan, AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer) : base( regionInfo, authen, commsMan, assetCach, storeMan, httpServer) { m_avatars = new List(); diff --git a/OpenSim/Region/Examples/SimpleApp/Program.cs b/OpenSim/Region/Examples/SimpleApp/Program.cs index fe8c11a..c945d39 100644 --- a/OpenSim/Region/Examples/SimpleApp/Program.cs +++ b/OpenSim/Region/Examples/SimpleApp/Program.cs @@ -22,9 +22,7 @@ namespace SimpleApp { class Program : RegionApplicationBase, conscmd_callback { - AuthenticateSessionsBase m_circuitManager; - - public MyWorld m_world; + public MyWorld m_scene; private SceneObject m_sceneObject; public MyNpcCharacter m_character; @@ -36,73 +34,52 @@ namespace SimpleApp protected override void Initialize() { m_httpServerPort = 9000; + + StartLog(); + + LocalAssetServer assetServer = new LocalAssetServer(); + assetServer.SetServerInfo("http://localhost:8003/", ""); + + AssetCache m_assetCache = new AssetCache(assetServer); } public void Run() { base.StartUp(); - m_circuitManager = new AuthenticateSessionsBase(); - - InventoryCache inventoryCache = new InventoryCache(); + CommunicationsLocal m_commsManager = new CommunicationsLocal(m_networkServersInfo, m_httpServer); - LocalAssetServer assetServer = new LocalAssetServer(); - assetServer.SetServerInfo("http://localhost:8003/", ""); - - AssetCache assetCache = new AssetCache(assetServer); - - ScenePresence.LoadTextureFile("avatar-texture.dat"); ScenePresence.PhysicsEngineFlying = true; IPEndPoint internalEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9000); RegionInfo regionInfo = new RegionInfo(1000, 1000, internalEndPoint, "localhost"); - UDPServer udpServer = new UDPServer(internalEndPoint.Port, assetCache, inventoryCache, m_log, m_circuitManager); - PacketServer packetServer = new PacketServer(udpServer); - - CommunicationsLocal communicationsManager = new CommunicationsLocal(m_networkServersInfo, m_httpServer); - - StorageManager storeMan = GetStoreManager(regionInfo); + UDPServer udpServer; - - - m_world = new MyWorld( regionInfo, m_circuitManager, communicationsManager, assetCache, storeMan, m_httpServer); - m_world.PhysScene = GetPhysicsScene( ); - - m_world.LoadWorldMap(); - m_world.PhysScene.SetTerrain(m_world.Terrain.getHeights1D()); - m_world.performParcelPrimCountUpdate(); - - udpServer.LocalWorld = m_world; - - m_httpServer.Start(); + Scene scene = SetupScene(regionInfo, out udpServer); + udpServer.ServerListener(); - - UserProfileData masterAvatar = communicationsManager.UserServer.SetupMasterUser("Test", "User", "test"); - if (masterAvatar != null) - { - m_world.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.UUID; - m_world.LandManager.NoLandDataFromStorage(); - } - - m_world.StartTimer(); - + PrimitiveBaseShape shape = PrimitiveBaseShape.DefaultBox(); shape.Scale = new LLVector3(0.5f, 0.5f, 0.5f); LLVector3 pos = new LLVector3(138, 129, 27); - m_sceneObject = new MySceneObject(m_world, m_world.EventManager, LLUUID.Zero, m_world.PrimIDAllocate(), pos, shape); - m_world.AddEntity(m_sceneObject); + m_sceneObject = new MySceneObject(scene, scene.EventManager, LLUUID.Zero, scene.PrimIDAllocate(), pos, shape); + scene.AddEntity(m_sceneObject); m_character = new MyNpcCharacter(); - m_world.AddNewClient(m_character, false); + scene.AddNewClient(m_character, false); m_log.WriteLine(LogPriority.NORMAL, "Press enter to quit."); - m_log.ReadLine(); - + m_log.ReadLine(); + } + + protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager) + { + return new MyWorld(regionInfo, circuitManager, m_commsManager, m_assetCache, storageManager, m_httpServer); } - protected override StorageManager GetStoreManager(RegionInfo regionInfo) + protected override StorageManager CreateStorageManager(RegionInfo regionInfo) { return new StorageManager("OpenSim.DataStore.NullStorage.dll", "simpleapp.yap", "simpleapp"); } diff --git a/prebuild.xml b/prebuild.xml index a88b84b..778271d 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -639,6 +639,7 @@ + -- cgit v1.1