From d3eae4073e75d1482467eee54230df141bdbb568 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Tue, 3 Feb 2009 05:20:35 +0000 Subject: - move OpenSim/Framework/IUserData.cs to OpenSim/Data/IUserData.cs - trim trailing whitespace --- OpenSim/Data/IUserData.cs | 193 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 OpenSim/Data/IUserData.cs (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/IUserData.cs b/OpenSim/Data/IUserData.cs new file mode 100644 index 0000000..1564033 --- /dev/null +++ b/OpenSim/Data/IUserData.cs @@ -0,0 +1,193 @@ +/* + * 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 OpenSim 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.Collections.Generic; +using OpenMetaverse; +using OpenSim.Framework; + +namespace OpenSim.Data +{ + /// + /// An interface for connecting to user storage servers. + /// + public interface IUserDataPlugin : IPlugin + { + /// + /// Returns a user profile from a database via their UUID + /// + /// The user's UUID + /// The user data profile. Returns null if no user is found + UserProfileData GetUserByUUID(UUID user); + + /// + /// Returns a users profile by searching their username parts + /// + /// Account firstname + /// Account lastname + /// The user data profile + UserProfileData GetUserByName(string fname, string lname); + + /// + /// Returns a list of UUIDs firstnames and lastnames that match string query entered into the avatar picker. + /// + /// ID associated with the user's query. This must match what the client sent + /// The filtered contents of the search box when the user hit search. + /// The user data profile + List GeneratePickerResults(UUID queryID, string query); + + /// + /// Returns the current agent for a user searching by it's UUID + /// + /// The users UUID + /// The current agent session + UserAgentData GetAgentByUUID(UUID user); + + /// + /// Returns the current session agent for a user searching by username + /// + /// The users account name + /// The current agent session + UserAgentData GetAgentByName(string name); + + /// + /// Returns the current session agent for a user searching by username parts + /// + /// The users first account name + /// The users account surname + /// The current agent session + UserAgentData GetAgentByName(string fname, string lname); + + /// + /// Stores new web-login key for user during web page login + /// + /// + void StoreWebLoginKey(UUID agentID, UUID webLoginKey); + + /// + /// Adds a new User profile to the database + /// + /// UserProfile to add + void AddNewUserProfile(UserProfileData user); + + /// + /// Updates an existing user profile + /// + /// UserProfile to update + bool UpdateUserProfile(UserProfileData user); + + /// + /// Adds a new agent to the database + /// + /// The agent to add + void AddNewUserAgent(UserAgentData agent); + + /// + /// Adds a new friend to the database for XUser + /// + /// The agent that who's friends list is being added to + /// The agent that being added to the friends list of the friends list owner + /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects + void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms); + + /// + /// Delete friend on friendlistowner's friendlist. + /// + /// The agent that who's friends list is being updated + /// The Ex-friend agent + void RemoveUserFriend(UUID friendlistowner, UUID friend); + + /// + /// Update permissions for friend on friendlistowner's friendlist. + /// + /// The agent that who's friends list is being updated + /// The agent that is getting or loosing permissions + /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects + void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms); + + /// + /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for UUID friendslistowner + /// + /// The agent that we're retreiving the friends Data. + List GetUserFriendList(UUID friendlistowner); + + /// + /// Returns a list of + /// A of , mapping the s to s. + /// + Dictionary GetFriendRegionInfos(List uuids); + + /// + /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES) + /// + /// The account to transfer from + /// The account to transfer to + /// The amount to transfer + /// Successful? + bool MoneyTransferRequest(UUID from, UUID to, uint amount); + + /// + /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account. + /// + /// User to transfer from + /// User to transfer to + /// Specified inventory item + /// Successful? + bool InventoryTransferRequest(UUID from, UUID to, UUID inventory); + + /// + /// Initialises the plugin (artificial constructor) + /// + void Initialise(string connect); + + /// + /// Gets the user appearance + /// + AvatarAppearance GetUserAppearance(UUID user); + + void UpdateUserAppearance(UUID user, AvatarAppearance appearance); + + void ResetAttachments(UUID userID); + + void LogoutUsers(UUID regionID); + } + + public class UserDataInitialiser : PluginInitialiserBase + { + private string connect; + public UserDataInitialiser (string s) { connect = s; } + public override void Initialise (IPlugin plugin) + { + IUserDataPlugin p = plugin as IUserDataPlugin; + p.Initialise (connect); + } + } +} -- cgit v1.1