More work on OpenGrid.Framework.Communications
parent
ee5bd67b82
commit
a575bc38d6
|
@ -31,7 +31,7 @@ namespace OpenGrid.Framework.Communications
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="regionInfo"></param>
|
/// <param name="regionInfo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual IRegionCommsHost RegisterRegion(RegionInfo regionInfo)
|
public virtual RegionCommsHostBase RegisterRegion(RegionInfo regionInfo)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,28 +12,30 @@ namespace OpenGrid.Framework.Communications
|
||||||
public class TestLocalCommsManager : RegionServerCommsManager
|
public class TestLocalCommsManager : RegionServerCommsManager
|
||||||
{
|
{
|
||||||
protected Dictionary<uint , RegionInfo> regions = new Dictionary<uint,RegionInfo>();
|
protected Dictionary<uint , RegionInfo> regions = new Dictionary<uint,RegionInfo>();
|
||||||
|
protected Dictionary<uint, RegionCommsHostBase> regionHosts = new Dictionary<uint, RegionCommsHostBase>();
|
||||||
|
|
||||||
public TestLocalCommsManager()
|
public TestLocalCommsManager()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public override RegionInfo LoadRegionConfigFromGridServer(LLUUID regionID)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="regionInfo"></param>
|
/// <param name="regionInfo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,19 +61,30 @@ namespace OpenGrid.Framework.Communications
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="regionHandle"></param>
|
||||||
|
/// <param name="loginData"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
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);
|
||||||
|
|
||||||
/// <summary>
|
if (this.regionHosts.ContainsKey((uint)regionHandle))
|
||||||
///
|
{
|
||||||
/// </summary>
|
this.regionHosts[(uint)regionHandle].TriggerExpectUser(agent);
|
||||||
/// <returns></returns>
|
return true;
|
||||||
public override IList RequestMapBlocks()
|
}
|
||||||
{
|
|
||||||
return null;
|
// region not found
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ using OpenSim.Framework.Types;
|
||||||
|
|
||||||
namespace OpenSim.Framework
|
namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
public delegate void ExpectUserDelegate();
|
public delegate void ExpectUserDelegate(AgentCircuitData agent);
|
||||||
public delegate void UpdateNeighbours(List<RegionInfo> neighbours);
|
public delegate void UpdateNeighbours(List<RegionInfo> neighbours);
|
||||||
|
|
||||||
public interface IRegionCommsHost
|
public interface IRegionCommsHost
|
||||||
|
|
|
@ -107,6 +107,7 @@
|
||||||
<Compile Include="LoginService.cs">
|
<Compile Include="LoginService.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="RegionCommsHostBase.cs" />
|
||||||
<Compile Include="Remoting.cs">
|
<Compile Include="Remoting.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="agent"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public virtual bool TriggerExpectUser(AgentCircuitData agent)
|
||||||
|
{
|
||||||
|
if(OnExpectUser != null)
|
||||||
|
{
|
||||||
|
OnExpectUser(agent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,9 @@ namespace OpenSim
|
||||||
public event NewAvatar OnNewAvatar;
|
public event NewAvatar OnNewAvatar;
|
||||||
public event GenericCall6 OnRemoveAvatar;
|
public event GenericCall6 OnRemoveAvatar;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public LLVector3 StartPos
|
public LLVector3 StartPos
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -48,6 +51,9 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public LLUUID AgentId
|
public LLUUID AgentId
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -56,6 +62,9 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public string FirstName
|
public string FirstName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -65,6 +74,9 @@ namespace OpenSim
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public string LastName
|
public string LastName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -75,6 +87,10 @@ namespace OpenSim
|
||||||
|
|
||||||
#region World/Avatar to Client
|
#region World/Avatar to Client
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="regInfo"></param>
|
||||||
public void MoveAgentIntoRegion(RegionInfo regInfo)
|
public void MoveAgentIntoRegion(RegionInfo regInfo)
|
||||||
{
|
{
|
||||||
AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
|
AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
|
||||||
|
@ -88,6 +104,15 @@ namespace OpenSim
|
||||||
|
|
||||||
OutPacket(mov);
|
OutPacket(mov);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="message"></param>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
/// <param name="fromPos"></param>
|
||||||
|
/// <param name="fromName"></param>
|
||||||
|
/// <param name="fromAgentID"></param>
|
||||||
public void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
|
public void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
|
||||||
{
|
{
|
||||||
System.Text.Encoding enc = System.Text.Encoding.ASCII;
|
System.Text.Encoding enc = System.Text.Encoding.ASCII;
|
||||||
|
@ -104,6 +129,10 @@ namespace OpenSim
|
||||||
this.OutPacket(reply);
|
this.OutPacket(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="wearables"></param>
|
||||||
public void SendWearables(AvatarWearable[] wearables)
|
public void SendWearables(AvatarWearable[] wearables)
|
||||||
{
|
{
|
||||||
AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket();
|
AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket();
|
||||||
|
@ -125,6 +154,12 @@ namespace OpenSim
|
||||||
this.OutPacket(aw);
|
this.OutPacket(aw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="agentID"></param>
|
||||||
|
/// <param name="visualParams"></param>
|
||||||
|
/// <param name="textureEntry"></param>
|
||||||
public void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry)
|
public void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry)
|
||||||
{
|
{
|
||||||
AvatarAppearancePacket avp = new AvatarAppearancePacket();
|
AvatarAppearancePacket avp = new AvatarAppearancePacket();
|
||||||
|
@ -200,6 +235,10 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="regionInfo"></param>
|
||||||
public void SendRegionHandshake(RegionInfo regionInfo)
|
public void SendRegionHandshake(RegionInfo regionInfo)
|
||||||
{
|
{
|
||||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
|
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);
|
OutPacket(handshake);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="regionInfo"></param>
|
||||||
|
/// <param name="firstName"></param>
|
||||||
|
/// <param name="lastName"></param>
|
||||||
|
/// <param name="avatarID"></param>
|
||||||
|
/// <param name="avatarLocalID"></param>
|
||||||
|
/// <param name="Pos"></param>
|
||||||
public void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos)
|
public void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos)
|
||||||
{
|
{
|
||||||
System.Text.Encoding _enc = System.Text.Encoding.ASCII;
|
System.Text.Encoding _enc = System.Text.Encoding.ASCII;
|
||||||
|
@ -263,6 +311,10 @@ namespace OpenSim
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="objdata"></param>
|
||||||
protected void SetDefaultPacketValues(ref ObjectUpdatePacket.ObjectDataBlock objdata)
|
protected void SetDefaultPacketValues(ref ObjectUpdatePacket.ObjectDataBlock objdata)
|
||||||
{
|
{
|
||||||
objdata.PSBlock = new byte[0];
|
objdata.PSBlock = new byte[0];
|
||||||
|
@ -291,6 +343,10 @@ namespace OpenSim
|
||||||
objdata.ObjectData[64] = 189;
|
objdata.ObjectData[64] = 189;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
protected ObjectUpdatePacket.ObjectDataBlock CreateDefaultAvatarPacket()
|
protected ObjectUpdatePacket.ObjectDataBlock CreateDefaultAvatarPacket()
|
||||||
{
|
{
|
||||||
libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i);
|
libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i);
|
||||||
|
|
Loading…
Reference in New Issue