From 982e3ff5d927df498c1d14111e2c61f0251c09d4 Mon Sep 17 00:00:00 2001 From: Melanie Date: Sun, 27 Dec 2009 01:27:51 +0000 Subject: [PATCH] Presence Step 1 --- OpenSim/Data/IPresenceData.cs | 10 ++++------ .../Handlers/Presence/PresenceServerPostHandler.cs | 10 ---------- OpenSim/Services/Interfaces/IPresenceService.cs | 9 ++++++++- OpenSim/Services/PresenceService/PresenceService.cs | 7 ++----- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/OpenSim/Data/IPresenceData.cs b/OpenSim/Data/IPresenceData.cs index e5a8ebdffc..b46b92ddcf 100644 --- a/OpenSim/Data/IPresenceData.cs +++ b/OpenSim/Data/IPresenceData.cs @@ -32,10 +32,11 @@ using OpenSim.Framework; namespace OpenSim.Data { - public struct PresenceData + // This MUST be a ref type! + public class PresenceData { - public UUID UUID; - public UUID currentRegion; + public UUID PrincipalID; + public UUID RegionID; public Dictionary Data; } @@ -48,9 +49,6 @@ namespace OpenSim.Data PresenceData Get(UUID principalID); - bool SetUserDataItem(UUID principalID, string item, string value); - bool SetRegionDataItem(UUID principalID, string item, string value); - bool Delete(UUID regionID); } } diff --git a/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs b/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs index 2558fa0aaf..d41ee2852b 100644 --- a/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs +++ b/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs @@ -95,7 +95,6 @@ namespace OpenSim.Server.Handlers.Presence byte[] Report(Dictionary request) { PresenceInfo info = new PresenceInfo(); - info.Data = new Dictionary(); if (request["PrincipalID"] == null || request["RegionID"] == null) return FailureResult(); @@ -108,15 +107,6 @@ namespace OpenSim.Server.Handlers.Presence out info.RegionID)) return FailureResult(); - foreach (KeyValuePair kvp in request) - { - if (kvp.Key == "METHOD" || - kvp.Key == "PrincipalID" || - kvp.Key == "RegionID") - continue; - - info.Data[kvp.Key] = kvp.Value; - } if (m_PresenceService.Report(info)) return SuccessResult(); diff --git a/OpenSim/Services/Interfaces/IPresenceService.cs b/OpenSim/Services/Interfaces/IPresenceService.cs index aa1c5bfb40..4de57e3ac8 100644 --- a/OpenSim/Services/Interfaces/IPresenceService.cs +++ b/OpenSim/Services/Interfaces/IPresenceService.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System; using OpenSim.Framework; using System.Collections.Generic; using OpenMetaverse; @@ -35,7 +36,13 @@ namespace OpenSim.Services.Interfaces { public UUID PrincipalID; public UUID RegionID; - public Dictionary Data; + public UUID SessionID; + public UUID SecureSessionID; + public bool Online; + public DateTime Login; + public DateTime Logout; + public Vector3 Position; + public Vector3 LookAt; } public interface IPresenceService diff --git a/OpenSim/Services/PresenceService/PresenceService.cs b/OpenSim/Services/PresenceService/PresenceService.cs index 215746274b..04bcee65cb 100644 --- a/OpenSim/Services/PresenceService/PresenceService.cs +++ b/OpenSim/Services/PresenceService/PresenceService.cs @@ -55,11 +55,8 @@ namespace OpenSim.Services.PresenceService PresenceData p = new PresenceData(); p.Data = new Dictionary(); - p.UUID = presence.PrincipalID; - p.currentRegion = presence.RegionID; - - foreach (KeyValuePair kvp in presence.Data) - p.Data[kvp.Key] = kvp.Value; + p.PrincipalID = presence.PrincipalID; + p.RegionID = presence.RegionID; return false; }