From 3de3d8bb3ba9b0781a2078c8698816ae5b72f7b1 Mon Sep 17 00:00:00 2001 From: gareth Date: Mon, 7 May 2007 16:32:30 +0000 Subject: Merged 0.1-prestable back into trunk :( --- OpenGrid.Framework.Data.DB4o/DB4oManager.cs | 68 ++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 5 deletions(-) (limited to 'OpenGrid.Framework.Data.DB4o/DB4oManager.cs') diff --git a/OpenGrid.Framework.Data.DB4o/DB4oManager.cs b/OpenGrid.Framework.Data.DB4o/DB4oManager.cs index 3ebcee2..aaa6e91 100644 --- a/OpenGrid.Framework.Data.DB4o/DB4oManager.cs +++ b/OpenGrid.Framework.Data.DB4o/DB4oManager.cs @@ -7,19 +7,19 @@ using libsecondlife; namespace OpenGrid.Framework.Data.DB4o { - class DB4oManager + class DB4oGridManager { - public Dictionary profiles = new Dictionary(); + public Dictionary simProfiles = new Dictionary(); string dbfl; - public DB4oManager(string db4odb) + public DB4oGridManager(string db4odb) { dbfl = db4odb; IObjectContainer database; database = Db4oFactory.OpenFile(dbfl); IObjectSet result = database.Get(typeof(SimProfileData)); foreach(SimProfileData row in result) { - profiles.Add(row.UUID, row); + simProfiles.Add(row.UUID, row); } database.Close(); } @@ -31,7 +31,65 @@ namespace OpenGrid.Framework.Data.DB4o /// Successful? public bool AddRow(SimProfileData row) { - profiles.Add(row.UUID, row); + if (simProfiles.ContainsKey(row.UUID)) + { + simProfiles[row.UUID] = row; + } + else + { + simProfiles.Add(row.UUID, row); + } + + try + { + IObjectContainer database; + database = Db4oFactory.OpenFile(dbfl); + database.Set(row); + database.Close(); + return true; + } + catch (Exception e) + { + return false; + } + } + + + } + + class DB4oUserManager + { + public Dictionary userProfiles = new Dictionary(); + string dbfl; + + public DB4oUserManager(string db4odb) + { + dbfl = db4odb; + IObjectContainer database; + database = Db4oFactory.OpenFile(dbfl); + IObjectSet result = database.Get(typeof(UserProfileData)); + foreach (UserProfileData row in result) + { + userProfiles.Add(row.UUID, row); + } + database.Close(); + } + + /// + /// Adds a new profile to the database (Warning: Probably slow.) + /// + /// The profile to add + /// Successful? + public bool AddRow(UserProfileData row) + { + if (userProfiles.ContainsKey(row.UUID)) + { + userProfiles[row.UUID] = row; + } + else + { + userProfiles.Add(row.UUID, row); + } try { -- cgit v1.1