* Return of R2162. /Take that SVN!/

afrisby
Adam Frisby 2007-10-22 21:57:32 +00:00
parent dd770c384c
commit 5dad0ed729
17 changed files with 187 additions and 67 deletions

View File

@ -72,7 +72,7 @@ namespace OpenSim.Framework.Communications.Cache
/// </summary>
public AssetCache(IAssetServer assetServer)
{
System.Console.WriteLine("Creating Asset cache");
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSTORAGE","Creating Asset cache");
_assetServer = assetServer;
_assetServer.SetReceiver(this);
Assets = new Dictionary<LLUUID, AssetInfo>();
@ -89,7 +89,7 @@ namespace OpenSim.Framework.Communications.Cache
public AssetCache(string assetServerDLLName, string assetServerURL, string assetServerKey)
{
System.Console.WriteLine("Creating Asset cache");
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSTORAGE", "Creating Asset cache");
_assetServer = this.LoadAssetDll(assetServerDLLName);

View File

@ -51,7 +51,7 @@ namespace OpenSim.Framework.Communications.Cache
yapfile = File.Exists(Path.Combine(Util.dataDir(), "regionassets.yap"));
db = Db4oFactory.OpenFile(Path.Combine(Util.dataDir(), "regionassets.yap"));
MainLog.Instance.Verbose("Db4 Asset database creation");
MainLog.Instance.Verbose("ASSETS","Db4 Asset database creation");
if (!yapfile)
{
@ -75,7 +75,7 @@ namespace OpenSim.Framework.Communications.Cache
if (db != null)
{
MainLog.Instance.Verbose("Closing local asset server database");
MainLog.Instance.Verbose("ASSETSERVER","Closing local asset server database");
db.Close();
}
}

View File

@ -37,7 +37,7 @@ namespace OpenSim.Framework.Communications.Cache
public AssetServerBase()
{
System.Console.WriteLine("Starting Db4o asset storage system");
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSERVER","Starting Db4o asset storage system");
this._assetRequests = new BlockingQueue<ARequest>();
this._localAssetServerThread = new Thread( RunRequests );

View File

@ -68,7 +68,7 @@ namespace OpenSim.Framework.Communications.Cache
m_assetProviderPlugin = plug;
m_assetProviderPlugin.Initialise();
MainLog.Instance.Verbose("AssetStorage: Added " + m_assetProviderPlugin.Name + " " + m_assetProviderPlugin.Version);
MainLog.Instance.Verbose("AssetStorage","Added " + m_assetProviderPlugin.Name + " " + m_assetProviderPlugin.Version);
}
typeInterface = null;
@ -92,7 +92,7 @@ namespace OpenSim.Framework.Communications.Cache
{
ARequest req = this._assetRequests.Dequeue();
MainLog.Instance.Verbose("Requesting asset: " + req.AssetID);
MainLog.Instance.Verbose("AssetStorage","Requesting asset: " + req.AssetID);
AssetBase asset = null;
lock (syncLock)

View File

@ -70,7 +70,7 @@ namespace OpenSim.Framework.Communications
(IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Initialise();
this.m_plugins.Add(plug.getName(), plug);
MainLog.Instance.Verbose("Inventorystorage: Added IInventoryData Interface");
MainLog.Instance.Verbose("INVENTORY","Added IInventoryData Interface");
}
}
}

View File

@ -66,7 +66,7 @@ namespace OpenSim.Framework.UserManagement
public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
{
MainLog.Instance.Verbose("Attempting login now...");
MainLog.Instance.Verbose("LOGIN","Attempting login now...");
XmlRpcResponse response = new XmlRpcResponse();
Hashtable requestData = (Hashtable)request.Params[0];

View File

@ -170,8 +170,11 @@ namespace OpenSim.Framework.Console
/// <param name="args">WriteLine-style message arguments</param>
public void Verbose(string format, params object[] args)
{
WriteNewLine(ConsoleColor.Gray, format, args);
return;
if (!m_silent)
{
WriteNewLine(ConsoleColor.Gray, format, args);
return;
}
}
/// <summary>
@ -182,9 +185,12 @@ namespace OpenSim.Framework.Console
/// <param name="args">WriteLine-style message arguments</param>
public void Verbose(string sender, string format, params object[] args)
{
WritePrefixLine(DeriveColor(sender), sender);
WriteNewLine(ConsoleColor.Gray, format, args);
return;
if (!m_silent)
{
WritePrefixLine(DeriveColor(sender), sender);
WriteNewLine(ConsoleColor.Gray, format, args);
return;
}
}
/// <summary>
@ -234,22 +240,20 @@ namespace OpenSim.Framework.Console
Log.Write(now);
Log.WriteLine(format, args);
Log.Flush();
if (!m_silent)
{
System.Console.Write(now);
try
{
if (color != ConsoleColor.White)
System.Console.ForegroundColor = color;
System.Console.WriteLine(format, args);
System.Console.ResetColor();
}
catch (ArgumentNullException)
{
// Some older systems dont support coloured text.
System.Console.WriteLine(format, args);
}
System.Console.Write(now);
try
{
if (color != ConsoleColor.White)
System.Console.ForegroundColor = color;
System.Console.WriteLine(format, args);
System.Console.ResetColor();
}
catch (ArgumentNullException)
{
// Some older systems dont support coloured text.
System.Console.WriteLine(format, args);
}
return;
}
@ -265,19 +269,16 @@ namespace OpenSim.Framework.Console
System.Console.Write("[");
if (!m_silent)
try
{
try
{
System.Console.ForegroundColor = color;
System.Console.Write(sender);
System.Console.ResetColor();
}
catch (ArgumentNullException)
{
// Some older systems dont support coloured text.
System.Console.WriteLine(sender);
}
System.Console.ForegroundColor = color;
System.Console.Write(sender);
System.Console.ResetColor();
}
catch (ArgumentNullException)
{
// Some older systems dont support coloured text.
System.Console.WriteLine(sender);
}
System.Console.Write("] \t");

View File

@ -557,8 +557,12 @@ namespace OpenSim.Framework.Types
private ConfigurationMember configMember;
public EstateSettings()
{
configMember = new ConfigurationMember(Path.Combine(Util.configDir(),"estate_settings.xml"), "ESTATE SETTINGS", this.loadConfigurationOptions, this.handleIncomingConfiguration);
configMember.performConfigurationRetrieve();
// Temporary hack to prevent multiple loadings.
if (configMember == null)
{
configMember = new ConfigurationMember(Path.Combine(Util.configDir(), "estate_settings.xml"), "ESTATE SETTINGS", this.loadConfigurationOptions, this.handleIncomingConfiguration);
configMember.performConfigurationRetrieve();
}
}
public void loadConfigurationOptions()

View File

@ -224,7 +224,7 @@ namespace OpenSim.Framework.Servers
{
try
{
MainLog.Instance.Status("HTTPD", "Spawned main thread OK");
MainLog.Instance.Verbose("HTTPD", "Spawned main thread OK");
m_httpListener = new HttpListener();
m_httpListener.Prefixes.Add("http://+:" + m_port + "/");

View File

@ -262,8 +262,10 @@ namespace OpenSim
}
else
{
MainLog.Instance.Verbose("No startup command script specified. Moving on...");
MainLog.Instance.Verbose("STARTUP","No startup command script specified. Moving on...");
}
MainLog.Instance.Status("STARTUP","Startup complete, serving " + m_udpServers.Count.ToString() + " region(s)");
}
private static void CreateDefaultRegionInfoXml(string fileName)
@ -361,11 +363,11 @@ namespace OpenSim
RunCommandScript(m_shutdownCommandsFile);
}
m_log.Verbose("Closing all threads");
m_log.Verbose("Killing listener thread");
m_log.Verbose("Killing clients");
m_log.Verbose("SHUTDOWN", "Closing all threads");
m_log.Verbose("SHUTDOWN", "Killing listener thread");
m_log.Verbose("SHUTDOWN", "Killing clients");
// IMPLEMENT THIS
m_log.Verbose("Closing console and terminating");
m_log.Verbose("SHUTDOWN", "Closing console and terminating");
m_sceneManager.Close();
@ -380,7 +382,7 @@ namespace OpenSim
/// <param name="fileName"></param>
private void RunCommandScript(string fileName)
{
MainLog.Instance.Verbose("Running command script (" + fileName + ")");
MainLog.Instance.Verbose("COMMANDFILE", "Running " + fileName);
if (File.Exists(fileName))
{
StreamReader readFile = File.OpenText(fileName);
@ -389,14 +391,14 @@ namespace OpenSim
{
if (currentCommand != "")
{
MainLog.Instance.Verbose("Running '" + currentCommand + "'");
MainLog.Instance.Verbose("COMMANDFILE", "Running '" + currentCommand + "'");
MainLog.Instance.MainLogRunCommand(currentCommand);
}
}
}
else
{
MainLog.Instance.Error("Command script missing. Can not run commands");
MainLog.Instance.Error("COMMANDFILE","Command script missing. Can not run commands");
}
}

View File

@ -47,8 +47,8 @@ namespace OpenSim.Region.Environment.Interfaces
List<SceneObjectGroup> LoadObjects(LLUUID regionUUID);
void StoreTerrain(double[,] terrain);
double[,] LoadTerrain();
void StoreTerrain(double[,] terrain, LLUUID regionID);
double[,] LoadTerrain(LLUUID regionID);
void StoreParcel(Land Parcel);
void RemoveLandObject(uint ID);

View File

@ -168,7 +168,7 @@ namespace OpenSim.Region.Environment
}
catch( BadImageFormatException e )
{
m_log.Warn( "MODULES", "The file [{0}] is not a module assembly.", e.FileName );
m_log.Verbose( "MODULES", "The file [{0}] is not a module assembly.", e.FileName );
}
}

