From a575bc38d61ac5cb74f60e0eee503ca7f3e99803 Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 31 May 2007 14:22:14 +0000
Subject: More work on OpenGrid.Framework.Communications
---
.../RegionServerCommsManager.cs | 2 +-
.../TestLocalCommsManager.cs | 53 ++++++++++++--------
Common/OpenSim.Framework/IRegionCommsHost.cs | 2 +-
Common/OpenSim.Framework/OpenSim.Framework.csproj | 1 +
Common/OpenSim.Framework/RegionCommsHostBase.cs | 32 +++++++++++++
OpenSim/OpenSim.RegionServer/ClientView.API.cs | 56 ++++++++++++++++++++++
6 files changed, 124 insertions(+), 22 deletions(-)
create mode 100644 Common/OpenSim.Framework/RegionCommsHostBase.cs
diff --git a/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs b/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs
index 9767185..2b8c5ca 100644
--- a/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs
+++ b/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs
@@ -31,7 +31,7 @@ namespace OpenGrid.Framework.Communications
///
///
///
- public virtual IRegionCommsHost RegisterRegion(RegionInfo regionInfo)
+ public virtual RegionCommsHostBase RegisterRegion(RegionInfo regionInfo)
{
return null;
}
diff --git a/Common/OpenGrid.Framework.Communications/TestLocalCommsManager.cs b/Common/OpenGrid.Framework.Communications/TestLocalCommsManager.cs
index 32f4718..57049fc 100644
--- a/Common/OpenGrid.Framework.Communications/TestLocalCommsManager.cs
+++ b/Common/OpenGrid.Framework.Communications/TestLocalCommsManager.cs
@@ -12,6 +12,7 @@ namespace OpenGrid.Framework.Communications
public class TestLocalCommsManager : RegionServerCommsManager
{
protected Dictionary regions = new Dictionary();
+ protected Dictionary regionHosts = new Dictionary();
public TestLocalCommsManager()
{
@@ -21,19 +22,20 @@ namespace OpenGrid.Framework.Communications
///
///
///
- ///
- public override RegionInfo LoadRegionConfigFromGridServer(LLUUID regionID)
- {
- return null;
- }
-
- ///
- ///
- ///
///
///
- public override IRegionCommsHost RegisterRegion(RegionInfo regionInfo)
+ public override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo)
{
+ if (!this.regions.ContainsKey((uint)regionInfo.RegionHandle))
+ {
+ this.regions.Add((uint)regionInfo.RegionHandle, regionInfo);
+ RegionCommsHostBase regionHost = new RegionCommsHostBase();
+ this.regionHosts.Add((uint)regionInfo.RegionHandle, regionHost);
+
+ return regionHost;
+ }
+
+ //already in our list of regions so for now lets return null
return null;
}
@@ -59,19 +61,30 @@ namespace OpenGrid.Framework.Communications
///
///
///
+ ///
+ ///
///
- public override bool AvatarCrossingToRegion()
+ public bool AddNewSession(uint regionHandle, Login loginData)
{
- return false;
- }
+ AgentCircuitData agent = new AgentCircuitData();
+ agent.AgentID = loginData.Agent;
+ agent.firstname = loginData.First;
+ agent.lastname = loginData.Last;
+ agent.SessionID = loginData.Session;
+ agent.SecureSessionID = loginData.SecureSession;
+ agent.circuitcode = loginData.CircuitCode;
+ agent.BaseFolder = loginData.BaseFolder;
+ agent.InventoryFolder = loginData.InventoryFolder;
+ agent.startpos = new LLVector3(128, 128, 70);
- ///
- ///
- ///
- ///
- public override IList RequestMapBlocks()
- {
- return null;
+ if (this.regionHosts.ContainsKey((uint)regionHandle))
+ {
+ this.regionHosts[(uint)regionHandle].TriggerExpectUser(agent);
+ return true;
+ }
+
+ // region not found
+ return false;
}
}
}
diff --git a/Common/OpenSim.Framework/IRegionCommsHost.cs b/Common/OpenSim.Framework/IRegionCommsHost.cs
index 815bd8e..d115bb7 100644
--- a/Common/OpenSim.Framework/IRegionCommsHost.cs
+++ b/Common/OpenSim.Framework/IRegionCommsHost.cs
@@ -6,7 +6,7 @@ using OpenSim.Framework.Types;
namespace OpenSim.Framework
{
- public delegate void ExpectUserDelegate();
+ public delegate void ExpectUserDelegate(AgentCircuitData agent);
public delegate void UpdateNeighbours(List neighbours);
public interface IRegionCommsHost
diff --git a/Common/OpenSim.Framework/OpenSim.Framework.csproj b/Common/OpenSim.Framework/OpenSim.Framework.csproj
index f83cb9d..be17a23 100644
--- a/Common/OpenSim.Framework/OpenSim.Framework.csproj
+++ b/Common/OpenSim.Framework/OpenSim.Framework.csproj
@@ -107,6 +107,7 @@
Code
+
Code
diff --git a/Common/OpenSim.Framework/RegionCommsHostBase.cs b/Common/OpenSim.Framework/RegionCommsHostBase.cs
new file mode 100644
index 0000000..782755e
--- /dev/null
+++ b/Common/OpenSim.Framework/RegionCommsHostBase.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework
+{
+ public class RegionCommsHostBase :IRegionCommsHost
+ {
+ public event ExpectUserDelegate OnExpectUser;
+ public event GenericCall2 OnExpectChildAgent;
+ public event GenericCall2 OnAvatarCrossingIntoRegion;
+ public event UpdateNeighbours OnNeighboursUpdate;
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public virtual bool TriggerExpectUser(AgentCircuitData agent)
+ {
+ if(OnExpectUser != null)
+ {
+ OnExpectUser(agent);
+ return true;
+ }
+
+ return false;
+ }
+ }
+}
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index e7db495..b7d87ed 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -36,6 +36,9 @@ namespace OpenSim
public event NewAvatar OnNewAvatar;
public event GenericCall6 OnRemoveAvatar;
+ ///
+ ///
+ ///
public LLVector3 StartPos
{
get
@@ -48,6 +51,9 @@ namespace OpenSim
}
}
+ ///
+ ///
+ ///
public LLUUID AgentId
{
get
@@ -56,6 +62,9 @@ namespace OpenSim
}
}
+ ///
+ ///
+ ///
public string FirstName
{
get
@@ -65,6 +74,9 @@ namespace OpenSim
}
+ ///
+ ///
+ ///
public string LastName
{
get
@@ -75,6 +87,10 @@ namespace OpenSim
#region World/Avatar to Client
+ ///
+ ///
+ ///
+ ///
public void MoveAgentIntoRegion(RegionInfo regInfo)
{
AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
@@ -88,6 +104,15 @@ namespace OpenSim
OutPacket(mov);
}
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
{
System.Text.Encoding enc = System.Text.Encoding.ASCII;
@@ -104,6 +129,10 @@ namespace OpenSim
this.OutPacket(reply);
}
+ ///
+ ///
+ ///
+ ///
public void SendWearables(AvatarWearable[] wearables)
{
AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket();
@@ -125,6 +154,12 @@ namespace OpenSim
this.OutPacket(aw);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry)
{
AvatarAppearancePacket avp = new AvatarAppearancePacket();
@@ -200,6 +235,10 @@ namespace OpenSim
}
}
+ ///
+ ///
+ ///
+ ///
public void SendRegionHandshake(RegionInfo regionInfo)
{
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
@@ -240,6 +279,15 @@ namespace OpenSim
OutPacket(handshake);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos)
{
System.Text.Encoding _enc = System.Text.Encoding.ASCII;
@@ -263,6 +311,10 @@ namespace OpenSim
}
+ ///
+ ///
+ ///
+ ///
protected void SetDefaultPacketValues(ref ObjectUpdatePacket.ObjectDataBlock objdata)
{
objdata.PSBlock = new byte[0];
@@ -291,6 +343,10 @@ namespace OpenSim
objdata.ObjectData[64] = 189;
}
+ ///
+ ///
+ ///
+ ///
protected ObjectUpdatePacket.ObjectDataBlock CreateDefaultAvatarPacket()
{
libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i);
--
cgit v1.1