mirror of
https://github.com/opensim/opensim.git
synced 2026-06-27 00:55:48 +08:00
Re-added a CLI "create user" command to the userserver, only currently works if using DB4o as the database provider. Added Xml config files to both the UserServer and Gridserver (UserServerConfig.xml and GridServerConfig.xml), so that the database provider can be set in it. (both currently default to DB4o , so maybe Adam will want to change it back to defaulting to MySQL)
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;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|