111 lines
3.0 KiB
C#
111 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using Db4objects.Db4o;
|
|
using OpenGrid.Framework.Data;
|
|
using libsecondlife;
|
|
|
|
namespace OpenGrid.Framework.Data.DB4o
|
|
{
|
|
class DB4oGridManager
|
|
{
|
|
public Dictionary<LLUUID, SimProfileData> simProfiles = new Dictionary<LLUUID, SimProfileData>();
|
|
string dbfl;
|
|
|
|
public DB4oGridManager(string db4odb)
|
|
{
|
|
dbfl = db4odb;
|
|
IObjectContainer database;
|
|
database = Db4oFactory.OpenFile(dbfl);
|
|
IObjectSet result = database.Get(typeof(SimProfileData));
|
|
foreach(SimProfileData row in result) {
|
|
simProfiles.Add(row.UUID, row);
|
|
}
|
|
database.Close();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Adds a new profile to the database (Warning: Probably slow.)
|
|
/// </summary>
|
|
/// <param name="row">The profile to add</param>
|
|
/// <returns>Successful?</returns>
|
|
public bool AddRow(SimProfileData 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<LLUUID, UserProfileData> userProfiles = new Dictionary<LLUUID, UserProfileData>();
|
|
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();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Adds a new profile to the database (Warning: Probably slow.)
|
|
/// </summary>
|
|
/// <param name="row">The profile to add</param>
|
|
/// <returns>Successful?</returns>
|
|
public bool AddRow(UserProfileData row)
|
|
{
|
|
if (userProfiles.ContainsKey(row.UUID))
|
|
{
|
|
userProfiles[row.UUID] = row;
|
|
}
|
|
else
|
|
{
|
|
userProfiles.Add(row.UUID, row);
|
|
}
|
|
|
|
try
|
|
{
|
|
IObjectContainer database;
|
|
database = Db4oFactory.OpenFile(dbfl);
|
|
database.Set(row);
|
|
database.Close();
|
|
return true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|