aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
diff options
context:
space:
mode:
authorDiva Canto2009-12-27 20:34:42 -0800
committerDiva Canto2009-12-27 20:34:42 -0800
commit3ef513e863097bdccffa8c84283ab8ffc0915a8f (patch)
tree0e388f2a40f738b4f48e48d833d545b6eb70528b /OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
parentChanged GetAgents to take string[] instead of UUID[] (diff)
downloadopensim-SC_OLD-3ef513e863097bdccffa8c84283ab8ffc0915a8f.zip
opensim-SC_OLD-3ef513e863097bdccffa8c84283ab8ffc0915a8f.tar.gz
opensim-SC_OLD-3ef513e863097bdccffa8c84283ab8ffc0915a8f.tar.bz2
opensim-SC_OLD-3ef513e863097bdccffa8c84283ab8ffc0915a8f.tar.xz
Presence remote connector and handler. Presence HG Broker. Nothing tested, just compiles.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs158
1 files changed, 158 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
new file mode 100644
index 0000000..eacf467
--- /dev/null
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
@@ -0,0 +1,158 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27using System;
28using System.Collections.Generic;
29using System.Reflection;
30
31using OpenSim.Region.Framework.Interfaces;
32using OpenSim.Region.Framework.Scenes;
33using OpenSim.Server.Base;
34using OpenSim.Services.Interfaces;
35using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo;
36
37using OpenMetaverse;
38using log4net;
39using Nini.Config;
40
41namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
42{
43 public class RemotePresenceServiceConnector : ISharedRegionModule, IPresenceService
44 {
45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46
47 #region ISharedRegionModule
48
49 private bool m_Enabled = false;
50
51 private PresenceDetector m_PresenceDetector;
52 private IPresenceService m_RemoteConnector;
53
54 public Type ReplaceableInterface
55 {
56 get { return null; }
57 }
58
59 public string Name
60 {
61 get { return "RemotePresenceServiceConnector"; }
62 }
63
64 public void Initialise(IConfigSource source)
65 {
66 IConfig moduleConfig = source.Configs["Modules"];
67 if (moduleConfig != null)
68 {
69 string name = moduleConfig.GetString("PresenceServices", "");
70 if (name == Name)
71 {
72 //m_RemoteConnector = new PresenceServicesConnector(source);
73
74 m_Enabled = true;
75
76 m_PresenceDetector = new PresenceDetector(this);
77
78 m_log.Info("[INVENTORY CONNECTOR]: Remote presence enabled");
79 }
80 }
81
82 }
83
84 public void PostInitialise()
85 {
86 }
87
88 public void Close()
89 {
90 }
91
92 public void AddRegion(Scene scene)
93 {
94 if (!m_Enabled)
95 return;
96
97 scene.RegisterModuleInterface<IPresenceService>(this);
98 m_PresenceDetector.AddRegion(scene);
99
100 m_log.InfoFormat("[REMOTE PRESENCE CONNECTOR]: Enabled remote presence for region {0}", scene.RegionInfo.RegionName);
101
102 }
103
104 public void RemoveRegion(Scene scene)
105 {
106 if (!m_Enabled)
107 return;
108
109 m_PresenceDetector.RemoveRegion(scene);
110 }
111
112 public void RegionLoaded(Scene scene)
113 {
114 if (!m_Enabled)
115 return;
116
117 }
118
119 #endregion
120
121 #region IPresenceService
122
123 public bool LoginAgent(UUID principalID, UUID sessionID, UUID secureSessionID)
124 {
125 m_log.Warn("[REMOTE PRESENCE CONNECTOR]: LoginAgent connector not implemented at the simulators");
126 return false;
127 }
128
129 public bool LogoutAgent(UUID sessionID)
130 {
131 return m_RemoteConnector.LogoutAgent(sessionID);
132 }
133
134
135 public bool LogoutRegionAgents(UUID regionID)
136 {
137 return m_RemoteConnector.LogoutRegionAgents(regionID);
138 }
139
140 public bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt)
141 {
142 return m_RemoteConnector.ReportAgent(sessionID, regionID, position, lookAt);
143 }
144
145 public PresenceInfo GetAgent(UUID sessionID)
146 {
147 return m_RemoteConnector.GetAgent(sessionID);
148 }
149
150 public PresenceInfo[] GetAgents(string[] principalIDs)
151 {
152 return m_RemoteConnector.GetAgents(principalIDs);
153 }
154
155 #endregion
156
157 }
158}