aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Interfaces')
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs48
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs61
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs140
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs104
-rw-r--r--OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/IBuySellModule.cs47
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs69
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICloudModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommand.cs51
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommandableModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/ICommander.cs54
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDialogModule.cs172
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDwellModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs52
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs57
-rw-r--r--OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs186
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEmailModule.cs46
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityCreator.cs56
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityInventory.cs322
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs109
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs36
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEstateModule.cs70
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEventQueue.cs66
-rw-r--r--OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs48
-rw-r--r--OpenSim/Region/Framework/Interfaces/IFriendsModule.cs98
-rw-r--r--OpenSim/Region/Framework/Interfaces/IGodsModule.cs58
-rw-r--r--OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs97
-rw-r--r--OpenSim/Region/Framework/Interfaces/IGroupsModule.cs103
-rw-r--r--OpenSim/Region/Framework/Interfaces/IHttpRequests.cs93
-rw-r--r--OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs129
-rw-r--r--OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs125
-rw-r--r--OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs65
-rw-r--r--OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs83
-rw-r--r--OpenSim/Region/Framework/Interfaces/ILightShareModule.cs33
-rw-r--r--OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs61
-rw-r--r--OpenSim/Region/Framework/Interfaces/IMoapModule.cs67
-rw-r--r--OpenSim/Region/Framework/Interfaces/INPCModule.cs288
-rw-r--r--OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs35
-rw-r--r--OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs54
-rw-r--r--OpenSim/Region/Framework/Interfaces/IPresenceModule.cs54
-rw-r--r--OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs41
-rw-r--r--OpenSim/Region/Framework/Interfaces/IProfileModule.cs37
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs133
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs64
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionConsole.cs39
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs104
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs38
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs47
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs122
-rw-r--r--OpenSim/Region/Framework/Interfaces/IRestartModule.cs39
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs43
-rw-r--r--OpenSim/Region/Framework/Interfaces/IScenePresence.cs86
-rw-r--r--OpenSim/Region/Framework/Interfaces/IScriptModule.cs115
-rw-r--r--OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs148
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISearchModule.cs36
-rw-r--r--OpenSim/Region/Framework/Interfaces/IServiceRequest.cs45
-rw-r--r--OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs19
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs134
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs148
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs47
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISoundModule.cs133
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISunModule.cs40
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrain.cs81
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs63
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs34
-rw-r--r--OpenSim/Region/Framework/Interfaces/ITerrainModule.cs76
-rw-r--r--OpenSim/Region/Framework/Interfaces/IUrlModule.cs50
-rw-r--r--OpenSim/Region/Framework/Interfaces/IVegetationModule.cs49
-rw-r--r--OpenSim/Region/Framework/Interfaces/IVoiceModule.cs45
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs86
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWindModule.cs55
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWorldComm.cs151
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs42
-rw-r--r--OpenSim/Region/Framework/Interfaces/IXMLRPC.cs64
-rw-r--r--OpenSim/Region/Framework/Interfaces/IXfer.cs34
-rw-r--r--OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs39
80 files changed, 6072 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..0cc8fb6
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Region.Framework.Scenes;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IAgentAssetTransactions
35 {
36 void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID,
37 InventoryItemBase item);
38
39 void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID,
40 uint callbackID, string description, string name, sbyte invType,
41 sbyte type, byte wearableType, uint nextOwnerMask);
42
43 void HandleTaskItemUpdateFromTransaction(
44 IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item);
45
46 void RemoveAgentAssetTransactions(UUID userID);
47 }
48}
diff --git a/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs b/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs
new file mode 100644
index 0000000..ccb2a03
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs
@@ -0,0 +1,61 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IAgentStatefulModule
35 {
36 /// <summary>
37 /// Returns a list of all the formats (by UUID) that this module
38 /// can render agent state in.
39 /// </summary>
40 List<UUID> GetRenderStateFormats();
41
42 /// <summary>
43 /// Returns a list (by UUID) of all formats this module can decode
44 /// to populate it's internal agent-related state.
45 /// </summary>
46 List<UUID> GetAcceptStateFormats();
47
48 /// <summary>
49 /// Render all internally held state for the given agent in the
50 /// requested format.
51 /// </summary>
52 string RenderState(UUID agentID, UUID format);
53
54 /// <summary>
55 /// Populate the internal state for the given agent from the
56 /// data argument, which is in the specified format. All prior
57 /// state relating to this agent is removed by this operation.
58 /// </summary>
59 bool ReceiveState(UUID agentID, UUID format, string data);
60 }
61}
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
new file mode 100644
index 0000000..d9901bd
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
@@ -0,0 +1,140 @@
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 OpenSim.Region.Framework.Scenes;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 public interface IAttachmentsModule
37 {
38 /// <summary>
39 /// Copy attachment data from a ScenePresence into the AgentData structure for transmission to another simulator
40 /// </summary>
41 /// <param name='sp'></param>
42 /// <param name='ad'></param>
43 void CopyAttachments(IScenePresence sp, AgentData ad);
44
45 /// <summary>
46 /// Copy attachment data from an AgentData structure into a ScenePresence.
47 /// </summary>
48 /// <param name='ad'></param>
49 /// <param name='sp'></param>
50 void CopyAttachments(AgentData ad, IScenePresence sp);
51
52 /// <summary>
53 /// RezAttachments. This should only be called upon login on the first region.
54 /// Attachment rezzings on crossings and TPs are done in a different way.
55 /// </summary>
56 /// <remarks>
57 /// This is only actually necessary for viewers which do not have a current outfit folder (these viewers make
58 /// their own attachment calls on login) and agents which have attachments but no viewer (e.g. NPCs).
59 /// </remarks>
60 /// <param name="sp"></param>
61 void RezAttachments(IScenePresence sp);
62
63 /// <summary>
64 /// Derez the attachements for a scene presence that is closing.
65 /// </summary>
66 /// <remarks>
67 /// Attachment changes are saved.
68 /// </remarks>
69 /// <param name="sp">The presence closing</param>
70 /// <param name="saveChanged">Save changed attachments.</param>
71 /// <param name="saveAllScripted">Save attachments with scripts even if they haven't changed.</para>
72 void DeRezAttachments(IScenePresence sp);
73
74 /// <summary>
75 /// Delete all the presence's attachments from the scene
76 /// This is done when a root agent leaves/is demoted to child (for instance, on logout, teleport or region cross).
77 /// </summary>
78 /// <param name="sp"></param>
79 /// <param name="silent"></param>
80 void DeleteAttachmentsFromScene(IScenePresence sp, bool silent);
81
82 /// <summary>
83 /// Attach an object to an avatar.
84 /// </summary>
85 /// <param name="sp"></param>
86 /// <param name="grp"></param>
87 /// <param name="AttachmentPt"></param>
88 /// <param name="silent"></param>
89 /// <param name="addToInventory">If true then add object to user inventory</param>
90 /// <param name="append">Append to attachment point rather than replace.</param>
91 /// <returns>true if the object was successfully attached, false otherwise</returns>
92 bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent, bool addToInventory, bool append);
93
94 /// <summary>
95 /// Rez an attachment from user inventory and change inventory status to match.
96 /// </summary>
97 /// <param name="sp"></param>
98 /// <param name="itemID"></param>
99 /// <param name="AttachmentPt"></param>
100 /// <returns>The scene object that was attached. Null if the scene object could not be found</returns>
101 SceneObjectGroup RezSingleAttachmentFromInventory(IScenePresence sp, UUID itemID, uint AttachmentPt);
102
103 /// <summary>
104 /// Rez multiple attachments from a user's inventory
105 /// </summary>
106 /// <param name="sp"></param>
107 /// <param name="rezlist"></param>
108 void RezMultipleAttachmentsFromInventory(IScenePresence sp,List<KeyValuePair<UUID, uint>> rezlist);
109
110 /// <summary>
111 /// Detach the given item to the ground.
112 /// </summary>
113 /// <param name="sp"></param>
114 /// <param name="objectLocalID"></param>
115 void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID);
116
117 /// <summary>
118 /// Detach the given item to the ground at the specified coordinates & rotation
119 /// </summary>
120 /// <param name="sp"></param>
121 /// <param name="objectLocalID"></param>
122 /// <param name="absolutePos"></param>
123 /// <param name="absoluteRot"></param>
124 void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID, Vector3 absolutePos, Quaternion absoluteRot);
125
126 /// <summary>
127 /// Detach the given attachment so that it remains in the user's inventory.
128 /// </summary>
129 /// <param name="sp">/param>
130 /// <param name="grp">The attachment to detach.</param>
131 void DetachSingleAttachmentToInv(IScenePresence sp, SceneObjectGroup grp);
132
133 /// <summary>
134 /// Update the position of an attachment.
135 /// </summary>
136 /// <param name="sog"></param>
137 /// <param name="pos"></param>
138 void UpdateAttachmentPosition(SceneObjectGroup sog, Vector3 pos);
139 }
140}
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs
new file mode 100644
index 0000000..d25c930
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs
@@ -0,0 +1,104 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void ReportOutputAction(string format, params object[] args);
35
36 public interface IAvatarFactoryModule
37 {
38 void SetAppearance(IScenePresence sp, AvatarAppearance appearance, WearableCacheItem[] cacheItems);
39 void SetAppearance(IScenePresence sp, Primitive.TextureEntry textureEntry, byte[] visualParams, WearableCacheItem[] cacheItems);
40
41 /// <summary>
42 /// Send the appearance of an avatar to others in the scene.
43 /// </summary>
44 /// <param name="agentId"></param>
45 /// <returns></returns>
46 bool SendAppearance(UUID agentId);
47
48 /// <summary>
49 /// Return the baked texture ids of the given agent.
50 /// </summary>
51 /// <param name="agentId"></param>
52 /// <returns>An empty list if this agent has no baked textures (e.g. because it's a child agent)</returns>
53 Dictionary<BakeType, Primitive.TextureEntryFace> GetBakedTextureFaces(UUID agentId);
54
55
56 WearableCacheItem[] GetCachedItems(UUID agentId);
57 /// <summary>
58 /// Save the baked textures for the given agent permanently in the asset database.
59 /// </summary>
60 /// <remarks>
61 /// This is used to preserve apperance textures for NPCs
62 /// </remarks>
63 /// <param name="agentId"></param>
64 /// <returns>true if a valid agent was found, false otherwise</returns>
65 bool SaveBakedTextures(UUID agentId);
66
67 /// <summary>
68 /// Validate that OpenSim can find the baked textures need to display a given avatar
69 /// </summary>
70 /// <param name="client"></param>
71 /// <param name="checkonly"></param>
72 /// <returns>
73 /// true if all the baked textures referenced by the texture IDs exist or the appearance is only using default textures. false otherwise.
74 /// </returns>
75 bool ValidateBakedTextureCache(IScenePresence sp);
76
77 /// <summary>
78 /// Request a rebake of textures for an avatar.
79 /// </summary>
80 /// <remarks>
81 /// This will send the request to the viewer, since it's there that the rebake is done.
82 /// </remarks>
83 /// <param name="sp">Avatar to rebake.</param>
84 /// <param name="missingTexturesOnly">
85 /// If true, only request a rebake for the textures that are missing.
86 /// If false then we request a rebake of all textures for which we already have references.
87 /// </param>
88 /// <returns>
89 /// Number of rebake requests made. This will depend upon whether we've previously received texture IDs.
90 /// </returns>
91 int RequestRebake(IScenePresence sp, bool missingTexturesOnly);
92
93 void QueueAppearanceSend(UUID agentid);
94 void QueueAppearanceSave(UUID agentid);
95
96 /// <summary>
97 /// Get a report about the current state of a scene presence's baked appearance textures.
98 /// </summary>
99 /// <param name="sp"></param>
100 /// <param name="reportOutputAction"></param>
101 /// <returns></returns>
102 void WriteBakedTexturesReport(IScenePresence sp, ReportOutputAction reportOutputAction);
103 }
104} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs
new file mode 100644
index 0000000..b536a49
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using Nini.Config;
30using OpenSim.Framework;
31using OpenMetaverse;
32
33namespace OpenSim.Services.Interfaces
34{
35 public interface IBakedTextureModule
36 {
37 WearableCacheItem[] Get(UUID id);
38 void Store(UUID id, WearableCacheItem[] data);
39 }
40}
diff --git a/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs b/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs
new file mode 100644
index 0000000..d1ce4c0
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IBuySellModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IBuySellModule
34 {
35 /// <summary>
36 /// Try to buy an object
37 /// </summary>
38 /// <param name="remoteClient"></param>
39 /// <param name="categoryID"></param>
40 /// <param name="localID"></param>
41 /// <param name="saleType"></param>
42 /// <returns>
43 /// True on a successful purchase, false on failure
44 /// </returns>
45 bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice);
46 }
47}
diff --git a/OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs b/OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs
new file mode 100644
index 0000000..69682ac
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICallingCardModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Text;
31using OpenMetaverse;
32using OpenSim.Framework;
33
34namespace OpenSim.Framework
35{
36 public interface ICallingCardModule
37 {
38 UUID CreateCallingCard(UUID userID, UUID creatorID, UUID folderID);
39 }
40}
diff --git a/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs
new file mode 100644
index 0000000..522c82d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs
@@ -0,0 +1,69 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using Caps=OpenSim.Framework.Capabilities.Caps;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface ICapabilitiesModule
36 {
37 /// <summary>
38 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent,
39 /// then it is replaced by a new CAPS handler.
40 /// </summary>
41 /// <param name="agentId"></param>
42 /// <param name="capsObjectPath"></param>
43 void CreateCaps(UUID agentId);
44
45 /// <summary>
46 /// Remove the caps handler for a given agent.
47 /// </summary>
48 /// <param name="agentId"></param>
49 void RemoveCaps(UUID agentId);
50
51 /// <summary>
52 /// Will return null if the agent doesn't have a caps handler registered
53 /// </summary>
54 /// <param name="agentId"></param>
55 Caps GetCapsForUser(UUID agentId);
56
57 void SetAgentCapsSeeds(AgentCircuitData agent);
58
59 Dictionary<ulong, string> GetChildrenSeeds(UUID agentID);
60
61 string GetChildSeed(UUID agentID, ulong handle);
62
63 void SetChildrenSeed(UUID agentID, Dictionary<ulong, string> seeds);
64
65 void DropChildSeed(UUID agentID, ulong handle);
66
67 string GetCapsPath(UUID agentId);
68 }
69}
diff --git a/OpenSim/Region/Framework/Interfaces/ICloudModule.cs b/OpenSim/Region/Framework/Interfaces/ICloudModule.cs
new file mode 100644
index 0000000..54172bd
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICloudModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ICloudModule
31 {
32 /// <summary>
33 /// Retrieves the cloud density at the given region coordinates
34 /// </summary>
35 float CloudCover(int x, int y, int z);
36 }
37} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/ICommand.cs b/OpenSim/Region/Framework/Interfaces/ICommand.cs
new file mode 100644
index 0000000..bf1be48
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICommand.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.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 string ShortHelp();
50 }
51}
diff --git a/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs b/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs
new file mode 100644
index 0000000..65d589c
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
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..6b872c1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs
@@ -0,0 +1,54 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface ICommander
33 {
34 /// <value>
35 /// The name of this commander
36 /// </value>
37 string Name { get; }
38
39 /// <value>
40 /// Provide general help information about this commander.
41 /// </value>
42 string Help { get; }
43
44 /// <summary>
45 /// The commands available for this commander
46 /// </summary>
47 Dictionary<string, ICommand> Commands { get; }
48
49 void ProcessConsoleCommand(string function, string[] args);
50 void RegisterCommand(string commandName, ICommand command);
51 void Run(string function, object[] args);
52 string GenerateRuntimeAPI();
53 }
54}
diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
new file mode 100644
index 0000000..4d35c1c
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
@@ -0,0 +1,172 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IDialogModule
34 {
35 /// <summary>
36 /// Send a non-modal alert message to a particular user. This can
37 /// disappear from the user's view after a small interval.
38 /// </summary>
39 /// <param name="client">
40 /// IClientAPI object representing the user.
41 /// </param>
42 /// <param name="message">Message text to send to the user.</param>
43 void SendAlertToUser(IClientAPI client, string message);
44
45 /// <summary>
46 /// Send an alert message to a particular user.
47 /// </summary>
48 /// <param name="client">
49 /// IClientAPI object representing the user.
50 /// </param>
51 /// <param name="message">Message text to send to the user.</param>
52 /// <param name="modal">Flag to control modality.</param>
53 void SendAlertToUser(IClientAPI client, string message, bool modal);
54
55 /// <summary>
56 /// Send a non-modal alert message to a particular user.
57 /// </summary>
58 /// <param name="agentID">UUID of agent representing the user.</param>
59 /// <param name="message">Message text to send to the user.</param>
60 void SendAlertToUser(UUID agentID, string message);
61
62 /// <summary>
63 /// Send an alert message to a particular user.
64 /// </summary>
65 /// <param name="agentID">UUID of agent representing the user.</param>
66 /// <param name="message">Message text to send to the user.</param>
67 /// <param name="modal">Flag to control modality.</param>
68 void SendAlertToUser(UUID agentID, string message, bool modal);
69
70 /// <summary>
71 /// Send an alert message to a particular user.
72 /// </summary>
73 /// <param name="firstName">Account first name</param>
74 /// <param name="lastName">Account last name</param>
75 /// <param name="message">Message text to send to the user.</param>
76 /// <param name="modal">Flag to control modality.</param>
77 void SendAlertToUser(string firstName, string lastName,
78 string message, bool modal);
79
80 /// <summary>
81 /// Send an alert message to all users in the scene.
82 /// </summary>
83 /// <param name="message">Message text to send to all users.</param>
84 void SendGeneralAlert(string message);
85
86 /// <summary>
87 /// Send a dialog box to a particular user.
88 /// </summary>
89 /// <param name="avatarID">
90 /// UUID of the avatar representing the user.
91 /// </param>
92 /// <param name="objectName">
93 /// Name of the object sending the dialog.
94 /// </param>
95 /// <param name="objectID">
96 /// UUID of the object sending the dialog.
97 /// </param>
98 /// <param name="ownerID">
99 /// UUID of the user that owns the object.
100 /// </param>
101 /// <param name="message">Message text to send to the user.</param>
102 /// <param name="textureID">
103 /// Texture UUID to pass along with the dialog.
104 /// </param>
105 /// <param name="ch">
106 /// Channel on which the selected button text should be broadcast.
107 /// </param>
108 /// <param name="buttonlabels">Dialog button text.</param>
109 void SendDialogToUser(UUID avatarID, string objectName, UUID objectID,
110 UUID ownerID, string message, UUID textureID, int ch,
111 string[] buttonlabels);
112
113 /// <summary>
114 /// Send a url to a particular user.
115 /// </summary>
116 /// <param name="avatarID">
117 /// UUID of the avatar representing the user.
118 /// </param>
119 /// <param name="objectName">
120 /// Name of the object sending the dialog.
121 /// </param>
122 /// <param name="objectID">
123 /// UUID of the object sending the dialog.
124 /// </param>
125 /// <param name="ownerID">
126 /// UUID of the user that owns the object.
127 /// </param>
128 /// <param name="groupOwned">
129 /// Flag indicating whether or not the object is group-owned.
130 /// </param>
131 /// <param name="message">Message text to send to the user.</param>
132 /// <param name="url">Url to send to the user.</param>
133 void SendUrlToUser(UUID avatarID, string objectName, UUID objectID,
134 UUID ownerID, bool groupOwned, string message, string url);
135
136 /// <summary>
137 /// Send a notification to all users in the scene. This notification
138 /// should remain around until the user explicitly dismisses it.
139 /// </summary>
140 /// <remarks>
141 /// On the Linden Labs Second Client (as of 1.21), this is a big blue
142 /// box message on the upper right of the screen.
143 /// </remarks>
144 /// <param name="fromAvatarID">The user sending the message</param>
145 /// <param name="fromAvatarName">
146 /// The name of the user doing the sending
147 /// </param>
148 /// <param name="message">The message being sent to the user</param>
149 void SendNotificationToUsersInRegion(UUID fromAvatarID,
150 string fromAvatarName, string message);
151
152 /// <summary>
153 /// Send a textbox entry for the client to respond to
154 /// </summary>
155 /// <param name="avatarID">
156 /// UUID of the avatar representing the user.
157 /// </param>
158 /// <param name="message">Message text to send to the user.</param>
159 /// <param name="chatChannel">
160 /// Chat channel that the user's input should be broadcast on.
161 /// </param>
162 /// <param name="name">Name of the object sending the dialog.</param>
163 /// <param name="objectid">
164 /// UUID of the object sending the dialog.
165 /// </param>
166 /// <param name="ownerid">
167 /// UUID of the user that owns the object.
168 /// </param>
169 void SendTextBoxToUser(UUID avatarid, string message, int chatChannel,
170 string name, UUID objectid, UUID ownerid);
171 }
172}
diff --git a/OpenSim/Region/Framework/Interfaces/IDwellModule.cs b/OpenSim/Region/Framework/Interfaces/IDwellModule.cs
new file mode 100644
index 0000000..db50439
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDwellModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IDwellModule
34 {
35 int GetDwell(UUID parcelID);
36 }
37}
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs
new file mode 100644
index 0000000..7684ce3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs
@@ -0,0 +1,52 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public delegate bool HandlerDelegate(IClientAPI client, FloaterData data, string[] msg);
36
37 public abstract class FloaterData
38 {
39 public abstract int Channel { get; }
40 public abstract string FloaterName { get; set; }
41 public virtual string XmlName { get; set; }
42 public virtual string XmlText { get; set; }
43 public virtual HandlerDelegate Handler { get; set; }
44 }
45
46
47 public interface IDynamicFloaterModule
48 {
49 void DoUserFloater(UUID agentID, FloaterData dialogData, string configuration);
50 void FloaterControl(ScenePresence sp, FloaterData d, string msg);
51 }
52}
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs
new file mode 100644
index 0000000..08b71e4
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs
@@ -0,0 +1,57 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public enum InsertLocation : int
35 {
36 Agent = 1,
37 World = 2,
38 Tools = 3,
39 Advanced = 4,
40 Admin = 5
41 }
42
43 public enum UserMode : int
44 {
45 Normal = 0,
46 God = 3
47 }
48
49 public delegate void CustomMenuHandler(string action, UUID agentID, List<uint> selection);
50
51 public interface IDynamicMenuModule
52 {
53 void AddMenuItem(UUID agentID, string title, InsertLocation location, UserMode mode, CustomMenuHandler handler);
54 void AddMenuItem(string title, InsertLocation location, UserMode mode, CustomMenuHandler handler);
55 void RemoveMenuItem(string action);
56 }
57}
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs
new file mode 100644
index 0000000..6df5cc2
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs
@@ -0,0 +1,186 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Drawing;
30using System.IO;
31using OpenMetaverse;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IDynamicTextureManager
36 {
37 void RegisterRender(string handleType, IDynamicTextureRender render);
38
39 /// <summary>
40 /// Used by IDynamicTextureRender implementations to return renders
41 /// </summary>
42 /// <param name='id'></param>
43 /// <param name='data'></param>
44 /// <param name='isReuseable'></param>
45 void ReturnData(UUID id, IDynamicTexture texture);
46
47 UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams,
48 int updateTimer);
49 UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams,
50 int updateTimer, bool SetBlending, byte AlphaValue);
51 UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams,
52 int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face);
53 UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams,
54 int updateTimer);
55
56 /// Apply a dynamically generated texture to all sides of the given prim. The texture is not persisted to the
57 /// asset service.
58 /// </summary>
59 /// <param name="simID">The simulator in which the texture is being generated</param>
60 /// <param name="primID">The prim to which to apply the texture.</param>
61 /// <param name="contentType">The content type to create. Current choices are "vector" to create a vector
62 /// based texture or "image" to create a texture from an image at a particular URL</param>
63 /// <param name="data">The data for the generator</param>
64 /// <param name="extraParams">Parameters for the generator that don't form part of the main data.</param>
65 /// <param name="updateTimer">If zero, the image is never updated after the first generation. If positive
66 /// the image is updated at the given interval. Not implemented for </param>
67 /// <param name="SetBlending">
68 /// If true, the newly generated texture is blended with the appropriate existing ones on the prim
69 /// </param>
70 /// <param name="AlphaValue">
71 /// The alpha value of the generated texture.
72 /// </param>
73 /// <returns>
74 /// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need
75 /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture
76 /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID
77 /// </returns>
78 UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams,
79 int updateTimer, bool SetBlending, byte AlphaValue);
80
81 /// <summary>
82 /// Apply a dynamically generated texture to the given prim.
83 /// </summary>
84 /// <param name="simID">The simulator in which the texture is being generated</param>
85 /// <param name="primID">The prim to which to apply the texture.</param>
86 /// <param name="contentType">The content type to create. Current choices are "vector" to create a vector
87 /// based texture or "image" to create a texture from an image at a particular URL</param>
88 /// <param name="data">The data for the generator</param>
89 /// <param name="extraParams">Parameters for the generator that don't form part of the main data.</param>
90 /// <param name="updateTimer">If zero, the image is never updated after the first generation. If positive
91 /// the image is updated at the given interval. Not implemented for </param>
92 /// <param name="SetBlending">
93 /// If true, the newly generated texture is blended with the appropriate existing ones on the prim
94 /// </param>
95 /// <param name="disp">
96 /// Display flags. If DISP_EXPIRE then the old texture is deleted if it is replaced by a
97 /// newer generated texture (may not currently be implemented). If DISP_TEMP then the asset is flagged as
98 /// temporary, which often means that it is not persisted to the database.
99 /// </param>
100 /// <param name="AlphaValue">
101 /// The alpha value of the generated texture.
102 /// </param>
103 /// <param name="face">
104 /// The face of the prim on which to put the generated texture. If ALL_SIDES then all sides of the prim are
105 /// set
106 /// </param>
107 /// <returns>
108 /// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need
109 /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture
110 /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID
111 /// </returns>
112 UUID AddDynamicTextureData(
113 UUID simID, UUID primID, string contentType, string data, string extraParams,
114 int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face);
115
116 void GetDrawStringSize(string contentType, string text, string fontName, int fontSize,
117 out double xSize, out double ySize);
118 }
119
120 public interface IDynamicTextureRender
121 {
122 string GetName();
123 string GetContentType();
124 bool SupportsAsynchronous();
125
126// /// <summary>
127// /// Return true if converting the input body and extra params data will always result in the same byte[] array
128// /// </summary>
129// /// <remarks>
130// /// This method allows the caller to use a previously generated asset if it has one.
131// /// </remarks>
132// /// <returns></returns>
133// /// <param name='bodyData'></param>
134// /// <param name='extraParams'></param>
135// bool AlwaysIdenticalConversion(string bodyData, string extraParams);
136
137 IDynamicTexture ConvertUrl(string url, string extraParams);
138 IDynamicTexture ConvertData(string bodyData, string extraParams);
139
140 bool AsyncConvertUrl(UUID id, string url, string extraParams);
141 bool AsyncConvertData(UUID id, string bodyData, string extraParams);
142
143 void GetDrawStringSize(string text, string fontName, int fontSize,
144 out double xSize, out double ySize);
145 }
146
147 public interface IDynamicTexture
148 {
149 /// <summary>
150 /// Input commands used to generate this data.
151 /// </summary>
152 /// <remarks>
153 /// Null if input commands were not used.
154 /// </remarks>
155 string InputCommands { get; }
156
157 /// <summary>
158 /// Uri used to generate this data.
159 /// </summary>
160 /// <remarks>
161 /// Null if a uri was not used.
162 /// </remarks>
163 Uri InputUri { get; }
164
165 /// <summary>
166 /// Extra input params used to generate this data.
167 /// </summary>
168 string InputParams { get; }
169
170 /// <summary>
171 /// Texture data.
172 /// </summary>
173 byte[] Data { get; }
174
175 /// <summary>
176 /// Size of texture.
177 /// </summary>
178 Size Size { get; }
179
180 /// <summary>
181 /// Signal whether the texture is reuseable (i.e. whether the same input data will always generate the same
182 /// texture).
183 /// </summary>
184 bool IsReuseable { get; }
185 }
186}
diff --git a/OpenSim/Region/Framework/Interfaces/IEmailModule.cs b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs
new file mode 100644
index 0000000..4f1b91a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs
@@ -0,0 +1,46 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public class Email
33 {
34 public string time;
35 public string sender;
36 public string subject;
37 public string message;
38 public int numLeft;
39 }
40
41 public interface IEmailModule
42 {
43 void SendEmail(UUID objectID, string address, string subject, string body);
44 Email GetNextEmail(UUID objectID, string sender, string subject);
45 }
46}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
new file mode 100644
index 0000000..c39627c
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using 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..9ffda51
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
@@ -0,0 +1,322 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using System.Collections;
30using OpenMetaverse;
31using OpenSim.Framework;
32using OpenSim.Region.Framework.Scenes;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 /// <summary>
37 /// Interface to an entity's (SceneObjectPart's) inventory
38 /// </summary>
39 ///
40 /// This is not a finished 1.0 candidate interface
41 public interface IEntityInventory
42 {
43 /// <summary>
44 /// Force the task inventory of this prim to persist at the next update sweep
45 /// </summary>
46 void ForceInventoryPersistence();
47
48 /// <summary>
49 /// Reset UUIDs for all the items in the prim's inventory.
50 /// </summary>
51 ///
52 /// This involves either generating
53 /// new ones or setting existing UUIDs to the correct parent UUIDs.
54 ///
55 /// If this method is called and there are inventory items, then we regard the inventory as having changed.
56 ///
57 /// <param name="linkNum">Link number for the part</param>
58 void ResetInventoryIDs();
59
60 /// <summary>
61 /// Reset parent object UUID for all the items in the prim's inventory.
62 /// </summary>
63 ///
64 /// If this method is called and there are inventory items, then we regard the inventory as having changed.
65 ///
66 /// <param name="linkNum">Link number for the part</param>
67 void ResetObjectID();
68
69 /// <summary>
70 /// Change every item in this inventory to a new owner.
71 /// </summary>
72 /// <param name="ownerId"></param>
73 void ChangeInventoryOwner(UUID ownerId);
74
75 /// <summary>
76 /// Change every item in this inventory to a new group.
77 /// </summary>
78 /// <param name="groupID"></param>
79 void ChangeInventoryGroup(UUID groupID);
80
81 /// <summary>
82 /// Start all the scripts contained in this entity's inventory
83 /// </summary>
84 /// <param name="startParam"></param>
85 /// <param name="postOnRez"></param>
86 /// <param name="engine"></param>
87 /// <param name="stateSource"></param>
88 /// <returns>Number of scripts started.</returns>
89 int CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
90
91 ArrayList GetScriptErrors(UUID itemID);
92 void ResumeScripts();
93
94 /// <summary>
95 /// Stop and remove all the scripts in this entity from the scene.
96 /// </summary>
97 /// <param name="sceneObjectBeingDeleted">
98 /// Should be true if these scripts are being removed because the scene
99 /// object is being deleted. This will prevent spurious updates to the client.
100 /// </param>
101 void RemoveScriptInstances(bool sceneObjectBeingDeleted);
102
103 /// <summary>
104 /// Stop all the scripts in this entity.
105 /// </summary>
106 void StopScriptInstances();
107
108 /// <summary>
109 /// Start a script which is in this entity's inventory.
110 /// </summary>
111 /// <param name="item"></param>
112 /// <param name="postOnRez"></param>
113 /// <param name="engine"></param>
114 /// <param name="stateSource"></param>
115 /// <returns>
116 /// true if the script instance was valid for starting, false otherwise. This does not guarantee
117 /// that the script was actually started, just that the script was valid (i.e. its asset data could be found, etc.)
118 /// </returns>
119 bool CreateScriptInstance(
120 TaskInventoryItem item, int startParam, bool postOnRez, string engine, int stateSource);
121
122 /// <summary>
123 /// Start a script which is in this entity's inventory.
124 /// </summary>
125 /// <param name="itemId"></param>
126 /// <param name="startParam"></param>
127 /// <param name="postOnRez"></param>
128 /// <param name="engine"></param>
129 /// <param name="stateSource"></param>
130 /// <returns>
131 /// true if the script instance was valid for starting, false otherwise. This does not guarantee
132 /// that the script was actually started, just that the script was valid (i.e. its asset data could be found, etc.)
133 /// </returns>
134 bool CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource);
135
136 /// <summary>
137 /// Stop and remove a script which is in this prim's inventory from the scene.
138 /// </summary>
139 /// <param name="itemId"></param>
140 /// <param name="sceneObjectBeingDeleted">
141 /// Should be true if these scripts are being removed because the scene
142 /// object is being deleted. This will prevent spurious updates to the client.
143 /// </param>
144 void RemoveScriptInstance(UUID itemId, bool sceneObjectBeingDeleted);
145
146 /// <summary>
147 /// Stop a script which is in this prim's inventory.
148 /// </summary>
149 /// <param name="itemId"></param>
150 void StopScriptInstance(UUID itemId);
151
152 /// <summary>
153 /// Try to get the script running status.
154 /// </summary>
155 /// <returns>
156 /// Returns true if a script for the item was found in one of the simulator's script engines. In this case,
157 /// the running parameter will reflect the running status.
158 /// Returns false if the item could not be found, if the item is not a script or if a script instance for the
159 /// item was not found in any of the script engines. In this case, running status is irrelevant.
160 /// </returns>
161 /// <param name='itemId'></param>
162 /// <param name='running'></param>
163 bool TryGetScriptInstanceRunning(UUID itemId, out bool running);
164
165 /// <summary>
166 /// Add an item to this entity's inventory. If an item with the same name already exists, then an alternative
167 /// name is chosen.
168 /// </summary>
169 /// <param name="item"></param>
170 void AddInventoryItem(TaskInventoryItem item, bool allowedDrop);
171
172 /// <summary>
173 /// Add an item to this entity's inventory. If an item with the same name already exists, it is replaced.
174 /// </summary>
175 /// <param name="item"></param>
176 void AddInventoryItemExclusive(TaskInventoryItem item, bool allowedDrop);
177
178 /// <summary>
179 /// Restore a whole collection of items to the entity's inventory at once.
180 /// We assume that the items already have all their fields correctly filled out.
181 /// The items are not flagged for persistence to the database, since they are being restored
182 /// from persistence rather than being newly added.
183 /// </summary>
184 /// <param name="items"></param>
185 void RestoreInventoryItems(ICollection<TaskInventoryItem> items);
186
187 /// <summary>
188 /// Returns an existing inventory item. Returns the original, so any changes will be live.
189 /// </summary>
190 /// <param name="itemID"></param>
191 /// <returns>null if the item does not exist</returns>
192 TaskInventoryItem GetInventoryItem(UUID itemId);
193
194 /// <summary>
195 /// Get all inventory items.
196 /// </summary>
197 /// <param name="name"></param>
198 /// <returns>
199 /// If there are no inventory items then an empty list is returned.
200 /// </returns>
201 List<TaskInventoryItem> GetInventoryItems();
202
203 /// <summary>
204 /// Gets an inventory item by name
205 /// </summary>
206 /// <remarks>
207 /// This method returns the first inventory item that matches the given name. In SL this is all you need
208 /// since each item in a prim inventory must have a unique name.
209 /// </remarks>
210 /// <param name='name'></param>
211 /// <returns>
212 /// The inventory item. Null if no such item was found.
213 /// </returns>
214 TaskInventoryItem GetInventoryItem(string name);
215
216 /// <summary>
217 /// Get inventory items by name.
218 /// </summary>
219 /// <param name="name"></param>
220 /// <returns>
221 /// A list of inventory items with that name.
222 /// If no inventory item has that name then an empty list is returned.
223 /// </returns>
224 List<TaskInventoryItem> GetInventoryItems(string name);
225
226 /// <summary>
227 /// Get inventory items by type.
228 /// </summary>
229 /// <param type="name"></param>
230 /// <returns>
231 /// A list of inventory items of that type.
232 /// If no inventory items of that type then an empty list is returned.
233 /// </returns>
234 List<TaskInventoryItem> GetInventoryItems(InventoryType type);
235
236 /// <summary>
237 /// Get the scene object(s) referenced by an inventory item.
238 /// </summary>
239 ///
240 /// This is returned in a 'rez ready' state. That is, name, description, permissions and other details have
241 /// been adjusted to reflect the part and item from which it originates.
242 ///
243 /// <param name="item">Inventory item</param>
244 /// <param name="objlist">The scene objects</param>
245 /// <param name="veclist">Relative offsets for each object</param>
246 /// <returns>true = success, false = the scene object asset couldn't be found</returns>
247 bool GetRezReadySceneObjects(TaskInventoryItem item, out List<SceneObjectGroup> objlist, out List<Vector3> veclist);
248
249 /// <summary>
250 /// Update an existing inventory item.
251 /// </summary>
252 /// <param name="item">The updated item. An item with the same id must already exist
253 /// in this prim's inventory.</param>
254 /// <returns>false if the item did not exist, true if the update occurred successfully</returns>
255 bool UpdateInventoryItem(TaskInventoryItem item);
256 bool UpdateInventoryItem(TaskInventoryItem item, bool fireScriptEvents);
257 bool UpdateInventoryItem(TaskInventoryItem item, bool fireScriptEvents, bool considerChanged);
258
259 /// <summary>
260 /// Remove an item from this entity's inventory
261 /// </summary>
262 /// <param name="itemID"></param>
263 /// <returns>Numeric asset type of the item removed. Returns -1 if the item did not exist
264 /// in this prim's inventory.</returns>
265 int RemoveInventoryItem(UUID itemID);
266
267 /// <summary>
268 /// Serialize all the metadata for the items in this prim's inventory ready for sending to the client
269 /// </summary>
270 /// <param name="xferManager"></param>
271 void RequestInventoryFile(IClientAPI client, IXfer xferManager);
272
273 /// <summary>
274 /// Backup the inventory to the given data store
275 /// </summary>
276 /// <param name="datastore"></param>
277 void ProcessInventoryBackup(ISimulationDataService datastore);
278
279 uint MaskEffectivePermissions();
280
281 void ApplyNextOwnerPermissions();
282
283 void ApplyGodPermissions(uint perms);
284
285 /// <summary>
286 /// Number of items in this inventory.
287 /// </summary>
288 int Count { get; }
289
290 /// <summary>
291 /// Returns true if this inventory contains any scripts
292 /// </summary></returns>
293 bool ContainsScripts();
294
295 /// <summary>
296 /// Number of scripts in this inventory.
297 /// </summary>
298 /// <remarks>
299 /// Includes both running and non running scripts.
300 /// </remarks>
301 int ScriptCount();
302
303 /// <summary>
304 /// Number of running scripts in this inventory.
305 /// </summary></returns>
306 int RunningScriptCount();
307
308 /// <summary>
309 /// Get the uuids of all items in this inventory
310 /// </summary>
311 /// <returns></returns>
312 List<UUID> GetInventoryList();
313
314 /// <summary>
315 /// Get the xml representing the saved states of scripts in this inventory.
316 /// </summary>
317 /// <returns>
318 /// A <see cref="Dictionary`2"/>
319 /// </returns>
320 Dictionary<UUID, string> GetScriptStates();
321 }
322}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
new file mode 100644
index 0000000..1ebef90
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenSim.Services.Interfaces;
30using GridRegion = OpenSim.Services.Interfaces.GridRegion;
31
32using OpenMetaverse;
33using OpenSim.Framework;
34using OpenSim.Region.Framework.Scenes;
35
36namespace OpenSim.Region.Framework.Interfaces
37{
38 public delegate ScenePresence CrossAgentToNewRegionDelegate(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, string version);
39
40 public interface IEntityTransferModule
41 {
42 /// <summary>
43 /// Teleport an agent within the same or to a different region.
44 /// </summary>
45 /// <param name='agent'></param>
46 /// <param name='regionHandle'>
47 /// The handle of the destination region. If it's the same as the region currently
48 /// occupied by the agent then the teleport will be within that region.
49 /// </param>
50 /// <param name='agent'></param>
51 /// <param name='regionHandle'></param>
52 /// <param name='position'></param>
53 /// <param name='lookAt'></param>
54 /// <param name='teleportFlags'></param>
55 void Teleport(ScenePresence agent, ulong regionHandle, Vector3 position, Vector3 lookAt, uint teleportFlags);
56
57 /// <summary>
58 /// Teleports the agent for the given client to their home destination.
59 /// </summary>
60 /// <param name='id'></param>
61 /// <param name='client'></param>
62 bool TeleportHome(UUID id, IClientAPI client);
63
64 /// <summary>
65 /// Teleport an agent directly to a given region without checking whether the region should be substituted.
66 /// </summary>
67 /// <remarks>
68 /// Please use Teleport() instead unless you know exactly what you're doing.
69 /// Do not use for same region teleports.
70 /// </remarks>
71 /// <param name='sp'></param>
72 /// <param name='reg'></param>
73 /// <param name='finalDestination'>/param>
74 /// <param name='position'></param>
75 /// <param name='lookAt'></param>
76 /// <param name='teleportFlags'></param>
77 void DoTeleport(ScenePresence sp, GridRegion reg, GridRegion finalDestination,
78 Vector3 position, Vector3 lookAt, uint teleportFlags);
79
80 /// <summary>
81 /// Show whether the given agent is being teleported.
82 /// </summary>
83 /// <param name='id'>The agent ID</para></param>
84 /// <returns>true if the agent is in the process of being teleported, false otherwise.</returns>
85 bool IsInTransit(UUID id);
86
87 bool Cross(ScenePresence agent, bool isFlying);
88
89 void AgentArrivedAtDestination(UUID agent);
90
91 void EnableChildAgents(ScenePresence agent);
92
93 void EnableChildAgent(ScenePresence agent, GridRegion region);
94
95 GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos, out string version,
96 out Vector3 newpos, out string reason);
97
98 void Cross(SceneObjectGroup sog, Vector3 position, bool silent);
99
100 ScenePresence CrossAgentToNewRegionAsync(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, string version);
101
102 bool HandleIncomingSceneObject(SceneObjectGroup so, Vector3 newPosition);
103 }
104
105 public interface IUserAgentVerificationModule
106 {
107 bool VerifyClient(AgentCircuitData aCircuit, string token);
108 }
109}
diff --git a/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs
new file mode 100644
index 0000000..7a7b782
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs
@@ -0,0 +1,36 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface IEnvironmentModule
33 {
34 void ResetEnvironmentSettings(UUID regionUUID);
35 }
36}
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
new file mode 100644
index 0000000..461c880
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
@@ -0,0 +1,70 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Services.Interfaces;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void ChangeDelegate(UUID regionID);
35 public delegate void MessageDelegate(UUID regionID, UUID fromID, string fromName, string message);
36
37 public interface IEstateModule
38 {
39 event ChangeDelegate OnRegionInfoChange;
40 event ChangeDelegate OnEstateInfoChange;
41 event MessageDelegate OnEstateMessage;
42
43 uint GetRegionFlags();
44 bool IsManager(UUID avatarID);
45
46 string SetEstateOwner(int estateID, UserAccount account);
47 string SetEstateName(int estateID, string newName);
48 string SetRegionEstate(RegionInfo regionInfo, int estateID);
49 string CreateEstate(string estateName, UUID ownerID);
50
51 /// <summary>
52 /// Tell all clients about the current state of the region (terrain textures, water height, etc.).
53 /// </summary>
54 void sendRegionHandshakeToAll();
55 void TriggerEstateInfoChange();
56
57 /// <summary>
58 /// Fires the OnRegionInfoChange event.
59 /// </summary>
60 void TriggerRegionInfoChange();
61
62 void setEstateTerrainBaseTexture(int level, UUID texture);
63 void setEstateTerrainTextureHeights(int corner, float lowValue, float highValue);
64
65 /// <summary>
66 /// Returns whether the transfer ID is being used for a terrain transfer.
67 /// </summary>
68 bool IsTerrainXfer(ulong xferID);
69 }
70}
diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs
new file mode 100644
index 0000000..dfc269e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Net;
29using OpenMetaverse;
30using OpenMetaverse.Packets;
31using OpenMetaverse.Messages.Linden;
32using OpenMetaverse.StructuredData;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 public interface IEventQueue
37 {
38 bool Enqueue(OSD o, UUID avatarID);
39
40 // These are required to decouple Scenes from EventQueueHelper
41 void DisableSimulator(ulong handle, UUID avatarID);
42 void EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY);
43 void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint,
44 string capsPath, ulong regionHandle, int regionSizeX, int regionSizeY);
45 void TeleportFinishEvent(ulong regionHandle, byte simAccess,
46 IPEndPoint regionExternalEndPoint,
47 uint locationID, uint flags, string capsURL,
48 UUID agentID, int regionSizeX, int regionSizeY);
49 void CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt,
50 IPEndPoint newRegionExternalEndPoint,
51 string capsURL, UUID avatarID, UUID sessionID,
52 int regionSizeX, int regionSizeY);
53 void ChatterboxInvitation(UUID sessionID, string sessionName,
54 UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog,
55 uint timeStamp, bool offline, int parentEstateID, Vector3 position,
56 uint ttl, UUID transactionID, bool fromGroup, byte[] binaryBucket);
57 void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID anotherAgent, bool canVoiceChat,
58 bool isModerator, bool textMute);
59 void ParcelProperties(ParcelPropertiesMessage parcelPropertiesMessage, UUID avatarID);
60 void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID);
61 OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono);
62 OSD BuildEvent(string eventName, OSD eventBody);
63 void partPhysicsProperties(uint localID, byte physhapetype, float density, float friction, float bounce, float gravmod, UUID avatarID);
64
65 }
66}
diff --git a/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs
new file mode 100644
index 0000000..a730cfd
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30using OpenSim.Framework;
31using Caps=OpenSim.Framework.Capabilities.Caps;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IExternalCapsModule
36 {
37 /// <summary>
38 /// This function extends the simple URL configuration in the caps handlers
39 /// to facilitate more interesting computation when an external handler is
40 /// sent to the viewer.
41 /// </summary>
42 /// <param name="agentID">New user UUID</param>
43 /// <param name="caps">Internal caps registry, where the external handler will be registered</param>
44 /// <param name="capName">Name of the specific cap we are registering</param>
45 /// <param name="urlSkel">The skeleton URL provided in the caps configuration</param>
46 bool RegisterExternalUserCapsHandler(UUID agentID, Caps caps, String capName, String urlSkel);
47 }
48}
diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
new file mode 100644
index 0000000..7e87006
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
@@ -0,0 +1,98 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using FriendInfo = OpenSim.Services.Interfaces.FriendInfo;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IFriendsModule
36 {
37 /// <summary>
38 /// Are friends cached on this simulator for a particular user?
39 /// </summary>
40 /// <param name="userID"></param>
41 /// <returns></returns>
42 bool AreFriendsCached(UUID userID);
43
44 /// <summary>
45 /// Get friends from local cache only
46 /// </summary>
47 /// <param name="userID"></param>
48 /// <returns>
49 /// An empty array if the user has no friends or friends have not been cached.
50 /// </returns>
51 FriendInfo[] GetFriendsFromCache(UUID userID);
52
53 /// <summary>
54 /// Add a friendship between two users.
55 /// </summary>
56 /// <remarks>
57 /// Ultimately, it would be more useful to take in a user account here rather than having to have a user
58 /// present in the scene.
59 /// </remarks>
60 /// <param name="client"></param>
61 /// <param name="friendID"></param>
62 void AddFriendship(IClientAPI client, UUID friendID);
63
64 /// <summary>
65 /// Remove a friendship between two users.
66 /// </summary>
67 /// <remarks>
68 /// Ultimately, it would be more useful to take in a user account here rather than having to have a user
69 /// present in the scene.
70 /// </remarks>
71 /// <param name="client"></param>
72 /// <param name="exFriendID"></param>
73 void RemoveFriendship(IClientAPI client, UUID exFriendID);
74
75 /// <summary>
76 /// Get permissions granted by a friend.
77 /// </summary>
78 /// <param name="userID">The user.</param>
79 /// <param name="friendID">The friend that granted.</param>
80 /// <returns>The permissions. These come from the FriendRights enum.</returns>
81 int GetRightsGrantedByFriend(UUID userID, UUID friendID);
82
83 /// <summary>
84 /// Grant permissions for a friend.
85 /// </summary>
86 /// <remarks>
87 /// This includes giving them the ability to see when the user is online and permission to edit the user's
88 /// objects.
89 /// Granting lower permissions than the friend currently has will rescind the extra permissions.
90 /// </remarks>
91 /// <param name="remoteClient">The user granting the permissions.</param>
92 /// <param name="friendID">The friend.</param>
93 /// <param name="perms">These come from the FriendRights enum.</param>
94 void GrantRights(IClientAPI remoteClient, UUID friendID, int perms);
95
96 bool SendFriendsOnlineIfNeeded(IClientAPI client);
97 }
98} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs
new file mode 100644
index 0000000..552ce01
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IGodsModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 /// <summary>
34 /// This interface provides god related methods
35 /// </summary>
36 public interface IGodsModule
37 {
38 /// <summary>
39 /// Handle a request for admin rights
40 /// </summary>
41 /// <param name="agentID"></param>
42 /// <param name="sessionID"></param>
43 /// <param name="token"></param>
44 /// <param name="godLike"></param>
45 /// <param name="controllingClient"></param>
46 void RequestGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godLike, IClientAPI controllingClient);
47
48 /// <summary>
49 /// Kicks User specified from the simulator. This logs them off of the grid.
50 /// </summary>
51 /// <param name="godID">The person doing the kicking</param>
52 /// <param name="sessionID">The session of the person doing the kicking</param>
53 /// <param name="agentID">the person that is being kicked</param>
54 /// <param name="kickflags">This isn't used apparently</param>
55 /// <param name="reason">The message to send to the user after it's been turned into a field</param>
56 void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason);
57 }
58}
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs
new file mode 100644
index 0000000..7dc1552
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs
@@ -0,0 +1,97 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 /// <summary>
35 /// Provide mechanisms for messaging groups.
36 /// </summary>
37 ///
38 /// TODO: Provide a mechanism for receiving group messages as well as sending them
39 ///
40 public interface IGroupsMessagingModule
41 {
42 /// <summary>
43 /// Start a group chat session.
44 /// </summary>
45 /// You must call this before calling SendMessageToGroup(). If a chat session for this group is already taking
46 /// place then the agent will added to that session.
47 /// <param name="agentID">
48 /// A UUID that represents the agent being added. If you are agentless (e.g. you are
49 /// a region module), then you can use any random ID.
50 /// </param>
51 /// <param name="groupID">
52 /// The ID for the group to join. Currently, the session ID used is identical to the
53 /// group ID.
54 /// </param>
55 /// <returns>
56 /// True if the chat session was started successfully, false otherwise.
57 /// </returns>
58 bool StartGroupChatSession(UUID agentID, UUID groupID);
59
60 /// <summary>
61 /// Send a message to each member of a group whose chat session is active.
62 /// </summary>
63 /// <param name="im">
64 /// The message itself. The fields that must be populated are
65 ///
66 /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical)
67 /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog
68 /// message - The message itself
69 /// dialog - This must be (byte)InstantMessageDialog.SessionSend
70 /// </param>
71 /// <param name="groupID"></param>
72 void SendMessageToGroup(GridInstantMessage im, UUID groupID);
73
74 /// <summary>
75 /// Send a message to all the members of a group that fulfill a condition.
76 /// </summary>
77 /// <param name="im">
78 /// The message itself. The fields that must be populated are
79 ///
80 /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical)
81 /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog
82 /// message - The message itself
83 /// dialog - This must be (byte)InstantMessageDialog.SessionSend
84 /// </param>
85 /// <param name="groupID"></param>
86 /// <param name="sendingAgentForGroupCalls">
87 /// The requesting agent to use when querying the groups service. Sometimes this is different from
88 /// im.fromAgentID, with group notices, for example.
89 /// </param>
90 /// <param name="sendCondition">
91 /// The condition that must be met by a member for the message to be sent. If null then the message is sent
92 /// if the chat session is active.
93 /// </param>
94 void SendMessageToGroup(
95 GridInstantMessage im, UUID groupID, UUID sendingAgentForGroupCalls, Func<GroupMembersData, bool> sendCondition);
96 }
97} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
new file mode 100644
index 0000000..9ae5e87
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
@@ -0,0 +1,103 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void NewGroupNotice(UUID groupID, UUID noticeID);
35
36 public interface IGroupsModule
37 {
38 event NewGroupNotice OnNewGroupNotice;
39
40 /// <summary>
41 /// Create a group
42 /// </summary>
43 /// <param name="remoteClient"></param>
44 /// <param name="name"></param>
45 /// <param name="charter"></param>
46 /// <param name="showInList"></param>
47 /// <param name="insigniaID"></param>
48 /// <param name="membershipFee"></param>
49 /// <param name="openEnrollment"></param>
50 /// <param name="allowPublish"></param>
51 /// <param name="maturePublish"></param>
52 /// <returns>The UUID of the created group</returns>
53 UUID CreateGroup(
54 IClientAPI remoteClient, string name, string charter, bool showInList, UUID insigniaID, int membershipFee,
55 bool openEnrollment, bool allowPublish, bool maturePublish);
56
57 /// <summary>
58 /// Get a group
59 /// </summary>
60 /// <param name="name">Name of the group</param>
61 /// <returns>The group's data. Null if there is no such group.</returns>
62 GroupRecord GetGroupRecord(string name);
63
64 /// <summary>
65 /// Get a group
66 /// </summary>
67 /// <param name="GroupID">ID of the group</param>
68 /// <returns>The group's data. Null if there is no such group.</returns>
69 GroupRecord GetGroupRecord(UUID GroupID);
70
71 void ActivateGroup(IClientAPI remoteClient, UUID groupID);
72 List<GroupTitlesData> GroupTitlesRequest(IClientAPI remoteClient, UUID groupID);
73 List<GroupMembersData> GroupMembersRequest(IClientAPI remoteClient, UUID groupID);
74 List<GroupRolesData> GroupRoleDataRequest(IClientAPI remoteClient, UUID groupID);
75 List<GroupRoleMembersData> GroupRoleMembersRequest(IClientAPI remoteClient, UUID groupID);
76 GroupProfileData GroupProfileRequest(IClientAPI remoteClient, UUID groupID);
77 GroupMembershipData[] GetMembershipData(UUID UserID);
78 GroupMembershipData GetMembershipData(UUID GroupID, UUID UserID);
79
80 void UpdateGroupInfo(IClientAPI remoteClient, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish);
81
82 void SetGroupAcceptNotices(IClientAPI remoteClient, UUID groupID, bool acceptNotices, bool listInProfile);
83
84 void GroupTitleUpdate(IClientAPI remoteClient, UUID GroupID, UUID TitleRoleID);
85
86 GroupNoticeData[] GroupNoticesListRequest(IClientAPI remoteClient, UUID GroupID);
87 string GetGroupTitle(UUID avatarID);
88 void GroupRoleUpdate(IClientAPI remoteClient, UUID GroupID, UUID RoleID, string name, string description, string title, ulong powers, byte updateType);
89 void GroupRoleChanges(IClientAPI remoteClient, UUID GroupID, UUID RoleID, UUID MemberID, uint changes);
90 void GroupNoticeRequest(IClientAPI remoteClient, UUID groupNoticeID);
91 GridInstantMessage CreateGroupNoticeIM(UUID agentID, UUID groupNoticeID, byte dialog);
92 void SendAgentGroupDataUpdate(IClientAPI remoteClient);
93 void JoinGroupRequest(IClientAPI remoteClient, UUID GroupID);
94 void LeaveGroupRequest(IClientAPI remoteClient, UUID GroupID);
95 void EjectGroupMemberRequest(IClientAPI remoteClient, UUID GroupID, UUID EjecteeID);
96 void EjectGroupMember(IClientAPI remoteClient, UUID agentID, UUID GroupID, UUID EjecteeID);
97 void InviteGroupRequest(IClientAPI remoteClient, UUID GroupID, UUID InviteeID, UUID RoleID);
98 void InviteGroup(IClientAPI remoteClient, UUID agentID, UUID GroupID, UUID InviteeID, UUID RoleID);
99 void NotifyChange(UUID GroupID);
100
101 List<DirGroupsReplyData> FindGroups(IClientAPI remoteClient, string query);
102 }
103} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs
new file mode 100644
index 0000000..124504c
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs
@@ -0,0 +1,93 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public enum HttpRequestConstants
35 {
36 HTTP_METHOD = 0,
37 HTTP_MIMETYPE = 1,
38 HTTP_BODY_MAXLENGTH = 2,
39 HTTP_VERIFY_CERT = 3,
40 HTTP_VERBOSE_THROTTLE = 4,
41 HTTP_CUSTOM_HEADER = 5,
42 HTTP_PRAGMA_NO_CACHE = 6
43 }
44
45 /// <summary>
46 /// The initial status of the request before it is placed on the wire.
47 /// </summary>
48 /// <remarks>
49 /// The request may still fail later on, in which case the normal HTTP status is set.
50 /// </remarks>
51 [Flags]
52 public enum HttpInitialRequestStatus
53 {
54 OK = 1,
55 DISALLOWED_BY_FILTER = 2
56 }
57
58 public interface IHttpRequestModule
59 {
60 UUID MakeHttpRequest(string url, string parameters, string body);
61
62 /// <summary>
63 /// Starts the http request.
64 /// </summary>
65 /// <remarks>
66 /// This is carried out asynchronously unless it fails initial checks. Results are fetched by the script engine
67 /// HTTP requests module to be distributed back to scripts via a script event.
68 /// </remarks>
69 /// <returns>The ID of the request. If the requested could not be performed then this is UUID.Zero</returns>
70 /// <param name="localID">Local ID of the object containing the script making the request.</param>
71 /// <param name="itemID">Item ID of the script making the request.</param>
72 /// <param name="url">Url to request.</param>
73 /// <param name="parameters">LSL parameters for the request.</param>
74 /// <param name="headers">Extra headers for the request.</param>
75 /// <param name="body">Body of the request.</param>
76 /// <param name="status">
77 /// Initial status of the request. If OK then the request is actually made to the URL. Subsequent status is
78 /// then returned via IServiceRequest when the response is asynchronously fetched.
79 /// </param>
80 UUID StartHttpRequest(
81 uint localID, UUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body,
82 out HttpInitialRequestStatus status);
83
84 /// <summary>
85 /// Stop and remove all http requests for the given script.
86 /// </summary>
87 /// <param name='id'></param>
88 void StopHttpRequestsForScript(UUID id);
89
90 IServiceRequest GetNextCompletedRequest();
91 void RemoveCompletedRequest(UUID id);
92 }
93}
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs
new file mode 100644
index 0000000..6bad018
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs
@@ -0,0 +1,129 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30
31using OpenSim.Framework;
32using OpenSim.Region.Framework.Scenes;
33
34using OpenMetaverse;
35
36namespace OpenSim.Region.Framework.Interfaces
37{
38 public interface IInventoryAccessModule
39 {
40 UUID CapsUpdateInventoryItemAsset(IClientAPI remoteClient, UUID itemID, byte[] data);
41
42 bool UpdateInventoryItemAsset(UUID ownerID, InventoryItemBase item, AssetBase asset);
43
44 /// <summary>
45 /// Copy objects to a user's inventory.
46 /// </summary>
47 /// <remarks>
48 /// Is it left to the caller to delete them from the scene if required.
49 /// </remarks>
50 /// <param name="action"></param>
51 /// <param name="folderID"></param>
52 /// <param name="objectGroups"></param>
53 /// <param name="remoteClient"></param>
54 /// <param name="asAttachment">
55 /// Should be true if the object(s) are begin taken as attachments. False otherwise.
56 /// </param>
57 /// <returns>
58 /// A list of the items created. If there was more than one object and objects are not being coaleseced in
59 /// inventory, then the order of items is in the same order as the input objects.
60 /// </returns>
61 List<InventoryItemBase> CopyToInventory(
62 DeRezAction action, UUID folderID, List<SceneObjectGroup> objectGroups, IClientAPI remoteClient, bool asAttachment);
63
64 /// <summary>
65 /// Rez an object into the scene from the user's inventory
66 /// </summary>
67 /// <remarks>
68 /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing
69 /// things to the scene. The caller should be doing that, I think.
70 /// </remarks>
71 /// <param name="remoteClient"></param>
72 /// <param name="itemID"></param>
73 /// <param name="RayEnd"></param>
74 /// <param name="RayStart"></param>
75 /// <param name="RayTargetID"></param>
76 /// <param name="BypassRayCast"></param>
77 /// <param name="RayEndIsIntersection"></param>
78 /// <param name="RezSelected"></param>
79 /// <param name="RemoveItem"></param>
80 /// <param name="fromTaskID"></param>
81 /// <param name="attachment"></param>
82 /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns>
83 SceneObjectGroup RezObject(
84 IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart,
85 UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
86 bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment);
87
88 /// <summary>
89 /// Rez an object into the scene from the user's inventory
90 /// </summary>
91 /// <remarks>
92 /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing
93 /// things to the scene. The caller should be doing that, I think.
94 /// </remarks>
95 /// <param name="remoteClient"></param>
96 /// <param name="item">
97 /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed.
98 /// </param>
99 /// <param name="assetID">The asset id for the object to rez.</param>
100 /// <param name="RayEnd"></param>
101 /// <param name="RayStart"></param>
102 /// <param name="RayTargetID"></param>
103 /// <param name="BypassRayCast"></param>
104 /// <param name="RayEndIsIntersection"></param>
105 /// <param name="RezSelected"></param>
106 /// <param name="RemoveItem"></param>
107 /// <param name="fromTaskID"></param>
108 /// <param name="attachment"></param>
109 /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns>
110 SceneObjectGroup RezObject(
111 IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart,
112 UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
113 bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment);
114
115 void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver);
116
117 /// <summary>
118 /// Does the client have sufficient permissions to retrieve the inventory item?
119 /// </summary>
120 /// <param name="remoteClient"></param>
121 /// <param name="itemID"></param>
122 /// <param name="requestID"></param>
123 /// <returns></returns>
124 bool CanGetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID);
125
126 // Must be here because of textures in user's inventory
127 bool IsForeignUser(UUID userID, out string assetServerURL);
128 }
129}
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs
new file mode 100644
index 0000000..37e20c3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs
@@ -0,0 +1,125 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.IO;
31using OpenSim.Services.Interfaces;
32using OpenMetaverse;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 /// <summary>
37 /// Used for the OnInventoryArchiveSaved event.
38 /// </summary>
39 /// <param name="id">Request id</param>
40 /// <param name="succeeded">true if the save succeeded, false otherwise</param>
41 /// <param name="userInfo">The user for whom the save was conducted</param>
42 /// <param name="invPath">The inventory path saved</param>
43 /// <param name="savePath">The stream to which the archive was saved</param>
44 /// <param name="reportedException">Contains the exception generated if the save did not succeed</param>
45 /// <param name="saveCount">Number of inventory items saved to archive</param>
46 /// <param name="filterCount">Number of inventory items skipped due to perm filter option</param>
47 public delegate void InventoryArchiveSaved(
48 UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, Exception reportedException, int saveCount, int filterCount);
49
50 /// <summary>
51 /// Used for the OnInventoryArchiveLoaded event.
52 /// </summary>
53 /// <param name="id">Request id</param>
54 /// <param name="succeeded">true if the load succeeded, false otherwise</param>
55 /// <param name="userInfo">The user for whom the load was conducted</param>
56 /// <param name="invPath">The inventory path loaded</param>
57 /// <param name="savePath">The stream from which the archive was loaded</param>
58 /// <param name="reportedException">Contains the exception generated if the load did not succeed</param>
59 /// <param name="loadCount">Number of inventory items loaded from archive</param>
60 public delegate void InventoryArchiveLoaded(
61 UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream loadStream, Exception reportedException, int loadCount);
62
63
64 public interface IInventoryArchiverModule
65 {
66 /// <summary>
67 /// Fired when an archive inventory save has been completed.
68 /// </summary>
69 event InventoryArchiveSaved OnInventoryArchiveSaved;
70
71 /// <summary>
72 /// Fired when an archive inventory load has been completed.
73 /// </summary>
74 event InventoryArchiveLoaded OnInventoryArchiveLoaded;
75
76 /// <summary>
77 /// Dearchive a user's inventory folder from the given stream
78 /// </summary>
79 /// <param name="firstName"></param>
80 /// <param name="lastName"></param>
81 /// <param name="invPath">The inventory path in which to place the loaded folders and items</param>
82 /// <param name="loadStream">The stream from which the inventory archive will be loaded</param>
83 /// <returns>true if the first stage of the operation succeeded, false otherwise</returns>
84 bool DearchiveInventory(UUID id, string firstName, string lastName, string invPath, string pass, Stream loadStream);
85
86 /// <summary>
87 /// Dearchive a user's inventory folder from the given stream
88 /// </summary>
89 /// <param name="firstName"></param>
90 /// <param name="lastName"></param>
91 /// <param name="invPath">The inventory path in which to place the loaded folders and items</param>
92 /// <param name="loadStream">The stream from which the inventory archive will be loaded</param>
93 /// <param name="options">Dearchiving options. At the moment, the only option is ("merge", true). This merges
94 /// the loaded IAR with existing folders where possible.</param>
95 /// <returns>true if the first stage of the operation succeeded, false otherwise</returns>
96 bool DearchiveInventory(
97 UUID id, string firstName, string lastName, string invPath, string pass, Stream loadStream,
98 Dictionary<string, object> options);
99
100 /// <summary>
101 /// Archive a user's inventory folder to the given stream
102 /// </summary>
103 /// <param name="id">ID representing this request. This will later be returned in the save event</param>
104 /// <param name="firstName"></param>
105 /// <param name="lastName"></param>
106 /// <param name="invPath">The inventory path from which the inventory should be saved.</param>
107 /// <param name="saveStream">The stream to which the inventory archive will be saved</param>
108 /// <returns>true if the first stage of the operation succeeded, false otherwise</returns>
109 bool ArchiveInventory(UUID id, string firstName, string lastName, string invPath, string pass, Stream saveStream);
110
111 /// <summary>
112 /// Archive a user's inventory folder to the given stream
113 /// </summary>
114 /// <param name="id">ID representing this request. This will later be returned in the save event</param>
115 /// <param name="firstName"></param>
116 /// <param name="lastName"></param>
117 /// <param name="invPath">The inventory path from which the inventory should be saved.</param>
118 /// <param name="saveStream">The stream to which the inventory archive will be saved</param>
119 /// <param name="options">Archiving options. Currently, there are none.</param>
120 /// <returns>true if the first stage of the operation succeeded, false otherwise</returns>
121 bool ArchiveInventory(
122 UUID id, string firstName, string lastName, string invPath, string pass, Stream saveStream,
123 Dictionary<string, object> options);
124 }
125}
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs
new file mode 100644
index 0000000..1e92fde
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Region.Framework.Scenes;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 /// <summary>
34 /// An interface for a module that manages inter-agent inventory offers and transfers.
35 /// </summary>
36 public interface IInventoryTransferModule
37 {
38 bool NeedSceneCacheClear(UUID agentID, Scene scene);
39 }
40} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs
new file mode 100644
index 0000000..1cbd045
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs
@@ -0,0 +1,65 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Drawing;
29using OpenMetaverse;
30using OpenMetaverse.Imaging;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void DecodedCallback(UUID AssetId, OpenJPEG.J2KLayerInfo[] layers);
35
36 public interface IJ2KDecoder
37 {
38 void BeginDecode(UUID assetID, byte[] j2kData, DecodedCallback callback);
39
40 /// <summary>
41 /// Provides a synchronous decode so that caller can be assured that this executes before the next line
42 /// </summary>
43 /// <param name="assetID"></param>
44 /// <param name="j2kData"></param>
45 /// <returns>true if decode was successful. false otherwise.</returns>
46 bool Decode(UUID assetID, byte[] j2kData);
47
48 /// <summary>
49 /// Provides a synchronous decode so that caller can be assured that this executes before the next line
50 /// </summary>
51 /// <param name="assetID"></param>
52 /// <param name="j2kData"></param>
53 /// <param name="layers">layer data</param>
54 /// <param name="components">number of components</param>
55 /// <returns>true if decode was successful. false otherwise.</returns>
56 bool Decode(UUID assetID, byte[] j2kData, out OpenJPEG.J2KLayerInfo[] layers, out int components);
57
58 /// <summary>
59 /// Provides a synchronous decode direct to an image object
60 /// </summary>
61 /// <param name="j2kData"></param>
62 /// <returns>decoded image or 'null' of unsuccessful</returns>
63 Image DecodeToImage(byte[] j2kData);
64 }
65}
diff --git a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs
new file mode 100644
index 0000000..1a89721
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs
@@ -0,0 +1,83 @@
1/*
2 * Copyright (c) Contributors
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.Reflection;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 // these could be expanded at some point to provide more type information
35 // for now value accounts for all base types
36 public enum JsonStoreNodeType
37 {
38 Undefined = 0,
39 Object = 1,
40 Array = 2,
41 Value = 3
42 }
43
44 public enum JsonStoreValueType
45 {
46 Undefined = 0,
47 Boolean = 1,
48 Integer = 2,
49 Float = 3,
50 String = 4,
51 UUID = 5
52 }
53
54 public struct JsonStoreStats
55 {
56 public int StoreCount;
57 }
58
59 public delegate void TakeValueCallback(string s);
60
61 public interface IJsonStoreModule
62 {
63 JsonStoreStats GetStoreStats();
64
65 bool AttachObjectStore(UUID objectID);
66 bool CreateStore(string value, ref UUID result);
67 bool DestroyStore(UUID storeID);
68
69 JsonStoreNodeType GetNodeType(UUID storeID, string path);
70 JsonStoreValueType GetValueType(UUID storeID, string path);
71
72 bool TestStore(UUID storeID);
73
74 bool SetValue(UUID storeID, string path, string value, bool useJson);
75 bool RemoveValue(UUID storeID, string path);
76 bool GetValue(UUID storeID, string path, bool useJson, out string value);
77
78 void TakeValue(UUID storeID, string path, bool useJson, TakeValueCallback cback);
79 void ReadValue(UUID storeID, string path, bool useJson, TakeValueCallback cback);
80
81 int GetArrayLength(UUID storeID, string path);
82 }
83}
diff --git a/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs b/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs
new file mode 100644
index 0000000..b5fd24f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs
@@ -0,0 +1,33 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ILightShareModule
31 {
32 }
33} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs
new file mode 100644
index 0000000..6a7d4a1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Drawing;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IMapImageUploadModule
34 {
35 void UploadMapTile(IScene scene, Bitmap mapTile);
36 }
37} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs
new file mode 100644
index 0000000..290b826
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs
@@ -0,0 +1,61 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Framework;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public delegate void MessageResultNotification(bool success);
33 public delegate void UndeliveredMessage(GridInstantMessage im);
34
35 public interface IMessageTransferModule
36 {
37 event UndeliveredMessage OnUndeliveredMessage;
38
39 /// <summary>
40 /// Attempt to send an instant message to a given destination.
41 /// </summary>
42 /// <remarks>
43 /// If the message cannot be delivered for any reason, this will be signalled on the OnUndeliveredMessage
44 /// event. result(false) will also be called if the message cannot be delievered unless the type is
45 /// InstantMessageDialog.MessageFromAgent. For successful message delivery, result(true) is called.
46 /// </remarks>
47 /// <param name="im"></param>
48 /// <param name="result"></param>
49 void SendInstantMessage(GridInstantMessage im, MessageResultNotification result);
50
51 /// <summary>
52 /// Appropriately handle a known undeliverable message without attempting a send.
53 /// </summary>
54 /// <remarks>
55 /// Essentially, this invokes the OnUndeliveredMessage event.
56 /// </remarks>
57 /// <param name="im"></param>
58 /// <param name="result"></param>
59 void HandleUndeliverableMessage(GridInstantMessage im, MessageResultNotification result);
60 }
61}
diff --git a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs
new file mode 100644
index 0000000..1d3d240
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs
@@ -0,0 +1,67 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30using OpenSim.Region.Framework.Scenes;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 /// <summary>
35 /// Provides methods from manipulating media-on-a-prim
36 /// </summary>
37 public interface IMoapModule
38 {
39 /// <summary>
40 /// Get the media entry for a given prim face.
41 /// </summary>
42 /// A copy of the media entry is returned rather than the original, so this can be altered at will without
43 /// affecting the original settings.
44 /// <param name="part"></param>
45 /// <param name="face"></param>
46 /// <returns></returns>
47 MediaEntry GetMediaEntry(SceneObjectPart part, int face);
48
49 /// <summary>
50 /// Set the media entry for a given prim face.
51 /// </summary>
52 /// <param name="SceneObjectPart"></param>
53 /// <param name="face"></param>
54 /// <param name="me"></param>
55 void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me);
56
57 /// <summary>
58 /// Clear the media entry for a given prim face.
59 /// </summary>
60 ///
61 /// This is the equivalent of setting a media entry of null
62 ///
63 /// <param name="part"></param>
64 /// <param name="face">/param>
65 void ClearMediaEntry(SceneObjectPart part, int face);
66 }
67} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/INPCModule.cs b/OpenSim/Region/Framework/Interfaces/INPCModule.cs
new file mode 100644
index 0000000..478833e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/INPCModule.cs
@@ -0,0 +1,288 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30using OpenSim.Region.Framework.Scenes;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 /// <summary>
35 /// Temporary interface. More methods to come at some point to make NPCs
36 /// more object oriented rather than controlling purely through module
37 /// level interface calls (e.g. sit/stand).
38 /// </summary>
39 public interface INPC
40 {
41 /// <summary>
42 /// Should this NPC be sensed by LSL sensors as an 'agent'
43 /// (interpreted here to mean a normal user) rather than an OpenSim
44 /// specific NPC extension?
45 /// </summary>
46 bool SenseAsAgent { get; }
47 }
48
49 public interface INPCModule
50 {
51 /// <summary>
52 /// Create an NPC
53 /// </summary>
54 /// <param name="firstname"></param>
55 /// <param name="lastname"></param>
56 /// <param name="position"></param>
57 /// <param name="senseAsAgent">
58 /// Make the NPC show up as an agent on LSL sensors. The default is
59 /// that they show up as the NPC type instead, but this is currently
60 /// an OpenSim-only extension.
61 /// </param>
62 /// <param name="scene"></param>
63 /// <param name="appearance">
64 /// The avatar appearance to use for the new NPC.
65 /// </param>
66 /// <returns>
67 /// The UUID of the ScenePresence created. UUID.Zero if there was a
68 /// failure.
69 /// </returns>
70 UUID CreateNPC(string firstname, string lastname, Vector3 position,
71 UUID owner, bool senseAsAgent, Scene scene,
72 AvatarAppearance appearance);
73
74 /// <summary>
75 /// Create an NPC with a user-supplied agentID
76 /// </summary>
77 /// <param name="firstname"></param>
78 /// <param name="lastname"></param>
79 /// <param name="position"></param>
80 /// <param name="agentID"></param>
81 /// The desired agent ID
82 /// <param name="owner"></param>
83 /// <param name="senseAsAgent">
84 /// Make the NPC show up as an agent on LSL sensors. The default is
85 /// that they show up as the NPC type instead, but this is currently
86 /// an OpenSim-only extension.
87 /// </param>
88 /// <param name="scene"></param>
89 /// <param name="appearance">
90 /// The avatar appearance to use for the new NPC.
91 /// </param>
92 /// <returns>
93 /// The UUID of the ScenePresence created. UUID.Zero if there was a
94 /// failure.
95 /// </returns>
96 UUID CreateNPC(string firstname, string lastname,
97 Vector3 position, UUID agentID, UUID owner, bool senseAsAgent, Scene scene,
98 AvatarAppearance appearance);
99
100 /// <summary>
101 /// Check if the agent is an NPC.
102 /// </summary>
103 /// <param name="agentID"></param>
104 /// <param name="scene"></param>
105 /// <returns>
106 /// True if the agent is an NPC in the given scene. False otherwise.
107 /// </returns>
108 bool IsNPC(UUID agentID, Scene scene);
109
110 /// <summary>
111 /// Get the NPC.
112 /// </summary>
113 /// <remarks>
114 /// This is not currently complete - manipulation of NPCs still occurs
115 /// through the region interface.
116 /// </remarks>
117 /// <param name="agentID"></param>
118 /// <param name="scene"></param>
119 /// <returns>The NPC. null if it does not exist.</returns>
120 INPC GetNPC(UUID agentID, Scene scene);
121
122 /// <summary>
123 /// Check if the caller has permission to manipulate the given NPC.
124 /// </summary>
125 /// <remarks>
126 /// A caller has permission if
127 /// * An NPC exists with the given npcID.
128 /// * The caller UUID given is UUID.Zero.
129 /// * The avatar is unowned (owner is UUID.Zero).
130 /// * The avatar is owned and the owner and callerID match.
131 /// * The avatar is owned and the callerID matches its agentID.
132 /// </remarks>
133 /// <param name="av"></param>
134 /// <param name="callerID"></param>
135 /// <returns>true if they do, false if they don't.</returns>
136 /// <param name="npcID"></param>
137 /// <param name="callerID"></param>
138 /// <returns>
139 /// true if they do, false if they don't or if there's no NPC with the
140 /// given ID.
141 /// </returns>
142 bool CheckPermissions(UUID npcID, UUID callerID);
143
144 /// <summary>
145 /// Set the appearance for an NPC.
146 /// </summary>
147 /// <param name="agentID"></param>
148 /// <param name="appearance"></param>
149 /// <param name="scene"></param>
150 /// <returns>
151 /// True if the operation succeeded, false if there was no such agent
152 /// or the agent was not an NPC.
153 /// </returns>
154 bool SetNPCAppearance(UUID agentID, AvatarAppearance appearance,
155 Scene scene);
156
157 /// <summary>
158 /// Move an NPC to a target over time.
159 /// </summary>
160 /// <param name="agentID">The UUID of the NPC</param>
161 /// <param name="scene"></param>
162 /// <param name="pos"></param>
163 /// <param name="noFly">
164 /// If true, then the avatar will attempt to walk to the location even
165 /// if it's up in the air. This is to allow walking on prims.
166 /// </param>
167 /// <param name="landAtTarget">
168 /// If true and the avatar is flying when it reaches the target, land.
169 /// </param> name="running">
170 /// If true, NPC moves with running speed.
171 /// <returns>
172 /// True if the operation succeeded, false if there was no such agent
173 /// or the agent was not an NPC.
174 /// </returns>
175 bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly,
176 bool landAtTarget, bool running);
177
178 /// <summary>
179 /// Stop the NPC's current movement.
180 /// </summary>
181 /// <param name="agentID">The UUID of the NPC</param>
182 /// <param name="scene"></param>
183 /// <returns>
184 /// True if the operation succeeded, false if there was no such agent
185 /// or the agent was not an NPC.
186 /// </returns>
187 bool StopMoveToTarget(UUID agentID, Scene scene);
188
189 /// <summary>
190 /// Get the NPC to say something.
191 /// </summary>
192 /// <param name="agentID">The UUID of the NPC</param>
193 /// <param name="scene"></param>
194 /// <param name="text"></param>
195 /// <returns>
196 /// True if the operation succeeded, false if there was no such agent
197 /// or the agent was not an NPC.
198 /// </returns>
199 bool Say(UUID agentID, Scene scene, string text);
200
201 /// <summary>
202 /// Get the NPC to say something.
203 /// </summary>
204 /// <param name="agentID">The UUID of the NPC</param>
205 /// <param name="scene"></param>
206 /// <param name="text"></param>
207 /// <param name="channel"></param>
208 /// <returns>
209 /// True if the operation succeeded, false if there was no such agent
210 /// or the agent was not an NPC.
211 /// </returns>
212 bool Say(UUID agentID, Scene scene, string text, int channel);
213
214 /// <summary>
215 /// Get the NPC to shout something.
216 /// </summary>
217 /// <param name="agentID">The UUID of the NPC</param>
218 /// <param name="scene"></param>
219 /// <param name="text"></param>
220 /// <param name="channel"></param>
221 /// <returns>
222 /// True if the operation succeeded, false if there was no such agent
223 /// or the agent was not an NPC.
224 /// </returns>
225 bool Shout(UUID agentID, Scene scene, string text, int channel);
226
227 /// <summary>
228 /// Get the NPC to whisper something.
229 /// </summary>
230 /// <param name="agentID">The UUID of the NPC</param>
231 /// <param name="scene"></param>
232 /// <param name="text"></param>
233 /// <param name="channel"></param>
234 /// <returns>
235 /// True if the operation succeeded, false if there was no such agent
236 /// or the agent was not an NPC.
237 /// </returns>
238 bool Whisper(UUID agentID, Scene scene, string text, int channel);
239
240 /// <summary>
241 /// Sit the NPC.
242 /// </summary>
243 /// <param name="agentID"></param>
244 /// <param name="partID"></param>
245 /// <param name="scene"></param>
246 /// <returns>true if the sit succeeded, false if not</returns>
247 bool Sit(UUID agentID, UUID partID, Scene scene);
248
249 /// <summary>
250 /// Stand a sitting NPC.
251 /// </summary>
252 /// <param name="agentID"></param>
253 /// <param name="scene"></param>
254 /// <returns>true if the stand succeeded, false if not</returns>
255 bool Stand(UUID agentID, Scene scene);
256
257 /// <summary>
258 /// Get the NPC to touch an object.
259 /// </summary>
260 /// <param name="agentID"></param>
261 /// <param name="partID"></param>
262 /// <returns>
263 /// true if the touch is actually attempted, false if not.
264 /// </returns>
265 bool Touch(UUID agentID, UUID partID);
266
267 /// <summary>
268 /// Delete an NPC.
269 /// </summary>
270 /// <param name="agentID">The UUID of the NPC</param>
271 /// <param name="scene"></param>
272 /// <returns>
273 /// True if the operation succeeded, false if there was no such agent
274 /// or the agent was not an NPC.
275 /// </returns>
276 bool DeleteNPC(UUID agentID, Scene scene);
277
278 /// <summary>
279 /// Get the owner of a NPC
280 /// </summary>
281 /// <param name="agentID">The UUID of the NPC</param>
282 /// <returns>
283 /// UUID of owner if the NPC exists, UUID.Zero if there was no such
284 /// agent, the agent is unowned or the agent was not an NPC.
285 /// </returns>
286 UUID GetOwner(UUID agentID);
287 }
288}
diff --git a/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs b/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs
new file mode 100644
index 0000000..ff6efba
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs
@@ -0,0 +1,35 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface INonSharedRegionModule : IRegionModuleBase
33 {
34 }
35}
diff --git a/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs
new file mode 100644
index 0000000..1ed978b
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs
@@ -0,0 +1,54 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Region.Framework.Scenes;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 /// <value>
34 /// Which set of permissions a user has.
35 /// </value>
36 public enum PermissionClass
37 {
38 Owner,
39 Group,
40 Everyone
41 };
42
43 public interface IPermissionsModule
44 {
45
46 /// <summary>
47 /// Returns the type of permissions that the user has over an object.
48 /// </summary>
49 /// <param name="user">The user</param>
50 /// <param name="obj">The object</param>
51 /// <returns>The type of permissions the user has over the object</returns>
52 PermissionClass GetPermissionClass(UUID user, SceneObjectPart obj);
53 }
54}
diff --git a/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs
new file mode 100644
index 0000000..d44c1e1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs
@@ -0,0 +1,54 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public struct PresenceInfo
33 {
34 public string UserID;
35 public UUID RegionID;
36
37 public PresenceInfo(string userID, UUID regionID)
38 {
39 UserID = userID;
40 RegionID = regionID;
41 }
42 }
43
44 public delegate void PresenceChange(PresenceInfo info);
45 public delegate void BulkPresenceData(PresenceInfo[] info);
46
47 public interface IPresenceModule
48 {
49 void RequestBulkPresenceData(UUID[] users);
50
51 event PresenceChange OnPresenceChange;
52 event BulkPresenceData OnBulkPresenceData;
53 }
54}
diff --git a/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs
new file mode 100644
index 0000000..d63da2e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IPrimCountModule
34 {
35 void TaintPrimCount(ILandObject land);
36 void TaintPrimCount(int x, int y);
37 void TaintPrimCount();
38
39 IPrimCounts GetPrimCounts(UUID parcelID);
40 }
41} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IProfileModule.cs b/OpenSim/Region/Framework/Interfaces/IProfileModule.cs
new file mode 100644
index 0000000..ef03d4a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IProfileModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Framework
31{
32 public interface IProfileModule
33 {
34 void RequestAvatarProperties(IClientAPI remoteClient, UUID avatarID);
35
36 }
37}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
new file mode 100644
index 0000000..99bc87d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
@@ -0,0 +1,133 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.IO;
31
32using OpenMetaverse;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 /// <summary>
37 /// Interface to region archive functionality
38 /// </summary>
39 public interface IRegionArchiverModule
40 {
41 void HandleLoadOarConsoleCommand(string module, string[] cmdparams);
42 void HandleSaveOarConsoleCommand(string module, string[] cmdparams);
43
44 /// <summary>
45 /// Archive the region to the given path
46 /// </summary>
47 ///
48 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
49 /// the EventManager.OnOarFileSaved event.
50 ///
51 /// <param name="savePath"></param>
52 void ArchiveRegion(string savePath, Dictionary<string, object> options);
53
54 /// <summary>
55 /// Archive the region to the given path
56 /// </summary>
57 /// <remarks>
58 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
59 /// the EventManager.OnOarFileSaved event.
60 /// </remarks>
61 /// <param name="savePath"></param>
62 /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
63 /// <param name="options">Options for the save</param>
64 void ArchiveRegion(string savePath, Guid requestId, Dictionary<string, object> options);
65
66 /// <summary>
67 /// Archive the region to a stream.
68 /// </summary>
69 /// <remarks>
70 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
71 /// the EventManager.OnOarFileSaved event.
72 /// </remarks>
73 /// <param name="saveStream"></param>
74 /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
75 void ArchiveRegion(Stream saveStream, Guid requestId);
76
77 /// <summary>
78 /// Archive the region to a stream.
79 /// </summary>
80 /// <remarks>
81 /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
82 /// the EventManager.OnOarFileSaved event.
83 /// </remarks>
84 /// <param name="saveStream"></param>
85 /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
86 /// <param name="options">Options for the save</param>
87 void ArchiveRegion(Stream saveStream, Guid requestId, Dictionary<string, object> options);
88
89 /// <summary>
90 /// Dearchive the given region archive. This replaces the existing scene.
91 /// </summary>
92 /// <remarks>
93 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
94 /// </remarks>
95 /// <param name="loadPath"></param>
96 void DearchiveRegion(string loadPath);
97
98 /// <summary>
99 /// Dearchive the given region archive. This replaces the existing scene.
100 /// </summary>
101 ///
102 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
103 ///
104 /// <param name="loadPath"></param>
105 /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
106 /// <param name="options">
107 /// Dictionary of options.
108 /// </param>
109 void DearchiveRegion(string loadPath, Guid requestId, Dictionary<string,object> options);
110
111 /// <summary>
112 /// Dearchive a region from a stream. This replaces the existing scene.
113 /// </summary>
114 ///
115 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
116 ///
117 /// <param name="loadStream"></param>
118 void DearchiveRegion(Stream loadStream);
119
120 /// <summary>
121 /// Dearchive a region from a stream. This replaces the existing scene.
122 /// </summary>
123 ///
124 /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event.
125 ///
126 /// <param name="loadStream"></param>
127 /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
128 /// <param name="options">
129 /// Dictionary of options.
130 /// </param>
131 void DearchiveRegion(Stream loadStream, Guid requestId, Dictionary<string,object> options);
132 }
133}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs
new file mode 100644
index 0000000..c6f531e
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Linq;
31using System.Text;
32using OpenSim.Region.Framework.Scenes;
33using System.IO;
34using OpenMetaverse;
35
36namespace OpenSim.Region.Framework.Interfaces
37{
38 public interface IRegionCombinerModule
39 {
40 /// <summary>
41 /// Does the given id belong to the root region of a megaregion?
42 /// </summary>
43 bool IsRootForMegaregion(UUID regionId);
44
45 /// <summary>
46 /// Gets the size of megaregion.
47 /// </summary>
48 /// <remarks>
49 /// Returns size in meters.
50 /// Do not rely on this method remaining the same - this area is actively under development.
51 /// </remarks>
52 /// <param name="sceneId">
53 /// The id of the root region for a megaregion.
54 /// This may change in the future to allow any region id that makes up a megaregion.
55 /// Currently, will throw an exception if this does not match a root region.
56 /// </param>
57 Vector2 GetSizeOfMegaregion(UUID regionId);
58
59 /// <summary>
60 /// Tests to see of position (relative to the region) is within the megaregion
61 /// </summary>
62 bool PositionIsInMegaregion(UUID currentRegion, int xx, int yy);
63 }
64} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs b/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs
new file mode 100644
index 0000000..4d261d6
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionConsole.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IRegionConsole
34 {
35 bool RunCommand(string command, UUID invokerID);
36 void SendConsoleOutput(UUID agentID, string message);
37 void AddCommand(string module, bool shared, string command, string help, string longhelp, CommandDelegate fn);
38 }
39}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs
new file mode 100644
index 0000000..2089bce
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs
@@ -0,0 +1,104 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using Mono.Addins;
30using Nini.Config;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 [TypeExtensionPoint(Path = "/OpenSim/RegionModules", NodeName="RegionModule")]
36 public interface IRegionModuleBase
37 {
38 /// <value>
39 /// The name of the module
40 /// </value>
41 string Name { get; }
42
43 /// <summary>
44 /// If this returns non-null, it is the type of an interface that
45 /// this module intends to register.
46 /// This will cause the loader to defer loading of this module
47 /// until all other modules have been loaded. If no other module
48 /// has registered the interface by then, this module will be
49 /// activated, else it will remain inactive, letting the other module
50 /// take over. This should return non-null ONLY in modules that are
51 /// intended to be easily replaceable, e.g. stub implementations
52 /// that the developer expects to be replaced by third party provided
53 /// modules.
54 /// </summary>
55 Type ReplaceableInterface { get; }
56
57 /// <summary>
58 /// This is called to initialize the region module. For shared modules, this is called
59 /// exactly once, after creating the single (shared) instance. For non-shared modules,
60 /// this is called once on each instance, after the instace for the region has been created.
61 /// </summary>
62 /// <param name="source">
63 /// A <see cref="IConfigSource"/>
64 /// </param>
65 void Initialise(IConfigSource source);
66
67 /// <summary>
68 /// This is the inverse to <see cref="Initialise"/>. After a Close(), this instance won't be usable anymore.
69 /// </summary>
70 void Close();
71
72 /// <summary>
73 /// This is called whenever a <see cref="Scene"/> is added. For shared modules, this can happen several times.
74 /// For non-shared modules, this happens exactly once, after <see cref="Initialise"/> has been called.
75 /// </summary>
76 /// <param name="scene">
77 /// A <see cref="Scene"/>
78 /// </param>
79 void AddRegion(Scene scene);
80
81 /// <summary>
82 /// This is called whenever a <see cref="Scene"/> is removed. For shared modules, this can happen several times.
83 /// For non-shared modules, this happens exactly once, if the scene this instance is associated with is removed.
84 /// </summary>
85 /// <param name="scene">
86 /// A <see cref="Scene"/>
87 /// </param>
88 void RemoveRegion(Scene scene);
89
90 /// <summary>
91 /// This will be called once for every scene loaded. In a shared module
92 /// this will be multiple times in one instance, while a nonshared
93 /// module instance will only be called once.
94 /// This method is called after AddRegion has been called in all
95 /// modules for that scene, providing an opportunity to request
96 /// another module's interface, or hook an event from another module.
97 /// </summary>
98 /// <param name="scene">
99 /// A <see cref="Scene"/>
100 /// </param>
101 void RegionLoaded(Scene scene);
102 }
103
104}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs b/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs
new file mode 100644
index 0000000..68bff78
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs
@@ -0,0 +1,38 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenSim.Region.Framework.Scenes;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IRegionModulesController
34 {
35 void AddRegionToModules(Scene scene);
36 void RemoveRegionFromModules (Scene scene);
37 }
38}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs
new file mode 100644
index 0000000..136ca92
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenSim.Framework;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IRegionReadyModule
34 {
35 void OarLoadingAlert(string msg);
36
37 /// <summary>
38 /// Trigger region ready status manually.
39 /// </summary>
40 /// <remarks>
41 /// This should be called by the scene if the IRegionReadyModule has set Scene.LoginLock == true
42 /// </remarks>
43 /// <param name='scene'></param>
44 void TriggerRegionReady(IScene scene);
45 }
46}
47
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
new file mode 100644
index 0000000..c5b21a8
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using System.IO;
30using OpenMetaverse;
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(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(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</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 SerializeGroupToXml2(SceneObjectGroup grp, Dictionary<string, object> options);
121 }
122}
diff --git a/OpenSim/Region/Framework/Interfaces/IRestartModule.cs b/OpenSim/Region/Framework/Interfaces/IRestartModule.cs
new file mode 100644
index 0000000..c68550f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IRestartModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IRestartModule
34 {
35 TimeSpan TimeUntilRestart { get; }
36 void ScheduleRestart(UUID initiator, string message, int[] alerts, bool notice);
37 void AbortRestart(string message);
38 }
39}
diff --git a/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs b/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs
new file mode 100644
index 0000000..c5e678b
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs
@@ -0,0 +1,43 @@
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 OpenSim.Region.Framework.Scenes;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 public interface ISceneCommandsModule
37 {
38 /// <summary>
39 /// Sets the scene debug options.
40 /// </summary>
41 void SetSceneDebugOptions(Dictionary<string, string> options);
42 }
43} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IScenePresence.cs b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs
new file mode 100644
index 0000000..0fe681f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs
@@ -0,0 +1,86 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 /// <summary>
36 /// An agent in the scene.
37 /// </summary>
38 /// <remarks>
39 /// Interface is a work in progress. Please feel free to add other required properties and methods.
40 /// </remarks>
41 public interface IScenePresence : ISceneAgent
42 {
43 /// <summary>
44 /// Copy of the script states while the agent is in transit. This state may
45 /// need to be placed back in case of transfer fail.
46 /// </summary>
47 List<string> InTransitScriptStates { get; }
48
49 /// <summary>
50 /// The AttachmentsModule synchronizes on this to avoid race conditions between commands to add and remove attachments.
51 /// </summary>
52 /// <remarks>
53 /// All add and remove attachment operations must synchronize on this for the lifetime of their operations.
54 /// </remarks>
55 Object AttachmentsSyncLock { get; }
56
57 /// <summary>
58 /// The scene objects attached to this avatar.
59 /// </summary>
60 /// <returns>
61 /// A copy of the list.
62 /// </returns>
63 /// <remarks>
64 /// Do not change this list directly - use the attachments module.
65 /// </remarks>
66 List<SceneObjectGroup> GetAttachments();
67
68 /// <summary>
69 /// The scene objects attached to this avatar at a specific attachment point.
70 /// </summary>
71 /// <param name="attachmentPoint"></param>
72 /// <returns></returns>
73 List<SceneObjectGroup> GetAttachments(uint attachmentPoint);
74
75 /// <summary>
76 /// Does this avatar have any attachments?
77 /// </summary>
78 /// <returns></returns>
79 bool HasAttachments();
80
81 // Don't use these methods directly. Instead, use the AttachmentsModule
82 void AddAttachment(SceneObjectGroup gobj);
83 void RemoveAttachment(SceneObjectGroup gobj);
84 void ClearAttachments();
85 }
86}
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModule.cs b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs
new file mode 100644
index 0000000..ced4e91
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs
@@ -0,0 +1,115 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections;
30using System.Collections.Generic;
31using OpenMetaverse;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public delegate void ScriptRemoved(UUID script);
36 public delegate void ObjectRemoved(UUID prim);
37
38 public interface IScriptModule: INonSharedRegionModule
39 {
40 /// <summary>
41 /// Triggered when a script is removed from the script module.
42 /// </summary>
43 event ScriptRemoved OnScriptRemoved;
44
45 /// <summary>
46 /// Triggered when an object is removed via the script module.
47 /// </summary>
48 event ObjectRemoved OnObjectRemoved;
49
50 string ScriptEngineName { get; }
51
52 string GetXMLState(UUID itemID);
53 bool SetXMLState(UUID itemID, string xml);
54
55 /// <summary>
56 /// Post a script event to a single script.
57 /// </summary>
58 /// <returns>true if the post suceeded, false if it did not</returns>
59 /// <param name='itemID'>The item ID of the script.</param>
60 /// <param name='name'>The name of the event.</param>
61 /// <param name='args'>
62 /// The arguments of the event. These are in the order in which they appear.
63 /// e.g. for http_request this will be an object array of key request_id, string method, string body
64 /// </param>
65 bool PostScriptEvent(UUID itemID, string name, Object[] args);
66
67 bool PostObjectEvent(UUID itemID, string name, Object[] args);
68
69 /// <summary>
70 /// Suspends a script.
71 /// </summary>
72 /// <param name="itemID">The item ID of the script.</param>
73 void SuspendScript(UUID itemID);
74
75 /// <summary>
76 /// Resumes a script.
77 /// </summary>
78 /// <param name="itemID">The item ID of the script.</param>
79 void ResumeScript(UUID itemID);
80
81 ArrayList GetScriptErrors(UUID itemID);
82
83 bool HasScript(UUID itemID, out bool running);
84
85 /// <summary>
86 /// Returns true if a script is running.
87 /// </summary>
88 /// <param name="itemID">The item ID of the script.</param>
89 bool GetScriptState(UUID itemID);
90
91 void SaveAllState();
92
93 /// <summary>
94 /// Starts the processing threads.
95 /// </summary>
96 void StartProcessing();
97
98 /// <summary>
99 /// Get the execution times of all scripts in the given array if they are currently running.
100 /// </summary>
101 /// <returns>
102 /// A float the value is a representative execution time in milliseconds of all scripts in that Array.
103 /// </returns>
104 float GetScriptExecutionTime(List<UUID> itemIDs);
105
106 /// <summary>
107 /// Get the execution times of all scripts in each object.
108 /// </summary>
109 /// <returns>
110 /// A dictionary where the key is the root object ID of a linkset
111 /// and the value is a representative execution time in milliseconds of all scripts in that linkset.
112 /// </returns>
113 Dictionary<uint, float> GetObjectScriptsExecutionTimes();
114 }
115}
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
new file mode 100644
index 0000000..70ff954
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
@@ -0,0 +1,148 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Reflection;
30using System.Collections.Generic;
31using OpenMetaverse;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public delegate void ScriptCommand(UUID script, string id, string module, string command, string k);
36
37 /// <summary>
38 /// Interface for communication between OpenSim modules and in-world scripts
39 /// </summary>
40 ///
41 /// See OpenSim.Region.ScriptEngine.Shared.Api.MOD_Api.modSendCommand() for information on receiving messages
42 /// from scripts in OpenSim modules.
43 public interface IScriptModuleComms
44 {
45 /// <summary>
46 /// Modules can subscribe to this event to receive command invocations from in-world scripts
47 /// </summary>
48 event ScriptCommand OnScriptCommand;
49
50 /// <summary>
51 /// Register an instance method as a script call by method name
52 /// </summary>
53 /// <param name="target"></param>
54 /// <param name="method"></param>
55 void RegisterScriptInvocation(object target, string method);
56
57 /// <summary>
58 /// Register a static or instance method as a script call by method info
59 /// </summary>
60 /// <param name="target">If target is a Type object, will assume method is static.</param>
61 /// <param name="method"></param>
62 void RegisterScriptInvocation(object target, MethodInfo method);
63
64 /// <summary>
65 /// Register one or more instance methods as script calls by method name
66 /// </summary>
67 /// <param name="target"></param>
68 /// <param name="methods"></param>
69 void RegisterScriptInvocation(object target, string[] methods);
70
71 /// <summary>
72 /// Register one or more static methods as script calls by method name
73 /// </summary>
74 /// <param name="target"></param>
75 /// <param name="methods"></param>
76 void RegisterScriptInvocation(Type target, string[] methods);
77
78 /// <summary>
79 /// Automatically register script invocations by checking for methods
80 /// with <see cref="ScriptInvocationAttribute"/>. Should only check
81 /// public methods.
82 /// </summary>
83 /// <param name="target"></param>
84 void RegisterScriptInvocations(IRegionModuleBase target);
85
86 /// <summary>
87 /// Returns an array of all registered script calls
88 /// </summary>
89 /// <returns></returns>
90 Delegate[] GetScriptInvocationList();
91
92 Delegate LookupScriptInvocation(string fname);
93 string LookupModInvocation(string fname);
94 Type[] LookupTypeSignature(string fname);
95 Type LookupReturnType(string fname);
96
97 object InvokeOperation(UUID hostId, UUID scriptId, string fname, params object[] parms);
98
99 /// <summary>
100 /// Send a link_message event to an in-world script
101 /// </summary>
102 /// <param name="scriptId"></param>
103 /// <param name="code"></param>
104 /// <param name="text"></param>
105 /// <param name="key"></param>
106 void DispatchReply(UUID scriptId, int code, string text, string key);
107
108 /// <summary>
109 /// Operation to for a region module to register a constant to be used
110 /// by the script engine
111 /// </summary>
112 /// <param name="cname">
113 /// The name of the constant. LSL convention is for constant names to
114 /// be uppercase.
115 /// </param>
116 /// <param name="value">
117 /// The value of the constant. Should be of a type that can be
118 /// converted to one of <see cref="OpenSim.Region.ScriptEngine.Shared.LSL_Types"/>
119 /// </param>
120 void RegisterConstant(string cname, object value);
121
122 /// <summary>
123 /// Automatically register all constants on a region module by
124 /// checking for fields with <see cref="ScriptConstantAttribute"/>.
125 /// </summary>
126 /// <param name="target"></param>
127 void RegisterConstants(IRegionModuleBase target);
128
129 /// <summary>
130 /// Operation to check for a registered constant
131 /// </summary>
132 /// <param name="cname">Name of constant</param>
133 /// <returns>Value of constant or null if none found.</returns>
134 object LookupModConstant(string cname);
135 Dictionary<string, object> GetConstants();
136
137 // For use ONLY by the script API
138 void RaiseEvent(UUID script, string id, string module, string command, string key);
139 }
140
141 [AttributeUsage(AttributeTargets.Method)]
142 public class ScriptInvocationAttribute : Attribute
143 { }
144
145 [AttributeUsage(AttributeTargets.Field)]
146 public class ScriptConstantAttribute : Attribute
147 { }
148}
diff --git a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs
new file mode 100644
index 0000000..64bf72c
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs
@@ -0,0 +1,36 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Framework
31{
32 public interface ISearchModule
33 {
34
35 }
36}
diff --git a/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs b/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs
new file mode 100644
index 0000000..b2252cc
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27using 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/IServiceThrottleModule.cs b/OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs
new file mode 100644
index 0000000..198256f
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs
@@ -0,0 +1,19 @@
1using System;
2using System.Collections.Generic;
3
4namespace OpenSim.Region.Framework.Interfaces
5{
6 public interface IServiceThrottleModule
7 {
8 /// <summary>
9 /// Enqueue a continuation meant to get a resource from elsewhere.
10 /// As usual with CPS, caller beware: if that continuation is a never-ending computation,
11 /// the whole thread will be blocked, and no requests are processed
12 /// </summary>
13 /// <param name="category">Category of the resource (e.g. name, region)</param>
14 /// <param name="itemid">The resource identifier</param>
15 /// <param name="continuation">The continuation to be executed</param>
16 void Enqueue(string category, string itemid, Action continuation);
17 }
18
19}
diff --git a/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs b/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs
new file mode 100644
index 0000000..b516050
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface ISharedRegionModule : IRegionModuleBase
33 {
34 /// <summary>
35 /// This is called exactly once after all the shared region-modules have been instanciated and
36 /// <see cref="IRegionModuleBase.Initialise"/>d.
37 /// </summary>
38 void PostInitialise();
39 }
40}
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
new file mode 100644
index 0000000..8948f04
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
@@ -0,0 +1,134 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using OpenMetaverse;
31using OpenSim.Framework;
32using OpenSim.Region.Framework.Scenes;
33
34namespace OpenSim.Region.Framework.Interfaces
35{
36 public interface ISimulationDataService
37 {
38 /// <summary>
39 /// Stores all object's details apart from inventory
40 /// </summary>
41 /// <param name="obj"></param>
42 /// <param name="regionUUID"></param>
43 void StoreObject(SceneObjectGroup obj, UUID regionUUID);
44
45 /// <summary>
46 /// Entirely removes the object, including inventory
47 /// </summary>
48 /// <param name="uuid"></param>
49 /// <param name="regionUUID"></param>
50 /// <returns></returns>
51 void RemoveObject(UUID uuid, UUID regionUUID);
52
53 /// <summary>
54 /// Store a prim's inventory
55 /// </summary>
56 /// <returns></returns>
57 void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items);
58
59 /// <summary>
60 /// Load persisted objects from region storage.
61 /// </summary>
62 /// <param name="regionUUID">the Region UUID</param>
63 /// <returns>List of loaded groups</returns>
64 List<SceneObjectGroup> LoadObjects(UUID regionUUID);
65
66 /// <summary>
67 /// Store a terrain revision in region storage
68 /// </summary>
69 /// <param name="ter">HeightField data</param>
70 /// <param name="regionID">region UUID</param>
71 void StoreTerrain(TerrainData terrain, UUID regionID);
72
73 // Legacy version kept for downward compabibility
74 void StoreTerrain(double[,] terrain, UUID regionID);
75
76 /// <summary>
77 /// Load the latest terrain revision from region storage
78 /// </summary>
79 /// <param name="regionID">the region UUID</param>
80 /// <param name="sizeX">the X dimension of the region being filled</param>
81 /// <param name="sizeY">the Y dimension of the region being filled</param>
82 /// <param name="sizeZ">the Z dimension of the region being filled</param>
83 /// <returns>Heightfield data</returns>
84 TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ);
85
86 // Legacy version kept for downward compabibility
87 double[,] LoadTerrain(UUID regionID);
88
89 void StoreLandObject(ILandObject Parcel);
90
91 /// <summary>
92 /// <list type="bullet">
93 /// <item>delete from land where UUID=globalID</item>
94 /// <item>delete from landaccesslist where LandUUID=globalID</item>
95 /// </list>
96 /// </summary>
97 /// <param name="globalID"></param>
98 void RemoveLandObject(UUID globalID);
99
100 List<LandData> LoadLandObjects(UUID regionUUID);
101
102 void StoreRegionSettings(RegionSettings rs);
103 RegionSettings LoadRegionSettings(UUID regionUUID);
104 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID);
105 void StoreRegionWindlightSettings(RegionLightShareData wl);
106 void RemoveRegionWindlightSettings(UUID regionID);
107
108 /// <summary>
109 /// Load Environment settings from region storage
110 /// </summary>
111 /// <param name="regionUUID">the region UUID</param>
112 /// <returns>LLSD string for viewer</returns>
113 string LoadRegionEnvironmentSettings(UUID regionUUID);
114
115 /// <summary>
116 /// Store Environment settings into region storage
117 /// </summary>
118 /// <param name="regionUUID">the region UUID</param>
119 /// <param name="settings">LLSD string from viewer</param>
120 void StoreRegionEnvironmentSettings(UUID regionUUID, string settings);
121
122 /// <summary>
123 /// Delete Environment settings from region storage
124 /// </summary>
125 /// <param name="regionUUID">the region UUID</param>
126 void RemoveRegionEnvironmentSettings(UUID regionUUID);
127
128 void SaveExtra(UUID regionID, string name, string value);
129
130 void RemoveExtra(UUID regionID, string name);
131
132 Dictionary<string, string> GetExtra(UUID regionID);
133 }
134}
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs
new file mode 100644
index 0000000..917b5d1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs
@@ -0,0 +1,148 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface ISimulationDataStore
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(TerrainData terrain, UUID regionID);
83
84 // Legacy version kept for downward compabibility
85 void StoreTerrain(double[,] terrain, UUID regionID);
86
87 /// <summary>
88 /// Load the latest terrain revision from region storage
89 /// </summary>
90 /// <param name="regionID">the region UUID</param>
91 /// <param name="pSizeX">the X dimension of the terrain being filled</param>
92 /// <param name="pSizeY">the Y dimension of the terrain being filled</param>
93 /// <param name="pSizeZ">the Z dimension of the terrain being filled</param>
94 /// <returns>Heightfield data</returns>
95 TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ);
96
97 // Legacy version kept for downward compabibility
98 double[,] LoadTerrain(UUID regionID);
99
100 void StoreLandObject(ILandObject Parcel);
101
102 /// <summary>
103 /// <list type="bullet">
104 /// <item>delete from land where UUID=globalID</item>
105 /// <item>delete from landaccesslist where LandUUID=globalID</item>
106 /// </list>
107 /// </summary>
108 /// <param name="globalID"></param>
109 void RemoveLandObject(UUID globalID);
110
111 List<LandData> LoadLandObjects(UUID regionUUID);
112
113 void StoreRegionSettings(RegionSettings rs);
114 RegionSettings LoadRegionSettings(UUID regionUUID);
115 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID);
116 void StoreRegionWindlightSettings(RegionLightShareData wl);
117 void RemoveRegionWindlightSettings(UUID regionID);
118
119 /// <summary>
120 /// Load Environment settings from region storage
121 /// </summary>
122 /// <param name="regionUUID">the region UUID</param>
123 /// <returns>LLSD string for viewer</returns>
124 string LoadRegionEnvironmentSettings(UUID regionUUID);
125
126 /// <summary>
127 /// Store Environment settings into region storage
128 /// </summary>
129 /// <param name="regionUUID">the region UUID</param>
130 /// <param name="settings">LLSD string from viewer</param>
131 void StoreRegionEnvironmentSettings(UUID regionUUID, string settings);
132
133 /// <summary>
134 /// Delete Environment settings from region storage
135 /// </summary>
136 /// <param name="regionUUID">the region UUID</param>
137 void RemoveRegionEnvironmentSettings(UUID regionUUID);
138
139 void SaveExtra(UUID regionID, string name, string val);
140
141 void RemoveExtra(UUID regionID, string name);
142
143 Dictionary<string, string> GetExtra(UUID regionID);
144
145 void Shutdown();
146 }
147
148}
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs b/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs
new file mode 100644
index 0000000..6effcc1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30using OpenMetaverse.StructuredData;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public delegate void SimulatorFeaturesRequestDelegate(UUID agentID, ref OSDMap features);
35
36 /// <summary>
37 /// Add remove or retrieve Simulator Features that will be given to a viewer via the SimulatorFeatures capability.
38 /// </summary>
39 public interface ISimulatorFeaturesModule
40 {
41 event SimulatorFeaturesRequestDelegate OnSimulatorFeaturesRequest;
42 void AddFeature(string name, OSD value);
43 bool RemoveFeature(string name);
44 bool TryGetFeature(string name, out OSD value);
45 OSDMap GetFeatures();
46 }
47}
diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
new file mode 100644
index 0000000..8372ddd
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
@@ -0,0 +1,133 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface ISoundModule
34 {
35 /// <summary>
36 /// Maximum distance between a sound source and a recipient.
37 /// </summary>
38 float MaxDistance { get; }
39
40 /// <summary>
41 /// Play a sound from an object.
42 /// </summary>
43 /// <param name="soundID">Sound asset ID</param>
44 /// <param name="ownerID">Sound source owner</param>
45 /// <param name="objectID">Sound source ID</param>
46 /// <param name="gain">Sound volume</param>
47 /// <param name="position">Sound source position</param>
48 /// <param name="flags">Sound flags</param>
49 /// <param name="radius">
50 /// Radius used to affect gain over distance.
51 /// </param>
52 void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID,
53 double gain, Vector3 position, byte flags, float radius);
54
55 /// <summary>
56 /// Trigger a sound in the scene.
57 /// </summary>
58 /// <param name="soundId">Sound asset ID</param>
59 /// <param name="ownerID">Sound source owner</param>
60 /// <param name="objectID">Sound source ID</param>
61 /// <param name="parentID">Sound source parent.</param>
62 /// <param name="gain">Sound volume</param>
63 /// <param name="position">Sound source position</param>
64 /// <param name="handle"></param>
65 /// <param name="radius">
66 /// Radius used to affect gain over distance.
67 /// </param>
68 void TriggerSound(
69 UUID soundId, UUID ownerID, UUID objectID, UUID parentID,
70 double gain, Vector3 position, UInt64 handle, float radius);
71
72 /// <summary>
73 /// Stop sounds eminating from an object.
74 /// </summary>
75 /// <param name="objectID">Sound source ID</param>
76 void StopSound(UUID objectID);
77
78 /// <summary>
79 /// Preload sound to viewers within range.
80 /// </summary>
81 /// <param name="objectID">Sound source ID</param>
82 /// <param name="soundID">Sound asset ID</param>
83 /// <param name="radius">
84 /// Radius used to determine which viewers should preload the sound.
85 /// </param>
86 void PreloadSound(UUID objectID, UUID soundID, float radius);
87
88 /// <summary>
89 /// Loop specified sound at specified volume with specified radius,
90 /// optionally declaring object as new sync master.
91 /// </summary>
92 /// <param name="objectID">Sound source ID</param>
93 /// <param name="soundID">Sound asset ID</param>
94 /// <param name="gain">Sound volume</param>
95 /// <param name="radius">Sound radius</param>
96 /// <param name="isMaster">Set object to sync master if true</param>
97 void LoopSound(UUID objectID, UUID soundID, double gain,
98 double radius, bool isMaster);
99
100 /// <summary>
101 /// Trigger or play an attached sound in this part's inventory.
102 /// </summary>
103 /// <param name="objectID">Sound source ID</param>
104 /// <param name="sound">Sound asset ID</param>
105 /// <param name="volume">Sound volume</param>
106 /// <param name="triggered">Triggered or not.</param>
107 /// <param name="radius">Sound radius</param>
108 /// <param name="useMaster">Play using sound master</param>
109 /// <param name="isMaster">Play as sound master</param>
110 void SendSound(UUID objectID, UUID sound, double volume,
111 bool triggered, byte flags, float radius, bool useMaster,
112 bool isMaster);
113
114 /// <summary>
115 /// Trigger a sound to be played to all agents within an axis-aligned
116 /// bounding box.
117 /// </summary>
118 /// <param name="objectID">Sound source ID</param>
119 /// <param name="sound">Sound asset ID</param>
120 /// <param name="volume">Sound volume</param>
121 /// <param name="min">AABB bottom south-west corner</param>
122 /// <param name="max">AABB top north-east corner</param>
123 void TriggerSoundLimited(UUID objectID, UUID sound, double volume,
124 Vector3 min, Vector3 max);
125
126 /// <summary>
127 /// Set whether sounds on the given prim should be queued.
128 /// </summary>
129 /// <param name='objectID'></param>
130 /// <param name='shouldQueue'></param>
131 void SetSoundQueueing(UUID objectID, bool shouldQueue);
132 }
133} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/ISunModule.cs b/OpenSim/Region/Framework/Interfaces/ISunModule.cs
new file mode 100644
index 0000000..8231716
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ISunModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface ISunModule : INonSharedRegionModule
33 {
34 double GetSunParameter(string param);
35
36 void SetSunParameter(string param, double value);
37
38 float GetCurrentSunHour();
39 }
40} \ 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..815a2d8
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrain.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Framework;
29using OpenMetaverse;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface ITerrain
34 {
35 bool Tainted();
36 bool Tainted(int x, int y);
37 void ResetTaint();
38
39 void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west,
40 IClientAPI remoteUser);
41
42 void CheckHeightValues();
43 float[] GetHeights1D();
44 float[,] GetHeights2D();
45 double[,] GetHeights2DD();
46 void GetHeights1D(float[] heights);
47 void SetHeights2D(float[,] heights);
48 void SetHeights2D(double[,] heights);
49 void SwapRevertMaps();
50 void SaveRevertMap();
51 bool RunTerrainCmd(string[] args, ref string resultText, string simName);
52 void SetRange(float min, float max);
53 void LoadFromFileF64(string filename);
54 void LoadFromFileF32(string filename);
55 void LoadFromFileF32(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY);
56 void LoadFromFileIMG(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY);
57 void LoadFromFileSLRAW(string filename);
58 void WriteToFileF64(string filename);
59 void WriteToFileF32(string filename);
60 void WriteToFileRAW(string filename);
61 void WriteToFileHiRAW(string filename);
62 void SetSeed(int val);
63 void RaiseTerrain(double rx, double ry, double size, double amount);
64 void LowerTerrain(double rx, double ry, double size, double amount);
65 void FlattenTerrain(double rx, double ry, double size, double amount);
66 void NoiseTerrain(double rx, double ry, double size, double amount);
67 void RevertTerrain(double rx, double ry, double size, double amount);
68 void SmoothTerrain(double rx, double ry, double size, double amount);
69 void HillsGenerator();
70 double GetHeight(int x, int y);
71 void ExportImage(string filename, string gradientmap);
72 byte[] ExportJpegImage(string gradientmap);
73 }
74
75 public interface IMapImageGenerator
76 {
77 System.Drawing.Bitmap CreateMapTile();
78 System.Drawing.Bitmap CreateViewImage(Vector3 camPos, Vector3 camDir, float fov, int width, int height, bool useTextures);
79 byte[] WriteJpeg2000Image();
80 }
81}
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs
new file mode 100644
index 0000000..f660b8d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs
@@ -0,0 +1,63 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Framework;
29using OpenMetaverse;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface ITerrainChannel
34 {
35 int Width { get;} // X dimension
36 int Height { get;} // Y dimension
37 int Altitude { get;} // Z dimension
38
39 double this[int x, int y] { get; set; }
40
41 float GetHeightAtXYZ(float x, float y, float z);
42
43 // Return the packaged terrain data for passing into lower levels of communication
44 TerrainData GetTerrainData();
45
46 /// <summary>
47 /// Squash the entire heightmap into a single dimensioned array
48 /// </summary>
49 /// <returns></returns>
50 float[] GetFloatsSerialised();
51
52 double[,] GetDoubles();
53
54 // Check if a location has been updated. Clears the taint flag as a side effect.
55 bool Tainted(int x, int y);
56
57 ITerrainChannel MakeCopy();
58 string SaveToXmlString();
59 void LoadFromXmlString(string data);
60 // Merge some terrain into this channel
61 void Merge(ITerrainChannel newTerrain, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement);
62 }
63}
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs b/OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs
new file mode 100644
index 0000000..890afb3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrainEffect.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface ITerrainEffect
31 {
32 void RunEffect(ITerrainChannel map);
33 }
34} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
new file mode 100644
index 0000000..28f797a
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
@@ -0,0 +1,76 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27using System.IO;
28
29using OpenSim.Framework;
30
31using OpenMetaverse;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface ITerrainModule
36 {
37 void LoadFromFile(string filename);
38 void SaveToFile(string filename);
39 void ModifyTerrain(UUID user, Vector3 pos, byte size, byte action, UUID agentId);
40
41 /// <summary>
42 /// Taint the terrain. This will lead to sending the terrain data to the clients again.
43 /// Use this if you change terrain data outside of the terrain module (e.g. in osTerrainSetHeight)
44 /// </summary>
45 void TaintTerrain();
46
47 /// <summary>
48 /// When a client initially connects, all the terrain must be pushed to the viewer.
49 /// This call causes all the terrain patches to be sent to the client.
50 /// </summary>
51 void PushTerrain(IClientAPI pClient);
52
53 /// <summary>
54 /// Load a terrain from a stream.
55 /// </summary>
56 /// <param name="filename">
57 /// Only required here to identify the image type. Not otherwise used in the loading itself.
58 /// </param>
59 /// <param name="stream"></param>
60 void LoadFromStream(string filename, Stream stream);
61 void LoadFromStream(string filename, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement, Stream stream);
62 void LoadFromStream(string filename, System.Uri pathToTerrainHeightmap);
63 /// <summary>
64 /// Save a terrain to a stream.
65 /// </summary>
66 /// <param name="filename">
67 /// Only required here to identify the image type. Not otherwise used in the saving itself.
68 /// </param>
69 /// <param name="stream"></param>
70 void SaveToStream(string filename, Stream stream);
71
72 void InstallPlugin(string name, ITerrainEffect plug);
73
74 void UndoTerrain(ITerrainChannel channel);
75 }
76}
diff --git a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs
new file mode 100644
index 0000000..79e9f9d
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IUrlModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using OpenMetaverse;
30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes;
32
33namespace OpenSim.Region.Framework.Interfaces
34{
35 public interface IUrlModule
36 {
37 string ExternalHostNameForLSL { get; }
38 UUID RequestURL(IScriptModule engine, SceneObjectPart host, UUID itemID);
39 UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID);
40 void ReleaseURL(string url);
41 void HttpResponse(UUID request, int status, string body);
42 void HttpContentType(UUID request, string type);
43
44 string GetHttpHeader(UUID request, string header);
45 int GetFreeUrls();
46
47 void ScriptRemoved(UUID itemID);
48 void ObjectRemoved(UUID objectID);
49 }
50}
diff --git a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
new file mode 100644
index 0000000..403d542
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using 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/IVoiceModule.cs b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs
new file mode 100644
index 0000000..2e555fa
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IVoiceModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28
29using System.IO;
30using OpenMetaverse;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IVoiceModule
35 {
36
37 /// <summary>
38 /// Set the SIP url to be used by a parcel, this will allow manual setting of a SIP address
39 /// for a particular piece of land, allowing region owners to use preconfigured SIP conference channels.
40 /// This is used by osSetParcelSIPAddress
41 /// </summary>
42 void setLandSIPAddress(string SIPAddress,UUID GlobalID);
43
44 }
45}
diff --git a/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs
new file mode 100644
index 0000000..16b6024
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs
@@ -0,0 +1,86 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30
31using Nini.Config;
32using OpenSim.Framework;
33using OpenMetaverse;
34using OpenSim.Region.Framework.Scenes;
35
36using Mono.Addins;
37
38namespace OpenSim.Region.Framework.Interfaces
39{
40 [TypeExtensionPoint(Path = "/OpenSim/WindModule", NodeName = "WindModel")]
41 public interface IWindModelPlugin : IPlugin
42 {
43 /// <summary>
44 /// Brief description of this plugin's wind model
45 /// </summary>
46 string Description { get; }
47
48 /// <summary>
49 /// Provides access to the wind configuration, if any.
50 /// </summary>
51 void WindConfig(Scene scene, IConfig windConfig);
52
53 /// <summary>
54 /// Update wind.
55 /// </summary>
56 void WindUpdate(uint frame);
57
58 /// <summary>
59 /// Returns the wind vector at the given local region coordinates.
60 /// </summary>
61 Vector3 WindSpeed(float x, float y, float z);
62
63 /// <summary>
64 /// Generate a 16 x 16 Vector2 array of wind speeds for LL* based viewers
65 /// </summary>
66 /// <returns>Must return a Vector2[256]</returns>
67 Vector2[] WindLLClientArray();
68
69 /// <summary>
70 /// Retrieve a list of parameter/description pairs.
71 /// </summary>
72 /// <returns></returns>
73 Dictionary<string, string> WindParams();
74
75 /// <summary>
76 /// Set the specified parameter
77 /// </summary>
78 void WindParamSet(string param, float value);
79
80 /// <summary>
81 /// Get the specified parameter
82 /// </summary>
83 float WindParamGet(string param);
84
85 }
86}
diff --git a/OpenSim/Region/Framework/Interfaces/IWindModule.cs b/OpenSim/Region/Framework/Interfaces/IWindModule.cs
new file mode 100644
index 0000000..4a26a71
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWindModule.cs
@@ -0,0 +1,55 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface IWindModule : INonSharedRegionModule
33 {
34
35 /// <summary>
36 /// Retrieves the current wind speed at the given Region Coordinates
37 /// </summary>
38 Vector3 WindSpeed(int x, int y, int z);
39
40 /// <summary>
41 /// Set Wind Plugin Parameter
42 /// </summary>
43 void WindParamSet(string plugin, string param, float value);
44
45 /// <summary>
46 /// Get Wind Plugin Parameter
47 /// </summary>
48 float WindParamGet(string plugin, string param);
49
50 /// <summary>
51 /// Current active wind model plugin or String.Empty
52 /// </summary>
53 string WindActiveModelPluginName { get; }
54 }
55}
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs
new file mode 100644
index 0000000..d76a0d7
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs
@@ -0,0 +1,151 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenMetaverse;
30using OpenSim.Framework;
31
32namespace OpenSim.Region.Framework.Interfaces
33{
34 public interface IWorldCommListenerInfo
35 {
36 Object[] GetSerializationData();
37 UUID GetItemID();
38 UUID GetHostID();
39 int GetChannel();
40 uint GetLocalID();
41 int GetHandle();
42 string GetMessage();
43 string GetName();
44 bool IsActive();
45 void Deactivate();
46 void Activate();
47 UUID GetID();
48
49 /// <summary>
50 /// Bitfield indicating which strings should be processed as regex.
51 /// 1 corresponds to IWorldCommListenerInfo::GetName()
52 /// 2 corresponds to IWorldCommListenerInfo::GetMessage()
53 /// </summary>
54 int RegexBitfield { get; }
55 }
56
57 public interface IWorldComm
58 {
59 /// <summary>
60 /// Total number of listeners
61 /// </summary>
62 int ListenerCount { get; }
63
64 /// <summary>
65 /// Create a listen event callback with the specified filters.
66 /// The parameters localID,itemID are needed to uniquely identify
67 /// the script during 'peek' time. Parameter hostID is needed to
68 /// determine the position of the script.
69 /// </summary>
70 /// <param name="LocalID">localID of the script engine</param>
71 /// <param name="itemID">UUID of the script engine</param>
72 /// <param name="hostID">UUID of the SceneObjectPart</param>
73 /// <param name="channel">channel to listen on</param>
74 /// <param name="name">name to filter on</param>
75 /// <param name="id">key to filter on (user given, could be totally faked)</param>
76 /// <param name="msg">msg to filter on</param>
77 /// <returns>number of the scripts handle</returns>
78 int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg);
79
80 /// <summary>
81 /// Create a listen event callback with the specified filters.
82 /// The parameters localID,itemID are needed to uniquely identify
83 /// the script during 'peek' time. Parameter hostID is needed to
84 /// determine the position of the script.
85 /// </summary>
86 /// <param name="LocalID">localID of the script engine</param>
87 /// <param name="itemID">UUID of the script engine</param>
88 /// <param name="hostID">UUID of the SceneObjectPart</param>
89 /// <param name="channel">channel to listen on</param>
90 /// <param name="name">name to filter on</param>
91 /// <param name="id">key to filter on (user given, could be totally faked)</param>
92 /// <param name="msg">msg to filter on</param>
93 /// <param name="regexBitfield">Bitfield indicating which strings should be processed as regex.</param>
94 /// <returns>number of the scripts handle</returns>
95 int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg, int regexBitfield);
96
97 /// <summary>
98 /// This method scans over the objects which registered an interest in listen callbacks.
99 /// For everyone it finds, it checks if it fits the given filter. If it does, then
100 /// enqueue the message for delivery to the objects listen event handler.
101 /// The enqueued ListenerInfo no longer has filter values, but the actually trigged values.
102 /// Objects that do an llSay have their messages delivered here and for nearby avatars,
103 /// the OnChatFromClient event is used.
104 /// </summary>
105 /// <param name="type">type of delvery (whisper,say,shout or regionwide)</param>
106 /// <param name="channel">channel to sent on</param>
107 /// <param name="name">name of sender (object or avatar)</param>
108 /// <param name="id">key of sender (object or avatar)</param>
109 /// <param name="msg">msg to sent</param>
110 void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg);
111
112 /// <summary>
113 /// Delivers the message to a specified object in the region.
114 /// </summary>
115 /// <param name='target'>
116 /// Target.
117 /// </param>
118 /// <param name='channel'>
119 /// Channel.
120 /// </param>
121 /// <param name='name'>
122 /// Name.
123 /// </param>
124 /// <param name='id'>
125 /// Identifier.
126 /// </param>
127 /// <param name='msg'>
128 /// Message.
129 /// </param>
130 void DeliverMessageTo(UUID target, int channel, Vector3 pos, string name, UUID id, string msg);
131
132 /// <summary>
133 /// Are there any listen events ready to be dispatched?
134 /// </summary>
135 /// <returns>boolean indication</returns>
136 bool HasMessages();
137
138 /// <summary>
139 /// Pop the first availlable listen event from the queue
140 /// </summary>
141 /// <returns>ListenerInfo with filter filled in</returns>
142 IWorldCommListenerInfo GetNextMessage();
143
144 void ListenControl(UUID itemID, int handle, int active);
145 void ListenRemove(UUID itemID, int handle);
146 void DeleteListener(UUID itemID);
147 Object[] GetSerializationData(UUID itemID);
148 void CreateFromData(uint localID, UUID itemID, UUID hostID,
149 Object[] data);
150 }
151}
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
new file mode 100644
index 0000000..9c781e1
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27using System.Collections.Generic;
28using OpenSim.Framework;
29using OpenSim.Services.Interfaces;
30
31namespace OpenSim.Region.Framework.Interfaces
32{
33 public interface IWorldMapModule
34 {
35 /// <summary>
36 /// Generate a map tile for the scene. a terrain texture for this scene
37 /// </summary>
38 void GenerateMaptile();
39 List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag);
40 MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag);
41 }
42}
diff --git a/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs b/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs
new file mode 100644
index 0000000..d53bbd3
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IXMLRPC.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface IXmlRpcRequestInfo
33 {
34 bool IsProcessed();
35 UUID GetChannelKey();
36 void SetProcessed(bool processed);
37 void SetStrRetval(string resp);
38 string GetStrRetval();
39 void SetIntRetval(int resp);
40 int GetIntRetval();
41 uint GetLocalID();
42 UUID GetItemID();
43 string GetStrVal();
44 int GetIntValue();
45 UUID GetMessageID();
46 }
47
48 public interface IXMLRPC
49 {
50 UUID OpenXMLRPCChannel(uint localID, UUID itemID, UUID channelID);
51 void CloseXMLRPCChannel(UUID channelKey);
52 bool hasRequests();
53 void RemoteDataReply(string channel, string message_id, string sdata, int idata);
54 bool IsEnabled();
55 IXmlRpcRequestInfo GetNextCompletedRequest();
56 void RemoveCompletedRequest(UUID id);
57 void DeleteChannels(UUID itemID);
58 UUID SendRemoteData(uint localID, UUID itemID, string channel, string dest, int idata, string sdata);
59 IServiceRequest GetNextCompletedSRDRequest();
60 void RemoveCompletedSRDRequest(UUID id);
61 void CancelSRDRequests(UUID itemID);
62 int Port { get; }
63 }
64}
diff --git a/OpenSim/Region/Framework/Interfaces/IXfer.cs b/OpenSim/Region/Framework/Interfaces/IXfer.cs
new file mode 100644
index 0000000..bea3984
--- /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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim.Region.Framework.Interfaces
29{
30 public interface IXfer
31 {
32 bool AddNewFile(string fileName, byte[] data);
33 }
34}
diff --git a/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs b/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs
new file mode 100644
index 0000000..093d3f0
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.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 OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenMetaverse;
29
30namespace OpenSim.Region.Framework.Interfaces
31{
32 public interface IXmlRpcRouter
33 {
34 void RegisterNewReceiver(IScriptModule scriptEngine, UUID channelID, UUID objectID, UUID itemID, string url);
35 void ScriptRemoved(UUID itemID);
36 void ObjectRemoved(UUID objectID);
37 void UnRegisterReceiver(string channelID, UUID itemID);
38 }
39}