aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Interfaces
diff options
context:
space:
mode:
authorDr Scofield2009-02-06 16:55:34 +0000
committerDr Scofield2009-02-06 16:55:34 +0000
commit9b66108081a8c8cf79faaa6c541554091c40850e (patch)
tree095a232ae5a9de3a9244bcd34da08294f61eeea5 /OpenSim/Region/Framework/Interfaces
parent* removed superfluous constants class (diff)
downloadopensim-SC-9b66108081a8c8cf79faaa6c541554091c40850e.zip
opensim-SC-9b66108081a8c8cf79faaa6c541554091c40850e.tar.gz
opensim-SC-9b66108081a8c8cf79faaa6c541554091c40850e.tar.bz2
opensim-SC-9b66108081a8c8cf79faaa6c541554091c40850e.tar.xz
This changeset is the step 1 of 2 in refactoring
OpenSim.Region.Environment into a "framework" part and a modules only part. This first changeset refactors OpenSim.Region.Environment.Scenes, OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region modules in OpenSim.Region.Environment. The next step will be to move region modules up from OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and then sort out which modules are really core modules and which should move out to forge. I've been very careful to NOT BREAK anything. i hope i've succeeded. as this is the work of a whole week i hope i managed to keep track with the applied patches of the last week --- could any of you that did check in stuff have a look at whether it survived? thx!
Diffstat (limited to 'OpenSim/Region/Framework/Interfaces')
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs49
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs39
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs74
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommand.cs50
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommandableModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommander.cs47
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDialogModule.cs136
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs58
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEmailModule.cs48
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityCreator.cs56
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityInventory.cs207
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEstateModule.cs44
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEventQueue.cs64
-rw-r--r--OpenSim/Region/Framework/Interfaces/IFriendsModule.cs49
-rw-r--r--OpenSim/Region/Framework/Interfaces/IGroupsModule.cs68
-rw-r--r--OpenSim/Region/Framework/Interfaces/IHttpRequests.cs51
-rw-r--r--OpenSim/Region/Framework/Interfaces/IInterregionComms.cs81
-rw-r--r--OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs42
-rw-r--r--OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/ILandChannel.cs49
-rw-r--r--OpenSim/Region/Framework/Interfaces/ILandObject.cs83
-rw-r--r--OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/IPresenceModule.cs56
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs75
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs109
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionModule.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs122
-rw-r--r--OpenSim/Region/Framework/Interfaces/IScriptModule.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/IServiceRequest.cs45
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISoundModule.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrain.cs78
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs48
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITextureSender.cs58
-rw-r--r--OpenSim/Region/Framework/Interfaces/IVegetationModule.cs49
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWindModule.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWorldComm.cs64
-rw-r--r--OpenSim/Region/Framework/Interfaces/IXMLRPC.cs66
-rw-r--r--OpenSim/Region/Framework/Interfaces/IXfer.cs34
39 files changed, 2422 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs
new file mode 100644
index 0000000..49a5dd0
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs
@@ -0,0 +1,49 @@
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 OpenSim 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 OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Region.Framework.Interfaces;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IAgentAssetTransactions
36 {
37 void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID,
38 InventoryItemBase item);
39
40 void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID,
41 uint callbackID, string description, string name, sbyte invType,
42 sbyte type, byte wearableType, uint nextOwnerMask);
43
44 void HandleTaskItemUpdateFromTransaction(
45 IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item);
46
47 void RemoveAgentAssetTransactions(UUID userID);
48 }
49}
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs
new file mode 100644
index 0000000..b533206
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs
@@ -0,0 +1,39 @@
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 OpenSim 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 OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Region.Framework.Interfaces;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IAvatarFactory
35 {
36 bool TryGetAvatarAppearance(UUID avatarId, out AvatarAppearance appearance);
37 void UpdateDatabase(UUID userID, AvatarAppearance avatAppearance);
38 }
39}
diff --git a/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs
new file mode 100644
index 0000000..bac0b2e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs
@@ -0,0 +1,74 @@
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 OpenSim 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 OpenMetaverse;
31using OpenSim.Framework;
32using Caps = OpenSim.Framework.Communications.Capabilities.Caps;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 public interface ICapabilitiesModule
37 {
38 void NewUserConnection(AgentCircuitData agent);
39
40 /// <summary>
41 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent,
42 /// then it is replaced by a new CAPS handler.
43 ///
44 /// FIXME: On login this is called twice, once for the login and once when the connection is made.
45 /// This is somewhat innefficient and should be fixed. The initial login creation is necessary
46 /// since the client asks for capabilities immediately after being informed of the seed.
47 /// </summary>
48 /// <param name="agentId"></param>
49 /// <param name="capsObjectPath"></param>
50 void AddCapsHandler(UUID agentId);
51
52 /// <summary>
53 /// Remove the caps handler for a given agent.
54 /// </summary>
55 /// <param name="agentId"></param>
56 void RemoveCapsHandler(UUID agentId);
57
58 /// <summary>
59 /// Will return null if the agent doesn't have a caps handler registered
60 /// </summary>
61 /// <param name="agentId"></param>
62 Caps GetCapsHandlerForUser(UUID agentId);
63
64 Dictionary<ulong, string> GetChildrenSeeds(UUID agentID);
65
66 string GetChildSeed(UUID agentID, ulong handle);
67
68 void SetChildrenSeed(UUID agentID, Dictionary<ulong, string> seeds);
69
70 void DropChildSeed(UUID agentID, ulong handle);
71
72 string GetCapsPath(UUID agentId);
73 }
74}
diff --git a/OpenSim/Region/Framework/Interfaces/ICommand.cs b/OpenSim/Region/Framework/Interfaces/ICommand.cs
new file mode 100644
index 0000000..1551b58
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICommand.cs
@@ -0,0 +1,50 @@
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 OpenSim 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.Collections.Generic;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public enum CommandIntentions
33 {
34 COMMAND_STATISTICAL,
35 COMMAND_NON_HAZARDOUS,
36 COMMAND_HAZARDOUS
37 };
38
39 public interface ICommand
40 {
41 void AddArgument(string name, string helptext, string type);
42 Dictionary<string, string> Arguments { get; }
43 string Help { get; }
44 string Name { get; }
45 CommandIntentions Intentions { get; }
46
47 void Run(object[] args);
48 void ShowConsoleHelp();
49 }
50}
diff --git a/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs b/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs
new file mode 100644
index 0000000..5d6660d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs
@@ -0,0 +1,37 @@
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 OpenSim 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
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ICommandableModule
31 {
32 ICommander CommandInterface
33 {
34 get;
35 }
36 }
37}
diff --git a/OpenSim/Region/Framework/Interfaces/ICommander.cs b/OpenSim/Region/Framework/Interfaces/ICommander.cs
new file mode 100644
index 0000000..17a2e4a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs
@@ -0,0 +1,47 @@
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 OpenSim 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
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ICommander
31 {
32 /// <value>
33 /// The name of this commander
34 /// </value>
35 string Name { get; }
36
37 /// <value>
38 /// Provide general help information about this commander.
39 /// </value>
40 string Help { get; }
41
42 void ProcessConsoleCommand(string function, string[] args);
43 void RegisterCommand(string commandName, ICommand command);
44 void Run(string function, object[] args);
45 string GenerateRuntimeAPI();
46 }
47}
diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
new file mode 100644
index 0000000..7247d52
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
@@ -0,0 +1,136 @@
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 OpenSim 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 OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IDialogModule
35 {
36 /// <summary>
37 /// Send a non-modal alert message to a particular user. This can disappear from the user's view after a
38 /// small interval.
39 /// </summary>
40 /// <param name="client"></param>
41 /// <param name="message"></param>
42 void SendAlertToUser(IClientAPI client, string message);
43
44 /// <summary>
45 /// Send an alert message to a particular user.
46 /// </summary>
47 /// <param name="client"></param>
48 /// <param name="message"></param>
49 /// <param name="modal"></param>
50 void SendAlertToUser(IClientAPI client, string message, bool modal);
51
52 /// <summary>
53 /// Send a non-modal alert message to a particular user.
54 /// </summary>
55 /// <param name="agentID"></param>
56 /// <param name="message"></param>
57 void SendAlertToUser(UUID agentID, string message);
58
59 /// <summary>
60 /// Send an alert message to a particular user.
61 /// </summary>
62 /// <param name="agentID"></param>
63 /// <param name="message"></param>
64 /// <param name="modal"></param>
65 void SendAlertToUser(UUID agentID, string message, bool modal);
66
67 /// <summary>
68 /// Send an alert message to a particular user.
69 /// </summary>
70 /// <param name="firstName"></param>
71 /// <param name="lastName"></param>
72 /// <param name="message"></param>
73 /// <param name="modal"></param>
74 void SendAlertToUser(string firstName, string lastName, string message, bool modal);
75
76 /// <summary>
77 /// Send an alert message to all users in the scene.
78 /// </summary>
79 /// <param name="message"></param>
80 void SendGeneralAlert(string message);
81
82 /// <summary>
83 /// Send a dialog box to a particular user.
84 /// </summary>
85 /// <param name="avatarID"></param>
86 /// <param name="objectName"></param>
87 /// <param name="objectID"></param>
88 /// <param name="ownerID"></param>
89 /// <param name="message"></param>
90 /// <param name="textureID"></param>
91 /// <param name="ch"></param>
92 /// <param name="buttonlabels"></param>
93 void SendDialogToUser(
94 UUID avatarID, string objectName, UUID objectID, UUID ownerID,
95 string message, UUID textureID, int ch, string[] buttonlabels);
96
97 /// <summary>
98 /// Send a url to a particular user.
99 /// </summary>
100 /// <param name="avatarID"></param>
101 /// <param name="objectName"></param>
102 /// <param name="objectID"></param>
103 /// <param name="ownerID"></param>
104 /// <param name="groupOwned"></param>
105 /// <param name="message"></param>
106 /// <param name="url"></param>
107 void SendUrlToUser(
108 UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url);
109
110 /// <summary>
111 /// Send a notification to all users in the scene. This notification should remain around until the
112 /// user explicitly dismisses it.
113 /// </summary>
114 ///
115 /// On the Linden Labs Second Client (as of 1.21), this is a big blue box message on the upper right of the
116 /// screen.
117 ///
118 /// <param name="fromAvatarID">The user sending the message</param>
119 /// <param name="fromAvatarName">The name of the user doing the sending</param>
120 /// <param name="message">The message being sent to the user</param>
121 void SendNotificationToUsersInRegion(UUID fromAvatarID, string fromAvatarName, string message);
122
123 /// <summary>
124 /// Send a notification to all users in the estate. This notification should remain around until the
125 /// user explicitly dismisses it.
126 /// </summary>
127 ///
128 /// On the Linden Labs Second Client (as of 1.21), this is a big blue box message on the upper right of the
129 /// screen.
130 ///
131 /// <param name="fromAvatarID">The user sending the message</param>
132 /// <param name="fromAvatarName">The name of the user doing the sending</param>
133 /// <param name="message">The message being sent to the user</param>
134 void SendNotificationToUsersInEstate(UUID fromAvatarID, string fromAvatarName, string message);
135 }
136}
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs
new file mode 100644
index 0000000..e119bc3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs
@@ -0,0 +1,58 @@
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 OpenSim 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.IO;
29using OpenMetaverse;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IDynamicTextureManager
34 {
35 void RegisterRender(string handleType, IDynamicTextureRender render);
36 void ReturnData(UUID id, byte[] data);
37
38 UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams,
39 int updateTimer);
40 UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams,
41 int updateTimer, bool SetBlending, byte AlphaValue);
42 UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams,
43 int updateTimer);
44 UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams,
45 int updateTimer, bool SetBlending, byte AlphaValue);
46 }
47
48 public interface IDynamicTextureRender
49 {
50 string GetName();
51 string GetContentType();
52 bool SupportsAsynchronous();
53 byte[] ConvertUrl(string url, string extraParams);
54 byte[] ConvertStream(Stream data, string extraParams);
55 bool AsyncConvertUrl(UUID id, string url, string extraParams);
56 bool AsyncConvertData(UUID id, string bodyData, string extraParams);
57 }
58}
diff --git a/OpenSim/Region/Framework/Interfaces/IEmailModule.cs b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs
new file mode 100644
index 0000000..b5f885a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs
@@ -0,0 +1,48 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public class Email
35 {
36 public string time;
37 public string sender;
38 public string subject;
39 public string message;
40 public int numLeft;
41 }
42
43 public interface IEmailModule : IRegionModule
44 {
45 void SendEmail(UUID objectID, string address, string subject, string body);
46 Email GetNextEmail(UUID objectID, string sender, string subject);
47 }
48}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
new file mode 100644
index 0000000..1a6e626
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
@@ -0,0 +1,56 @@
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 OpenSim 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 OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Region.Framework.Scenes;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 /// <summary>
35 /// Interface to a class that is capable of creating entities
36 /// </summary>
37 public interface IEntityCreator
38 {
39 /// <summary>
40 /// The entities that this class is capable of creating. These match the PCode format.
41 /// </summary>
42 /// <returns></returns>
43 PCode[] CreationCapabilities { get; }
44
45 /// <summary>
46 /// Create an entity
47 /// </summary>
48 /// <param name="ownerID"></param>
49 /// <param name="groupID"></param>
50 /// <param name="pos"></param>
51 /// <param name="rot"></param>
52 /// <param name="shape"></param>
53 /// <returns>The entity created, or null if the creation failed</returns>
54 SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape);
55 }
56}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
new file mode 100644
index 0000000..20fe090
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
@@ -0,0 +1,207 @@
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 OpenSim 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 System.Reflection;
31using OpenMetaverse;
32using log4net;
33using OpenSim.Framework;
34using OpenSim.Framework.Communications.Cache;
35using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Region.Framework.Scenes.Scripting;
37
38namespace OpenSim.Region.Framework.Interfaces
39{
40 /// <summary>
41 /// Interface to an entity's (SceneObjectPart's) inventory
42 /// </summary>
43 ///
44 /// This is not a finished 1.0 candidate interface
45 public interface IEntityInventory
46 {
47 /// <summary>
48 /// Force the task inventory of this prim to persist at the next update sweep
49 /// </summary>
50 void ForceInventoryPersistence();
51
52 /// <summary>
53 /// Reset UUIDs for all the items in the prim's inventory.
54 /// </summary>
55 ///
56 /// This involves either generating
57 /// new ones or setting existing UUIDs to the correct parent UUIDs.
58 ///
59 /// If this method is called and there are inventory items, then we regard the inventory as having changed.
60 ///
61 /// <param name="linkNum">Link number for the part</param>
62 void ResetInventoryIDs();
63
64 /// <summary>
65 /// Change every item in this inventory to a new owner.
66 /// </summary>
67 /// <param name="ownerId"></param>
68 void ChangeInventoryOwner(UUID ownerId);
69
70 /// <summary>
71 /// Change every item in this inventory to a new group.
72 /// </summary>
73 /// <param name="groupID"></param>
74 void ChangeInventoryGroup(UUID groupID);
75
76 /// <summary>
77 /// Start all the scripts contained in this entity's inventory
78 /// </summary>
79 void CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
80
81 /// <summary>
82 /// Stop all the scripts in this entity.
83 /// </summary>
84 void RemoveScriptInstances();
85
86 /// <summary>
87 /// Start a script which is in this entity's inventory.
88 /// </summary>
89 /// <param name="item"></param>
90 /// <param name="postOnRez"></param>
91 /// <param name="engine"></param>
92 /// <param name="stateSource"></param>
93 void CreateScriptInstance(
94 TaskInventoryItem item, int startParam, bool postOnRez, string engine, int stateSource);
95
96 /// <summary>
97 /// Start a script which is in this entity's inventory.
98 /// </summary>
99 /// <param name="itemId"></param>
100 /// <param name="startParam"></param>
101 /// <param name="postOnRez"></param>
102 /// <param name="engine"></param>
103 /// <param name="stateSource"></param>
104 void CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource);
105
106 /// <summary>
107 /// Stop a script which is in this prim's inventory.
108 /// </summary>
109 /// <param name="itemId"></param>
110 void RemoveScriptInstance(UUID itemId);
111
112 /// <summary>
113 /// Add an item to this entity's inventory. If an item with the same name already exists, then an alternative
114 /// name is chosen.
115 /// </summary>
116 /// <param name="item"></param>
117 void AddInventoryItem(TaskInventoryItem item, bool allowedDrop);
118
119 /// <summary>
120 /// Add an item to this entity's inventory. If an item with the same name already exists, it is replaced.
121 /// </summary>
122 /// <param name="item"></param>
123 void AddInventoryItemExclusive(TaskInventoryItem item, bool allowedDrop);
124
125 /// <summary>
126 /// Restore a whole collection of items to the entity's inventory at once.
127 /// We assume that the items already have all their fields correctly filled out.
128 /// The items are not flagged for persistence to the database, since they are being restored
129 /// from persistence rather than being newly added.
130 /// </summary>
131 /// <param name="items"></param>
132 void RestoreInventoryItems(ICollection<TaskInventoryItem> items);
133
134 /// <summary>
135 /// Returns an existing inventory item. Returns the original, so any changes will be live.
136 /// </summary>
137 /// <param name="itemID"></param>
138 /// <returns>null if the item does not exist</returns>
139 TaskInventoryItem GetInventoryItem(UUID itemId);
140
141 /// <summary>
142 /// Update an existing inventory item.
143 /// </summary>
144 /// <param name="item">The updated item. An item with the same id must already exist
145 /// in this prim's inventory.</param>
146 /// <returns>false if the item did not exist, true if the update occurred successfully</returns>
147 bool UpdateInventoryItem(TaskInventoryItem item);
148
149 /// <summary>
150 /// Remove an item from this entity's inventory
151 /// </summary>
152 /// <param name="itemID"></param>
153 /// <returns>Numeric asset type of the item removed. Returns -1 if the item did not exist
154 /// in this prim's inventory.</returns>
155 int RemoveInventoryItem(UUID itemID);
156
157 /// <summary>
158 /// Return the name with which a client can request a xfer of this prim's inventory metadata
159 /// </summary>
160 string GetInventoryFileName();
161
162 bool GetInventoryFileName(IClientAPI client, uint localID);
163
164 /// <summary>
165 /// Serialize all the metadata for the items in this prim's inventory ready for sending to the client
166 /// </summary>
167 /// <param name="xferManager"></param>
168 void RequestInventoryFile(IClientAPI client, IXfer xferManager);
169
170 /// <summary>
171 /// Backup the inventory to the given data store
172 /// </summary>
173 /// <param name="datastore"></param>
174 void ProcessInventoryBackup(IRegionDataStore datastore);
175
176 uint MaskEffectivePermissions();
177
178 void ApplyNextOwnerPermissions();
179
180 void ApplyGodPermissions(uint perms);
181
182 /// <summary>
183 /// Returns true if this inventory contains any scripts
184 /// </summary></returns>
185 bool ContainsScripts();
186
187 /// <summary>
188 /// Get the uuids of all items in this inventory
189 /// </summary>
190 /// <returns></returns>
191 List<UUID> GetInventoryList();
192
193 /// <summary>
194 /// Get the names of the assemblies associated with scripts in this inventory.
195 /// </summary>
196 /// <returns></returns>
197 string[] GetScriptAssemblies();
198
199 /// <summary>
200 /// Get the xml representing the saved states of scripts in this inventory.
201 /// </summary>
202 /// <returns>
203 /// A <see cref="Dictionary`2"/>
204 /// </returns>
205 Dictionary<UUID, string> GetScriptStates();
206 }
207}
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs
new file mode 100644
index 0000000..4da115e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IEstateDataStore
35 {
36 void Initialise(string connectstring);
37
38 EstateSettings LoadEstateSettings(UUID regionID);
39 void StoreEstateSettings(EstateSettings es);
40 }
41}
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
new file mode 100644
index 0000000..f169f61
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
@@ -0,0 +1,44 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IEstateModule : IRegionModule
35 {
36 uint GetRegionFlags();
37 bool IsManager(UUID avatarID);
38
39 /// <summary>
40 /// Tell all clients about the current state of the region (terrain textures, water height, etc.).
41 /// </summary>
42 void sendRegionHandshakeToAll();
43 }
44}
diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
new file mode 100644
index 0000000..cf609ae
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
@@ -0,0 +1,64 @@
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 OpenSim 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.Net;
30using OpenSim.Framework;
31using OpenMetaverse;
32using OpenMetaverse.Packets;
33using OpenMetaverse.StructuredData;
34using System.Collections.Generic;
35using System.Text;
36
37namespace OpenSim.Region.Framework.Interfaces
38{
39 public interface IEventQueue
40 {
41 bool Enqueue(OSD o, UUID avatarID);
42
43 // These are required to decouple Scenes from EventQueueHelper
44 void DisableSimulator(ulong handle, UUID avatarID);
45 void EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID);
46 void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint,
47 string capsPath);
48 void TeleportFinishEvent(ulong regionHandle, byte simAccess,
49 IPEndPoint regionExternalEndPoint,
50 uint locationID, uint flags, string capsURL,
51 UUID agentID);
52 void CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt,
53 IPEndPoint newRegionExternalEndPoint,
54 string capsURL, UUID avatarID, UUID sessionID);
55 void ChatterboxInvitation(UUID sessionID, string sessionName,
56 UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog,
57 uint timeStamp, bool offline, int parentEstateID, Vector3 position,
58 uint ttl, UUID transactionID, bool fromGroup, byte[] binaryBucket);
59 void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID toAgent, bool canVoiceChat,
60 bool isModerator, bool textMute);
61 void ParcelProperties(ParcelPropertiesPacket parcelPropertiesPacket, UUID avatarID);
62 void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID);
63 }
64}
diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
new file mode 100644
index 0000000..0bdfb8f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
@@ -0,0 +1,49 @@
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 OpenSim 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 OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IFriendsModule
34 {
35 /// <summary>
36 /// Offer a friendship to a user from the server end rather than by direct initiation from a client.
37 /// </summary>
38 /// <param name="fromUserId">
39 /// A user with this id must existing in the user data store, but need not be logged on.
40 /// </param>
41 /// <param name="toUserClient">
42 /// An actually logged in client to which the offer is being made.
43 /// FIXME: This is somewhat too tightly coupled - it should arguably be possible to offer friendships even if the
44 /// receiving user is not currently online.
45 /// </param>
46 /// <param name="offerMessage"></param>
47 void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage);
48 }
49}
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
new file mode 100644
index 0000000..16527d1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
@@ -0,0 +1,68 @@
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 OpenSim 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
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public delegate void NewGroupNotice(UUID groupID, UUID noticeID);
36
37 public interface IGroupsModule
38 {
39 event NewGroupNotice OnNewGroupNotice;
40
41 void ActivateGroup(IClientAPI remoteClient, UUID groupID);
42 List<GroupTitlesData> GroupTitlesRequest(IClientAPI remoteClient, UUID groupID);
43 List<GroupMembersData> GroupMembersRequest(IClientAPI remoteClient, UUID groupID);
44 List<GroupRolesData> GroupRoleDataRequest(IClientAPI remoteClient, UUID groupID);
45 List<GroupRoleMembersData> GroupRoleMembersRequest(IClientAPI remoteClient, UUID groupID);
46 GroupProfileData GroupProfileRequest(IClientAPI remoteClient, UUID groupID);
47 GroupMembershipData[] GetMembershipData(UUID UserID);
48
49 void UpdateGroupInfo(IClientAPI remoteClient, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish);
50
51 void SetGroupAcceptNotices(IClientAPI remoteClient, UUID groupID, bool acceptNotices, bool listInProfile);
52
53 void GroupTitleUpdate(IClientAPI remoteClient, UUID GroupID, UUID TitleRoleID);
54 UUID CreateGroup(IClientAPI remoteClient, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish);
55
56 GroupNoticeData[] GroupNoticesListRequest(IClientAPI remoteClient, UUID GroupID);
57 string GetGroupTitle(UUID avatarID);
58 void GroupRoleUpdate(IClientAPI remoteClient, UUID GroupID, UUID RoleID, string name, string description, string title, ulong powers, byte updateType);
59 void GroupRoleChanges(IClientAPI remoteClient, UUID GroupID, UUID RoleID, UUID MemberID, uint changes);
60 void GroupNoticeRequest(IClientAPI remoteClient, UUID groupNoticeID);
61 void SendGroupNoticeToClient(IClientAPI remoteClient, UUID groupNoticeID, byte dialog);
62 void SendAgentGroupDataUpdate(IClientAPI remoteClient);
63 void JoinGroupRequest(IClientAPI remoteClient, UUID GroupID);
64 void LeaveGroupRequest(IClientAPI remoteClient, UUID GroupID);
65 void EjectGroupMemberRequest(IClientAPI remoteClient, UUID GroupID, UUID EjecteeID);
66 void InviteGroupRequest(IClientAPI remoteClient, UUID GroupID, UUID InviteeID, UUID RoleID);
67 }
68}
diff --git a/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs
new file mode 100644
index 0000000..fd49757
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs
@@ -0,0 +1,51 @@
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 OpenSim 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 System.Net;
31using OpenMetaverse;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public enum HttpRequestConstants
36 {
37 HTTP_METHOD = 0,
38 HTTP_MIMETYPE = 1,
39 HTTP_BODY_MAXLENGTH = 2,
40 HTTP_VERIFY_CERT = 3,
41 }
42
43 public interface IHttpRequestModule
44 {
45 UUID MakeHttpRequest(string url, string parameters, string body);
46 UUID StartHttpRequest(uint localID, UUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body);
47 void StopHttpRequest(uint m_localID, UUID m_itemID);
48 IServiceRequest GetNextCompletedRequest();
49 void RemoveCompletedRequest(UUID id);
50 }
51}
diff --git a/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs b/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs
new file mode 100644
index 0000000..783b3f9
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs
@@ -0,0 +1,81 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate bool ChildAgentUpdateReceived(AgentData data);
35
36 public interface IInterregionCommsOut
37 {
38 bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit);
39
40 /// <summary>
41 /// Full child agent update.
42 /// </summary>
43 /// <param name="regionHandle"></param>
44 /// <param name="data"></param>
45 /// <returns></returns>
46 bool SendChildAgentUpdate(ulong regionHandle, AgentData data);
47
48 /// <summary>
49 /// Short child agent update, mostly for position.
50 /// </summary>
51 /// <param name="regionHandle"></param>
52 /// <param name="data"></param>
53 /// <returns></returns>
54 bool SendChildAgentUpdate(ulong regionHandle, AgentPosition data);
55
56 /// <summary>
57 /// Message from receiving region to departing region, telling it got contacted by the client.
58 /// When sent over REST, it invokes the opaque uri.
59 /// </summary>
60 /// <param name="regionHandle"></param>
61 /// <param name="id"></param>
62 /// <param name="uri"></param>
63 /// <returns></returns>
64 bool SendReleaseAgent(ulong regionHandle, UUID id, string uri);
65
66 /// <summary>
67 /// Close agent.
68 /// </summary>
69 /// <param name="regionHandle"></param>
70 /// <param name="id"></param>
71 /// <returns></returns>
72 bool SendCloseAgent(ulong regionHandle, UUID id);
73 }
74
75 // This may not be needed, but having it here for now.
76 public interface IInterregionCommsIn
77 {
78 event ChildAgentUpdateReceived OnChildAgentUpdate;
79 }
80
81}
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs
new file mode 100644
index 0000000..4314271
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs
@@ -0,0 +1,42 @@
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 OpenSim 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.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Region.Framework.Scenes;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 /// <summary>
35 /// An interface for a module that manages inter-agent inventory offers and transfers.
36 /// </summary>
37 public interface IInventoryTransferModule
38 {
39 void SetRootAgentScene(UUID agentID, Scene scene);
40 bool NeedSceneCacheClear(UUID agentID, Scene scene);
41 }
42}
diff --git a/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs
new file mode 100644
index 0000000..1d10896
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 OpenMetaverse;
29using OpenMetaverse.Imaging;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33
34 public delegate void DecodedCallback(UUID AssetId, OpenJPEG.J2KLayerInfo[] layers);
35
36 public interface IJ2KDecoder
37 {
38 void decode(UUID AssetId, byte[] assetData, DecodedCallback decodedReturn);
39 void syncdecode(UUID AssetId, byte[] j2kdata);
40 }
41}
diff --git a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs
new file mode 100644
index 0000000..35c2fc1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs
@@ -0,0 +1,49 @@
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 OpenSim 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.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Interfaces;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface ILandChannel
36 {
37 List<ILandObject> ParcelsNearPoint(Vector3 position);
38 List<ILandObject> AllParcels();
39 ILandObject GetLandObject(int x, int y);
40 ILandObject GetLandObject(float x, float y);
41 bool IsLandPrimCountTainted();
42 bool IsForcefulBansAllowed();
43 void UpdateLandObject(int localID, LandData data);
44 void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient);
45 void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel);
46 void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel);
47 void SetParcelOtherCleanTime(IClientAPI remoteClient, int localID, int otherCleanTime);
48 }
49}
diff --git a/OpenSim/Region/Framework/Interfaces/ILandObject.cs b/OpenSim/Region/Framework/Interfaces/ILandObject.cs
new file mode 100644
index 0000000..52cc6cf
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ILandObject.cs
@@ -0,0 +1,83 @@
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 OpenSim 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.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public delegate int overrideParcelMaxPrimCountDelegate(ILandObject obj);
36 public delegate int overrideSimulatorMaxPrimCountDelegate(ILandObject obj);
37
38 public interface ILandObject
39 {
40 int getParcelMaxPrimCount(ILandObject thisObject);
41 int getSimulatorMaxPrimCount(ILandObject thisObject);
42
43 LandData landData { get; set; }
44 bool[,] landBitmap { get; set; }
45 UUID regionUUID { get; }
46 bool containsPoint(int x, int y);
47 ILandObject Copy();
48
49 void sendLandUpdateToAvatarsOverMe();
50
51 void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client);
52 void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client);
53 bool isEitherBannedOrRestricted(UUID avatar);
54 bool isBannedFromLand(UUID avatar);
55 bool isRestrictedFromLand(UUID avatar);
56 void sendLandUpdateToClient(IClientAPI remote_client);
57 List<UUID> createAccessListArrayByFlag(AccessList flag);
58 void sendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client);
59 void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client);
60 void updateLandBitmapByteArray();
61 void setLandBitmapFromByteArray();
62 bool[,] getLandBitmap();
63 void forceUpdateLandInfo();
64 void setLandBitmap(bool[,] bitmap);
65
66
67 bool[,] basicFullRegionLandBitmap();
68 bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y);
69 bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value);
70 bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add);
71 void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
72 void sendLandObjectOwners(IClientAPI remote_client);
73 void returnObject(SceneObjectGroup obj);
74 void returnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client);
75 void resetLandPrimCounts();
76 void addPrimToCount(SceneObjectGroup obj);
77 void removePrimFromCount(SceneObjectGroup obj);
78 void updateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area);
79
80 void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel);
81 void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel);
82 }
83}
diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs
new file mode 100644
index 0000000..f0a5473
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs
@@ -0,0 +1,40 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void MessageResultNotification(bool success);
35
36 public interface IMessageTransferModule
37 {
38 void SendInstantMessage(GridInstantMessage im, MessageResultNotification result);
39 }
40}
diff --git a/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs
new file mode 100644
index 0000000..011f8bb
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs
@@ -0,0 +1,56 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public struct PresenceInfo
35 {
36 public UUID userID;
37 public UUID regionID;
38
39 public PresenceInfo(UUID userID, UUID regionID)
40 {
41 this.userID = userID;
42 this.regionID = regionID;
43 }
44 }
45
46 public delegate void PresenceChange(PresenceInfo info);
47 public delegate void BulkPresenceData(PresenceInfo[] info);
48
49 public interface IPresenceModule
50 {
51 void RequestBulkPresenceData(UUID[] users);
52
53 event PresenceChange OnPresenceChange;
54 event BulkPresenceData OnBulkPresenceData;
55 }
56}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
new file mode 100644
index 0000000..97afe8d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
@@ -0,0 +1,75 @@
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 OpenSim 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.IO;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 /// <summary>
33 /// Interface to region archive functionality
34 /// </summary>
35 public interface IRegionArchiverModule
36 {
37 /// <summary>
38 /// Archive the region to the given path
39 /// </summary>
40 ///
41 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
42 /// the EventManager.OnOarFileSaved event.
43 ///
44 /// <param name="savePath"></param>
45 void ArchiveRegion(string savePath);
46
47 /// <summary>
48 /// Archive the region to a stream.
49 /// </summary>
50 ///
51 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
52 /// the EventManager.OnOarFileSaved event.
53 ///
54 /// <param name="saveStream"></param>
55 void ArchiveRegion(Stream saveStream);
56
57 /// <summary>
58 /// Dearchive the given region archive into the scene
59 /// </summary>
60 ///
61 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
62 ///
63 /// <param name="loadPath"></param>
64 void DearchiveRegion(string loadPath);
65
66 /// <summary>
67 /// Dearchive a region from a stream.
68 /// </summary>
69 ///
70 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
71 ///
72 /// <param name="loadStream"></param>
73 void DearchiveRegion(Stream loadStream);
74 }
75}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs
new file mode 100644
index 0000000..46d81ce
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs
@@ -0,0 +1,109 @@
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 OpenSim 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.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IRegionDataStore
36 {
37 /// <summary>
38 /// Initialises the data storage engine
39 /// </summary>
40 /// <param name="filename">The file to save the database to (may not be applicable). Alternatively,
41 /// a connection string for the database</param>
42 void Initialise(string filename);
43
44 /// <summary>
45 /// Dispose the database
46 /// </summary>
47 void Dispose();
48
49 /// <summary>
50 /// Stores all object's details apart from inventory
51 /// </summary>
52 /// <param name="obj"></param>
53 /// <param name="regionUUID"></param>
54 void StoreObject(SceneObjectGroup obj, UUID regionUUID);
55
56 /// <summary>
57 /// Entirely removes the object, including inventory
58 /// </summary>
59 /// <param name="uuid"></param>
60 /// <param name="regionUUID"></param>
61 /// <returns></returns>
62 void RemoveObject(UUID uuid, UUID regionUUID);
63
64 /// <summary>
65 /// Store a prim's inventory
66 /// </summary>
67 /// <returns></returns>
68 void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items);
69
70 /// <summary>
71 /// Load persisted objects from region storage.
72 /// </summary>
73 /// <param name="regionUUID">the Region UUID</param>
74 /// <returns>List of loaded groups</returns>
75 List<SceneObjectGroup> LoadObjects(UUID regionUUID);
76
77 /// <summary>
78 /// Store a terrain revision in region storage
79 /// </summary>
80 /// <param name="ter">HeightField data</param>
81 /// <param name="regionID">region UUID</param>
82 void StoreTerrain(double[,] terrain, UUID regionID);
83
84 /// <summary>
85 /// Load the latest terrain revision from region storage
86 /// </summary>
87 /// <param name="regionID">the region UUID</param>
88 /// <returns>Heightfield data</returns>
89 double[,] LoadTerrain(UUID regionID);
90
91 void StoreLandObject(ILandObject Parcel);
92
93 /// <summary>
94 /// <list type="bullet">
95 /// <item>delete from land where UUID=globalID</item>
96 /// <item>delete from landaccesslist where LandUUID=globalID</item>
97 /// </list>
98 /// </summary>
99 /// <param name="globalID"></param>
100 void RemoveLandObject(UUID globalID);
101
102 List<LandData> LoadLandObjects(UUID regionUUID);
103
104 void StoreRegionSettings(RegionSettings rs);
105 RegionSettings LoadRegionSettings(UUID regionUUID);
106
107 void Shutdown();
108 }
109}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionModule.cs
new file mode 100644
index 0000000..6a45017
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionModule.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 Nini.Config;
29using OpenSim.Region.Framework.Scenes;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IRegionModule
34 {
35 void Initialise(Scene scene, IConfigSource source);
36 void PostInitialise();
37 void Close();
38 string Name { get; }
39 bool IsSharedModule { get; }
40 }
41}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
new file mode 100644
index 0000000..40e4c99
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
@@ -0,0 +1,122 @@
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 OpenSim 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 OpenMetaverse;
29using System.Collections.Generic;
30using System.IO;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IRegionSerialiserModule
36 {
37 List<string> SerialiseRegion(Scene scene, string saveDir);
38
39 /// <summary>
40 /// Load prims from the xml format
41 /// </summary>
42 /// <param name="scene"></param>
43 /// <param name="fileName"></param>
44 /// <param name="newIDS"></param>
45 /// <param name="loadOffset"></param>
46 void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, Vector3 loadOffset);
47
48 /// <summary>
49 /// Save prims in the xml format
50 /// </summary>
51 /// <param name="scene"> </param>
52 /// <param name="fileName"></param>
53 void SavePrimsToXml(Scene scene, string fileName);
54
55 /// <summary>
56 /// Load prims from the xml2 format
57 /// </summary>
58 /// <param name="scene"></param>
59 /// <param name="fileName"></param>
60 void LoadPrimsFromXml2(Scene scene, string fileName);
61
62 /// <summary>
63 /// Load prims from the xml2 format
64 /// </summary>
65 /// <param name="scene"></param>
66 /// <param name="reader"></param>
67 /// <param name="startScripts"></param>
68 void LoadPrimsFromXml2(Scene scene, TextReader reader, bool startScripts);
69
70 /// <summary>
71 /// Save prims in the xml2 format
72 /// </summary>
73 /// <param name="scene"></param>
74 /// <param name="fileName"></param>
75 void SavePrimsToXml2(Scene scene, string fileName);
76
77 /// <summary>
78 /// Save prims in the xml2 format, optionally specifying a bounding box for which
79 /// prims should be saved. If both min and max vectors are Vector3.Zero, then all prims
80 /// are exported.
81 /// </summary>
82 /// <param name="scene"></param>
83 /// <param name="stream"></param>
84 /// <param name="min"></param>
85 /// <param name="max"></param>
86 void SavePrimsToXml2(Scene scene, TextWriter stream, Vector3 min, Vector3 max);
87
88 /// <summary>
89 /// Save a set of prims in the xml2 format
90 /// </summary>
91 /// <param name="entityList"></param>
92 /// <param name="fileName"></param>
93 void SavePrimListToXml2(List<EntityBase> entityList, string fileName);
94
95 /// <summary>
96 /// Save a set of prims in the xml2 format, optionally specifying a bounding box for which
97 /// prims should be saved. If both min and max vectors are Vector3.Zero, then all prims
98 /// are exported.
99 /// </summary>
100 /// <param name="entityList"></param>
101 /// <param name="stream"></param>
102 /// <param name="min"></param>
103 /// <param name="max"></param>
104 void SavePrimListToXml2(List<EntityBase> entityList, TextWriter stream, Vector3 min, Vector3 max);
105
106 void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName);
107
108 /// <summary>
109 /// Deserializes a scene object from its xml2 representation. This does not load the object into the scene.
110 /// </summary>
111 /// <param name="xmlString"></param>
112 /// <returns>The scene object created. null if the scene object already existed</returns>
113 SceneObjectGroup DeserializeGroupFromXml2(string xmlString);
114
115 /// <summary>
116 /// Serialize an individual scene object into the xml2 format
117 /// </summary>
118 /// <param name="grp"></param>
119 /// <returns></returns>
120 string SaveGroupToXml2(SceneObjectGroup grp);
121 }
122}
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModule.cs b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs
new file mode 100644
index 0000000..65620d3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IScriptModule
35 {
36 string ScriptEngineName { get; }
37
38 string GetAssemblyName(UUID itemID);
39 string GetXMLState(UUID itemID);
40 }
41}
diff --git a/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs b/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs
new file mode 100644
index 0000000..f3283c4
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs
@@ -0,0 +1,45 @@
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 OpenSim 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 OpenMetaverse;
28
29namespace OpenSim.Region.Framework.Interfaces
30{
31 public interface IServiceRequest
32 {
33 // Status
34 bool Finished { get; }
35
36 // Request info
37 UUID ItemID { get; set; }
38 uint LocalID { get; set; }
39 UUID ReqID { get; set; }
40
41 void Process();
42 void SendRequest();
43 void Stop();
44 }
45} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
new file mode 100644
index 0000000..91c80e3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 Nini.Config;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface ISoundModule
35 {
36 void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID, double gain, Vector3 position, byte flags);
37
38 void TriggerSound(
39 UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle);
40 }
41} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrain.cs b/OpenSim/Region/Framework/Interfaces/ITerrain.cs
new file mode 100644
index 0000000..6e9c98d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrain.cs
@@ -0,0 +1,78 @@
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 OpenSim 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 OpenSim.Framework;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface ITerrain
33 {
34 bool Tainted();
35 bool Tainted(int x, int y);
36 void ResetTaint();
37
38 void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west,
39 IClientAPI remoteUser);
40
41 void CheckHeightValues();
42 float[] GetHeights1D();
43 float[,] GetHeights2D();
44 double[,] GetHeights2DD();
45 void GetHeights1D(float[] heights);
46 void SetHeights2D(float[,] heights);
47 void SetHeights2D(double[,] heights);
48 void SwapRevertMaps();
49 void SaveRevertMap();
50 bool RunTerrainCmd(string[] args, ref string resultText, string simName);
51 void SetRange(float min, float max);
52 void LoadFromFileF64(string filename);
53 void LoadFromFileF32(string filename);
54 void LoadFromFileF32(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY);
55 void LoadFromFileIMG(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY);
56 void LoadFromFileSLRAW(string filename);
57 void WriteToFileF64(string filename);
58 void WriteToFileF32(string filename);
59 void WriteToFileRAW(string filename);
60 void WriteToFileHiRAW(string filename);
61 void SetSeed(int val);
62 void RaiseTerrain(double rx, double ry, double size, double amount);
63 void LowerTerrain(double rx, double ry, double size, double amount);
64 void FlattenTerrain(double rx, double ry, double size, double amount);
65 void NoiseTerrain(double rx, double ry, double size, double amount);
66 void RevertTerrain(double rx, double ry, double size, double amount);
67 void SmoothTerrain(double rx, double ry, double size, double amount);
68 void HillsGenerator();
69 double GetHeight(int x, int y);
70 void ExportImage(string filename, string gradientmap);
71 byte[] ExportJpegImage(string gradientmap);
72 }
73
74 public interface IMapImageGenerator
75 {
76 byte[] WriteJpeg2000Image(string gradientmap);
77 }
78}
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs
new file mode 100644
index 0000000..fc4ced2
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs
@@ -0,0 +1,48 @@
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 OpenSim 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
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ITerrainChannel
31 {
32 int Height { get; }
33 double this[int x, int y] { get; set; }
34 int Width { get; }
35
36 /// <summary>
37 /// Squash the entire heightmap into a single dimensioned array
38 /// </summary>
39 /// <returns></returns>
40 float[] GetFloatsSerialised();
41
42 double[,] GetDoubles();
43 bool Tainted(int x, int y);
44 ITerrainChannel MakeCopy();
45 string SaveToXmlString();
46 void LoadFromXmlString(string data);
47 }
48}
diff --git a/OpenSim/Region/Framework/Interfaces/ITextureSender.cs b/OpenSim/Region/Framework/Interfaces/ITextureSender.cs
new file mode 100644
index 0000000..aab3d26
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITextureSender.cs
@@ -0,0 +1,58 @@
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 OpenSim 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
28namespace OpenSim.Region.Framework.Interfaces
29{
30 /// <summary>
31 /// Interface for an object which can send texture information to a client
32 /// </summary>
33 public interface ITextureSender
34 {
35 /// <summary>
36 /// Are we in the process of sending the texture?
37 /// </summary>
38 bool Sending { get; set; }
39
40 /// <summary>
41 /// Has the texture send been cancelled?
42 /// </summary>
43 bool Cancel { get; set; }
44
45 /// <summary>
46 /// Update the non data properties of a texture request
47 /// </summary>
48 /// <param name="discardLevel"></param>
49 /// <param name="packetNumber"></param>
50 void UpdateRequest(int discardLevel, uint packetNumber);
51
52 /// <summary>
53 /// Send a texture packet to the client.
54 /// </summary>
55 /// <returns>True if the last packet has been sent, false otherwise.</returns>
56 bool SendTexturePacket();
57 }
58}
diff --git a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
new file mode 100644
index 0000000..537a8dc
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
@@ -0,0 +1,49 @@
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 OpenSim 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 OpenMetaverse;
29using OpenSim.Region.Framework.Scenes;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IVegetationModule : IEntityCreator
34 {
35 /// <summary>
36 /// Add a new tree to the scene. Used by other modules.
37 /// </summary>
38 /// <param name="uuid"></param>
39 /// <param name="groupID"></param>
40 /// <param name="scale"></param>
41 /// <param name="rotation"></param>
42 /// <param name="position"></param>
43 /// <param name="treeType"></param>
44 /// <param name="newTree"></param>
45 /// <returns></returns>
46 SceneObjectGroup AddTree(
47 UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree);
48 }
49}
diff --git a/OpenSim/Region/Framework/Interfaces/IWindModule.cs b/OpenSim/Region/Framework/Interfaces/IWindModule.cs
new file mode 100644
index 0000000..96b303f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWindModule.cs
@@ -0,0 +1,41 @@
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 OpenSim 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 OpenSim.Framework;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IWindModule : IRegionModule
35 {
36 Vector2[] WindSpeeds
37 {
38 get;
39 }
40 }
41}
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs
new file mode 100644
index 0000000..24865db
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs
@@ -0,0 +1,64 @@
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 OpenSim 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 OpenMetaverse;
30using OpenSim.Framework;
31// using OpenSim.Region.Environment.Modules.Scripting.WorldComm;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IWorldCommListenerInfo
36 {
37 Object[] GetSerializationData();
38 UUID GetItemID();
39 UUID GetHostID();
40 int GetChannel();
41 uint GetLocalID();
42 int GetHandle();
43 string GetMessage();
44 string GetName();
45 bool IsActive();
46 void Deactivate();
47 void Activate();
48 UUID GetID();
49 }
50
51 public interface IWorldComm
52 {
53 int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg);
54 void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg);
55 bool HasMessages();
56 IWorldCommListenerInfo GetNextMessage();
57 void ListenControl(UUID itemID, int handle, int active);
58 void ListenRemove(UUID itemID, int handle);
59 void DeleteListener(UUID itemID);
60 Object[] GetSerializationData(UUID itemID);
61 void CreateFromData(uint localID, UUID itemID, UUID hostID,
62 Object[] data);
63 }
64}
diff --git a/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs b/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs
new file mode 100644
index 0000000..6570b0a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs
@@ -0,0 +1,66 @@
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 OpenSim 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 OpenMetaverse;
29using Nwc.XmlRpc;
30
31// using OpenSim.Region.Environment.Modules.Scripting.XMLRPC;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IXmlRpcRequestInfo
36 {
37 bool IsProcessed();
38 UUID GetChannelKey();
39 void SetProcessed(bool processed);
40 void SetStrRetval(string resp);
41 string GetStrRetval();
42 void SetIntRetval(int resp);
43 int GetIntRetval();
44 uint GetLocalID();
45 UUID GetItemID();
46 string GetStrVal();
47 int GetIntValue();
48 UUID GetMessageID();
49 }
50
51 public interface IXMLRPC
52 {
53 UUID OpenXMLRPCChannel(uint localID, UUID itemID, UUID channelID);
54 void CloseXMLRPCChannel(UUID channelKey);
55 bool hasRequests();
56 void RemoteDataReply(string channel, string message_id, string sdata, int idata);
57 bool IsEnabled();
58 IXmlRpcRequestInfo GetNextCompletedRequest();
59 void RemoveCompletedRequest(UUID id);
60 void DeleteChannels(UUID itemID);
61 UUID SendRemoteData(uint localID, UUID itemID, string channel, string dest, int idata, string sdata);
62 IServiceRequest GetNextCompletedSRDRequest();
63 void RemoveCompletedSRDRequest(UUID id);
64 void CancelSRDRequests(UUID itemID);
65 }
66}
diff --git a/OpenSim/Region/Framework/Interfaces/IXfer.cs b/OpenSim/Region/Framework/Interfaces/IXfer.cs
new file mode 100644
index 0000000..a83f166
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IXfer.cs
@@ -0,0 +1,34 @@
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 OpenSim 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
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface IXfer
31 {
32 bool AddNewFile(string fileName, byte[] data);
33 }
34}