aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Interfaces/IHypergridServices.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/Interfaces/IHypergridServices.cs')
-rw-r--r--OpenSim/Services/Interfaces/IHypergridServices.cs66
1 files changed, 53 insertions, 13 deletions
diff --git a/OpenSim/Services/Interfaces/IHypergridServices.cs b/OpenSim/Services/Interfaces/IHypergridServices.cs
index 3dc877a..5e012fb 100644
--- a/OpenSim/Services/Interfaces/IHypergridServices.cs
+++ b/OpenSim/Services/Interfaces/IHypergridServices.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -37,31 +37,71 @@ namespace OpenSim.Services.Interfaces
37 public interface IGatekeeperService 37 public interface IGatekeeperService
38 { 38 {
39 bool LinkRegion(string regionDescriptor, out UUID regionID, out ulong regionHandle, out string externalName, out string imageURL, out string reason); 39 bool LinkRegion(string regionDescriptor, out UUID regionID, out ulong regionHandle, out string externalName, out string imageURL, out string reason);
40 GridRegion GetHyperlinkRegion(UUID regionID); 40
41 /// <summary>
42 /// Returns the region a Hypergrid visitor should enter.
43 /// </summary>
44 /// <remarks>
45 /// Usually the returned region will be the requested region. But the grid can choose to
46 /// redirect the user to another region: e.g., a default gateway region.
47 /// </remarks>
48 /// <param name="regionID">The region the visitor *wants* to enter</param>
49 /// <param name="agentID">The visitor's User ID. Will be missing (UUID.Zero) in older OpenSims.</param>
50 /// <param name="agentHomeURI">The visitor's Home URI. Will be missing (null) in older OpenSims.</param>
51 /// <param name="message">[out] A message to show to the user (optional, may be null)</param>
52 /// <returns>The region the visitor should enter, or null if no region can be found / is allowed</returns>
53 GridRegion GetHyperlinkRegion(UUID regionID, UUID agentID, string agentHomeURI, out string message);
41 54
42 bool LoginAgent(AgentCircuitData aCircuit, GridRegion destination, out string reason); 55 bool LoginAgent(GridRegion source, AgentCircuitData aCircuit, GridRegion destination, out string reason);
43 56
44 } 57 }
45 58
46 /// <summary>
47 /// HG1.5 only
48 /// </summary>
49 public interface IUserAgentService 59 public interface IUserAgentService
50 { 60 {
51 // called by login service only 61 bool LoginAgentToGrid(GridRegion source, AgentCircuitData agent, GridRegion gatekeeper, GridRegion finalDestination, bool fromLogin, out string reason);
52 bool LoginAgentToGrid(AgentCircuitData agent, GridRegion gatekeeper, GridRegion finalDestination, IPEndPoint clientIP, out string reason); 62
53 // called by simulators
54 bool LoginAgentToGrid(AgentCircuitData agent, GridRegion gatekeeper, GridRegion finalDestination, out string reason);
55 void LogoutAgent(UUID userID, UUID sessionID); 63 void LogoutAgent(UUID userID, UUID sessionID);
64
65 /// <summary>
66 /// Returns the home region of a remote user.
67 /// </summary>
68 /// <returns>On success: the user's home region. If the user doesn't exist: null.</returns>
69 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
56 GridRegion GetHomeRegion(UUID userID, out Vector3 position, out Vector3 lookAt); 70 GridRegion GetHomeRegion(UUID userID, out Vector3 position, out Vector3 lookAt);
71
72 /// <summary>
73 /// Returns the Server URLs of a remote user.
74 /// </summary>
75 /// <returns>On success: the user's Server URLs. If the user doesn't exist: an empty dictionary.</returns>
76 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
57 Dictionary<string, object> GetServerURLs(UUID userID); 77 Dictionary<string, object> GetServerURLs(UUID userID);
58 Dictionary<string,object> GetUserInfo(UUID userID);
59 78
79 /// <summary>
80 /// Returns the UserInfo of a remote user.
81 /// </summary>
82 /// <returns>On success: the user's UserInfo. If the user doesn't exist: an empty dictionary.</returns>
83 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
84 Dictionary<string, object> GetUserInfo(UUID userID);
85
86 /// <summary>
87 /// Returns the current location of a remote user.
88 /// </summary>
89 /// <returns>On success: the user's Server URLs. If the user doesn't exist: "".</returns>
90 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
60 string LocateUser(UUID userID); 91 string LocateUser(UUID userID);
61 // Tries to get the universal user identifier for the targetUserId 92
62 // on behalf of the userID 93 /// <summary>
94 /// Returns the Universal User Identifier for 'targetUserID' on behalf of 'userID'.
95 /// </summary>
96 /// <returns>On success: the user's UUI. If the user doesn't exist: "".</returns>
97 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
63 string GetUUI(UUID userID, UUID targetUserID); 98 string GetUUI(UUID userID, UUID targetUserID);
64 99
100 /// <summary>
101 /// Returns the remote user that has the given name.
102 /// </summary>
103 /// <returns>On success: the user's UUID. If the user doesn't exist: UUID.Zero.</returns>
104 /// <remarks>Throws an exception if an error occurs (e.g., can't contact the server).</remarks>
65 UUID GetUUID(String first, String last); 105 UUID GetUUID(String first, String last);
66 106
67 // Returns the local friends online 107 // Returns the local friends online