From dbb16bf2db533d54d3be11a6a878909e237e3924 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 2 Jan 2010 09:54:46 -0800 Subject: [PATCH] * Forgotten ILibraryService from yesterday * New IAvatarService -- first pass --- .../ApplicationPlugins/Rest/Inventory/Rest.cs | 1 + OpenSim/Services/Interfaces/IAvatarService.cs | 94 +++++++++++++++++++ .../Services/Interfaces/ILibraryService.cs | 43 +++++++++ 3 files changed, 138 insertions(+) create mode 100644 OpenSim/Services/Interfaces/IAvatarService.cs create mode 100644 OpenSim/Services/Interfaces/ILibraryService.cs diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs index 7db705e958..8d62423148 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs @@ -36,6 +36,7 @@ using OpenSim.Framework; using OpenSim.Framework.Communications; using OpenSim.Services.Interfaces; using IUserService = OpenSim.Framework.Communications.IUserService; +using IAvatarService = OpenSim.Framework.Communications.IAvatarService; namespace OpenSim.ApplicationPlugins.Rest.Inventory { diff --git a/OpenSim/Services/Interfaces/IAvatarService.cs b/OpenSim/Services/Interfaces/IAvatarService.cs new file mode 100644 index 0000000000..7324c74e7c --- /dev/null +++ b/OpenSim/Services/Interfaces/IAvatarService.cs @@ -0,0 +1,94 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; + +using OpenSim.Framework; + +using OpenMetaverse; + +namespace OpenSim.Services.Interfaces +{ + public interface IAvatarService + { + /// + /// Called by the login service + /// + /// + /// + IAvatarData GetAvatar(UUID userID); + + /// + /// Called by everyone who can change the avatar data (so, regions) + /// + /// + /// + /// + bool SetAvatar(UUID userID, IAvatarData avatar); + + /// + /// Not sure if it's needed + /// + /// + /// + bool ResetAvatar(UUID userID); + + /// + /// These 3 methods raison d'etre: + /// No need to send the entire avatar data (SetAvatar) for changing attachments + /// + /// + /// + /// + bool SetAttachment(UUID userID, AttachmentData attach); + bool SetAttachments(UUID userID, List attachs); + bool Dettach(UUID userID, UUID id); + } + + /// + /// Each region/client that uses avatars will have a data structure + /// of this type representing the avatars. + /// + public interface IAvatarData + { + // Not sure what to do with the non-attachment data + // That data is highly dependent on the implementation of avatars + // and I doubt it can be abstracted into this interface. + // Maybe it will never be here. Maybe that data needs to + // be processed by a module instead of being processed in + // the Scenes core code. + + AttachmentData GetAttachment(int attachPoint); + List GetAttachments(); + int GetAttachmentPoint(UUID id); + + bool SetAttachment(AttachmentData attach); + bool SetAttachments(List attachs); + bool Dettach(UUID id); + } +} diff --git a/OpenSim/Services/Interfaces/ILibraryService.cs b/OpenSim/Services/Interfaces/ILibraryService.cs new file mode 100644 index 0000000000..861cf0ef55 --- /dev/null +++ b/OpenSim/Services/Interfaces/ILibraryService.cs @@ -0,0 +1,43 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; + +using OpenSim.Framework; +using OpenMetaverse; + +namespace OpenSim.Services.Interfaces +{ + public interface ILibraryService + { + InventoryFolderImpl LibraryRootFolder { get; } + + Dictionary GetAllFolders(); + } + +}