aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Interfaces/ISimulationService.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Services/Interfaces/ISimulationService.cs131
1 files changed, 131 insertions, 0 deletions
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs
new file mode 100644
index 0000000..42c414d
--- /dev/null
+++ b/OpenSim/Services/Interfaces/ISimulationService.cs
@@ -0,0 +1,131 @@
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 */
27
28using System;
29using System.Collections.Generic;
30using OpenSim.Framework;
31using OpenMetaverse;
32
33using GridRegion = OpenSim.Services.Interfaces.GridRegion;
34
35namespace OpenSim.Services.Interfaces
36{
37 public interface ISimulationService
38 {
39 /// <summary>
40 /// Retrieve the scene with the given region ID.
41 /// </summary>
42 /// <param name='regionId'>
43 /// Region identifier.
44 /// </param>
45 /// <returns>
46 /// The scene.
47 /// </returns>
48 IScene GetScene(UUID regionId);
49
50 ISimulationService GetInnerService();
51
52 #region Agents
53
54 /// <summary>
55 /// Ask the simulator hosting the destination to create an agent on that region.
56 /// </summary>
57 /// <param name="source">The region that the user is coming from. Will be null if the user
58 /// logged-in directly, or arrived from a simulator that doesn't send this parameter.</param>
59 /// <param name="destination"></param>
60 /// <param name="aCircuit"></param>
61 /// <param name="flags"></param>
62 /// <param name="reason">Reason message in the event of a failure.</param>
63 bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason);
64
65 /// <summary>
66 /// Full child agent update.
67 /// </summary>
68 /// <param name="regionHandle"></param>
69 /// <param name="data"></param>
70 /// <returns></returns>
71 bool UpdateAgent(GridRegion destination, AgentData data);
72
73 /// <summary>
74 /// Short child agent update, mostly for position.
75 /// </summary>
76 /// <param name="regionHandle"></param>
77 /// <param name="data"></param>
78 /// <returns></returns>
79 bool UpdateAgent(GridRegion destination, AgentPosition data);
80
81 /// <summary>
82 /// Returns whether a propspective user is allowed to visit the region.
83 /// </summary>
84 /// <param name="destination">Desired destination</param>
85 /// <param name="agentID">The visitor's User ID</param>
86 /// <param name="agentHomeURI">The visitor's Home URI. Will be missing (null) in older OpenSims.</param>
87 /// <param name="viaTeleport">True: via teleport; False: via cross (walking)</param>
88 /// <param name="position">Position in the region</param>
89 /// <param name="sversion">
90 /// Version that the requesting simulator is runing. If null then no version check is carried out.
91 /// </param>
92 /// <param name="version">Version that the target simulator is running</param>
93 /// <param name="reason">[out] Optional error message</param>
94 /// <returns>True: ok; False: not allowed</returns>
95 bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string sversion, List<UUID> features, out string version, out string reason);
96
97 /// <summary>
98 /// Message from receiving region to departing region, telling it got contacted by the client.
99 /// When sent over REST, it invokes the opaque uri.
100 /// </summary>
101 /// <param name="regionHandle"></param>
102 /// <param name="id"></param>
103 /// <param name="uri"></param>
104 /// <returns></returns>
105 bool ReleaseAgent(UUID originRegion, UUID id, string uri);
106
107 /// <summary>
108 /// Close agent.
109 /// </summary>
110 /// <param name="regionHandle"></param>
111 /// <param name="id"></param>
112 /// <returns></returns>
113 bool CloseAgent(GridRegion destination, UUID id, string auth_token);
114
115 #endregion Agents
116
117 #region Objects
118
119 /// <summary>
120 /// Create an object in the destination region. This message is used primarily for prim crossing.
121 /// </summary>
122 /// <param name="regionHandle"></param>
123 /// <param name="sog"></param>
124 /// <param name="isLocalCall"></param>
125 /// <returns></returns>
126 bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall);
127
128 #endregion Objects
129
130 }
131}