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/DB4oGridData.cs | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) (limited to 'OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oGridData.cs') diff --git a/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oGridData.cs b/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oGridData.cs index 546713e..723ff69 100644 --- a/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oGridData.cs +++ b/OpenGridServices/OpenGrid.Framework.Data.DB4o/DB4oGridData.cs @@ -1,3 +1,30 @@ +/* +* 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; @@ -7,19 +34,41 @@ using libsecondlife; namespace OpenGrid.Framework.Data.DB4o { + /// + /// A grid server storage mechanism employing the DB4o database system + /// class DB4oGridData : IGridData { + /// + /// The database manager object + /// DB4oGridManager manager; + /// + /// Called when the plugin is first loaded (as constructors are not called) + /// public void Initialise() { manager = new DB4oGridManager("gridserver.yap"); } + /// + /// Returns a list of regions within the specified ranges + /// + /// minimum X coordinate + /// minimum Y coordinate + /// maximum X coordinate + /// maximum Y coordinate + /// An array of region profiles public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d) { return null; } + /// + /// Returns a region located at the specified regionHandle (warning multiple regions may occupy the one spot, first found is returned) + /// + /// The handle to search for + /// A region profile public SimProfileData GetProfileByHandle(ulong handle) { lock (manager.simProfiles) { @@ -34,6 +83,11 @@ namespace OpenGrid.Framework.Data.DB4o throw new Exception("Unable to find profile with handle (" + handle.ToString() + ")"); } + /// + /// Returns a specific region + /// + /// The region ID code + /// A region profile public SimProfileData GetProfileByLLUUID(LLUUID uuid) { lock (manager.simProfiles) @@ -44,6 +98,11 @@ namespace OpenGrid.Framework.Data.DB4o throw new Exception("Unable to find profile with UUID (" + uuid.ToStringHyphenated() + ")"); } + /// + /// Adds a new specified region to the database + /// + /// The profile to add + /// A dataresponse enum indicating success public DataResponse AddProfile(SimProfileData profile) { lock (manager.simProfiles) @@ -59,22 +118,40 @@ namespace OpenGrid.Framework.Data.DB4o } } + /// + /// Authenticates a new region using the shared secrets. NOT SECURE. + /// + /// The UUID the region is authenticating with + /// The location the region is logging into (unused in Db4o) + /// The shared secret + /// Authenticated? public bool AuthenticateSim(LLUUID uuid, ulong handle, string key) { if (manager.simProfiles[uuid].regionRecvKey == key) return true; return false; } + /// + /// Shuts down the database + /// public void Close() { manager = null; } + /// + /// Returns the providers name + /// + /// The name of the storage system public string getName() { return "DB4o Grid Provider"; } + /// + /// Returns the providers version + /// + /// The version of the storage system public string getVersion() { return "0.1"; -- cgit v1.1