View File

@ -370,7 +370,7 @@ namespace OpenSim.Region.Environment.Scenes
phyScene.SetTerrain(Terrain.GetHeights1D());
}
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(),RegionInfo.RegionID);
float[] terData = Terrain.GetHeights1D();
@ -466,7 +466,7 @@ namespace OpenSim.Region.Environment.Scenes
{
try
{
double[,] map = storageManager.DataStore.LoadTerrain();
double[,] map = storageManager.DataStore.LoadTerrain(RegionInfo.RegionID);
if (map == null)
{
if (string.IsNullOrEmpty(m_regInfo.EstateSettings.terrainFile))
@ -474,7 +474,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose("TERRAIN", "No default terrain. Generating a new terrain.");
Terrain.HillsGenerator();
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(),RegionInfo.RegionID);
}
else
{
@ -488,7 +488,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose("TERRAIN", "No terrain found in database or default. Generating a new terrain.");
Terrain.HillsGenerator();
}
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID);
}
}
else

View File

@ -70,7 +70,7 @@ namespace OpenSim.Region.ExtensionsScriptModule
public void Initialise(Scene scene, IConfigSource config)
{
System.Console.WriteLine("Initialising Extensions Scripting Module");
OpenSim.Framework.Console.MainLog.Instance.Verbose("SCRIPTMODULE", "Initialising Extensions Scripting Module");
m_scene = scene;
m_scene.RegisterModuleInterface<IExtensionScriptModule>(this);

View File

@ -93,7 +93,7 @@ namespace OpenSim.Region.Physics.Manager
IPhysicsPlugin plug = (IPhysicsPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Init();
this._plugins.Add(plug.GetName(),plug);
Console.WriteLine("added physics engine: " + plug.GetName());
OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS","Added physics engine: " + plug.GetName());
}

View File

@ -43,10 +43,12 @@ namespace OpenSim.DataStore.MonoSqlite
{
private const string primSelect = "select * from prims";
private const string shapeSelect = "select * from primshapes";
private const string terrainSelect = "select * from terrain";
private DataSet ds;
private SqliteDataAdapter primDa;
private SqliteDataAdapter shapeDa;
private SqliteDataAdapter terrainDa;
/***********************************************************************
*
@ -70,6 +72,8 @@ namespace OpenSim.DataStore.MonoSqlite
shapeDa = new SqliteDataAdapter(shapeSelectCmd);
// SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn);
terrainDa = new SqliteDataAdapter(terrainSelectCmd);
// We fill the data set, now we've got copies in memory for the information
// TODO: see if the linkage actually holds.
@ -83,6 +87,10 @@ namespace OpenSim.DataStore.MonoSqlite
ds.Tables.Add(createShapeTable());
setupShapeCommands(shapeDa, conn);
ds.Tables.Add(createTerrainTable());
setupTerrainCommands(terrainDa, conn);
terrainDa.Fill(ds.Tables["terrain"]);
// WORKAROUND: This is a work around for sqlite on
// windows, which gets really unhappy with blob columns
@ -210,14 +218,57 @@ namespace OpenSim.DataStore.MonoSqlite
}
public void StoreTerrain(double[,] ter)
public void StoreTerrain(double[,] ter, LLUUID regionID)
{
int revision = OpenSim.Framework.Utilities.Util.UnixTimeSinceEpoch();
MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString());
DataTable terrain = ds.Tables["terrain"];
DataRow newrow = terrain.NewRow();
fillTerrainRow(newrow, regionID, revision, ter);
terrain.Rows.Add(newrow);
Commit();
}
public double[,] LoadTerrain()
public double[,] LoadTerrain(LLUUID regionID)
{
return null;
double[,] terret = new double[256, 256];
terret.Initialize();
DataTable terrain = ds.Tables["terrain"];
DataRow[] rows = terrain.Select("RegionUUID = '" + regionID.ToString() + "'","Revision DESC");
int rev = 0;
if (rows.Length > 0)
{
DataRow row = rows[0];
byte[] heightmap = (byte[])row["Heightfield"];
for (int x = 0; x < 256; x++)
{
for (int y = 0; y < 256; y++)
{
terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8);
}
}
rev = (int)row["Revision"];
}
else
{
MainLog.Instance.Verbose("DATASTORE", "No terrain found for region");
return null;
}
MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString());
return terret;
}
public void RemoveLandObject(uint id)
@ -240,6 +291,7 @@ namespace OpenSim.DataStore.MonoSqlite
lock (ds) {
primDa.Update(ds, "prims");
shapeDa.Update(ds, "primshapes");
terrainDa.Update(ds, "terrain");
ds.AcceptChanges();
}
}
@ -263,6 +315,22 @@ namespace OpenSim.DataStore.MonoSqlite
dt.Columns.Add(col);
}
private DataTable createTerrainTable()
{
DataTable terrain = new DataTable("terrain");
createCol(terrain, "RegionUUID", typeof(System.String));
createCol(terrain, "Revision", typeof(System.Int32));
createCol(terrain, "Heightfield", typeof(System.Byte[]));
/* // Attempting to work out requirements to get SQLite to actually *save* the data.
createCol(terrain, "PrIndex", typeof(System.String));
terrain.PrimaryKey = new DataColumn[] { terrain.Columns["PrIndex"] };
*/
return terrain;
}
private DataTable createPrimTable()
{
DataTable prims = new DataTable("prims");
@ -431,6 +499,22 @@ namespace OpenSim.DataStore.MonoSqlite
return prim;
}
private void fillTerrainRow(DataRow row, LLUUID regionUUID, int rev, double[,] val)
{
row["RegionUUID"] = regionUUID;
row["Revision"] = rev;
System.IO.MemoryStream str = new System.IO.MemoryStream(65536 * sizeof(double));
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(str);
// TODO: COMPATIBILITY - Add byte-order conversions
for (int x = 0; x < 256; x++)
for (int y = 0; y < 256; y++)
bw.Write(val[x, y]);
row["Heightfield"] = str.ToArray();
}
private void fillPrimRow(DataRow row, SceneObjectPart prim, LLUUID sceneGroupID, LLUUID regionUUID)
{
row["UUID"] = prim.UUID;
@ -692,7 +776,7 @@ namespace OpenSim.DataStore.MonoSqlite
subsql += ",\n";
}
subsql += col.ColumnName + " " + sqliteType(col.DataType);
if (col == dt.PrimaryKey[0])
if (dt.PrimaryKey.Length > 0 && col == dt.PrimaryKey[0])
{
subsql += " primary key";
}
@ -746,6 +830,12 @@ namespace OpenSim.DataStore.MonoSqlite
da.DeleteCommand = delete;
}
private void setupTerrainCommands(SqliteDataAdapter da, SqliteConnection conn)
{
da.InsertCommand = createInsertCommand("terrain", ds.Tables["terrain"]);
da.InsertCommand.Connection = conn;
}
private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn)
{
da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]);
@ -764,12 +854,15 @@ namespace OpenSim.DataStore.MonoSqlite
{
string createPrims = defineTable(createPrimTable());
string createShapes = defineTable(createShapeTable());
string createTerrain = defineTable(createTerrainTable());
SqliteCommand pcmd = new SqliteCommand(createPrims, conn);
SqliteCommand scmd = new SqliteCommand(createShapes, conn);
SqliteCommand tcmd = new SqliteCommand(createTerrain, conn);
conn.Open();
pcmd.ExecuteNonQuery();
scmd.ExecuteNonQuery();
tcmd.ExecuteNonQuery();
conn.Close();
}
@ -779,12 +872,15 @@ namespace OpenSim.DataStore.MonoSqlite
SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd);
SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn);
SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd);
SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn);
SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd);
DataSet tmpDS = new DataSet();
try
{
pDa.Fill(tmpDS, "prims");
sDa.Fill(tmpDS, "primshapes");
tDa.Fill(tmpDS, "terrain");
}
catch (Mono.Data.SqliteClient.SqliteSyntaxException)
{
@ -794,6 +890,7 @@ namespace OpenSim.DataStore.MonoSqlite
pDa.Fill(tmpDS, "prims");
sDa.Fill(tmpDS, "primshapes");
tDa.Fill(tmpDS, "terrain");
foreach (DataColumn col in createPrimTable().Columns)
{
@ -811,6 +908,14 @@ namespace OpenSim.DataStore.MonoSqlite
return false;
}
}
foreach (DataColumn col in createTerrainTable().Columns)
{
if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName))
{
MainLog.Instance.Verbose("DATASTORE", "Missing require column:" + col.ColumnName);
return false;
}
}
return true;
}
@ -834,6 +939,14 @@ namespace OpenSim.DataStore.MonoSqlite
{
return DbType.Double;
}
else if (type == typeof(System.Byte))
{
return DbType.Byte;
}
else if (type == typeof(System.Double))
{
return DbType.Double;
}
else if (type == typeof(System.Byte[]))
{
return DbType.Binary;

View File

@ -61,12 +61,12 @@ namespace OpenSim.DataStore.NullStorage
return new List<SceneObjectGroup>();
}
public void StoreTerrain(double[,] ter)
public void StoreTerrain(double[,] ter, LLUUID regionID)
{
}
public double[,] LoadTerrain()
public double[,] LoadTerrain(LLUUID regionID)
{
return null;
}