From 17e422bc673940ffe33b80c29378af65e66501ec Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Fri, 1 Jun 2007 23:48:52 +0000 Subject: * DB4o Storage provider is now well documented * Added try/catch over user creation (should allow multiple logins on Db4o) --- .../OpenGrid.Framework.Data.DB4o/DB4oUserData.cs | 108 ++++++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) (limited to 'OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs') diff --git a/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs b/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs index b95219c..db4deb8 100644 --- a/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs +++ b/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs @@ -1,3 +1,29 @@ +/* +* Copyright (c) OpenSim project, http://sim.opensecondlife.org/ +* +* 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 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 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 System.Text; @@ -6,15 +32,29 @@ using libsecondlife; namespace OpenGrid.Framework.Data.DB4o { + /// + /// A User storage interface for the DB4o database system + /// public class DB4oUserData : IUserData { + /// + /// The database manager + /// DB4oUserManager manager; + /// + /// Artificial constructor called upon plugin load + /// public void Initialise() { manager = new DB4oUserManager("userprofiles.yap"); } + /// + /// Loads a specified user profile from a UUID + /// + /// The users UUID + /// A user profile public UserProfileData getUserByUUID(LLUUID uuid) { if(manager.userProfiles.ContainsKey(uuid)) @@ -22,11 +62,22 @@ namespace OpenGrid.Framework.Data.DB4o return null; } + /// + /// Returns a user by searching for its name + /// + /// The users account name + /// A matching users profile public UserProfileData getUserByName(string name) { return getUserByName(name.Split(' ')[0], name.Split(' ')[1]); } + /// + /// Returns a user by searching for its name + /// + /// The first part of the users account name + /// The second part of the users account name + /// A matching users profile public UserProfileData getUserByName(string fname, string lname) { foreach (UserProfileData profile in manager.userProfiles.Values) @@ -37,6 +88,11 @@ namespace OpenGrid.Framework.Data.DB4o return null; } + /// + /// Returns a user by UUID direct + /// + /// The users account ID + /// A matching users profile public UserAgentData getAgentByUUID(LLUUID uuid) { try @@ -49,11 +105,22 @@ namespace OpenGrid.Framework.Data.DB4o } } + /// + /// Returns a session by account name + /// + /// The account name + /// The users session agent public UserAgentData getAgentByName(string name) { return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]); } + /// + /// Returns a session by account name + /// + /// The first part of the users account name + /// The second part of the users account name + /// A user agent public UserAgentData getAgentByName(string fname, string lname) { try @@ -66,32 +133,69 @@ namespace OpenGrid.Framework.Data.DB4o } } + /// + /// Creates a new user profile + /// + /// The profile to add to the database public void addNewUserProfile(UserProfileData user) { - manager.AddRow(user); + try + { + manager.AddRow(user); + } + catch (Exception e) + { + Console.WriteLine(e.ToString()); + } } + /// + /// Creates a new user agent + /// + /// The agent to add to the database public void addNewUserAgent(UserAgentData agent) { // Do nothing. yet. } + /// + /// Transfers money between two user accounts + /// + /// Starting account + /// End account + /// The amount to move + /// Success? public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount) { return true; } + /// + /// Transfers inventory between two accounts + /// + /// Move to inventory server + /// Senders account + /// Recievers account + /// Inventory item + /// Success? public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item) { return true; } - + /// + /// Returns the name of the storage provider + /// + /// Storage provider name public string getName() { return "DB4o Userdata"; } + /// + /// Returns the version of the storage provider + /// + /// Storage provider version public string getVersion() { return "0.1"; -- cgit v1.1