2007-04-02 01:40:58 +00:00
/ *
* 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 < organization > 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 < copyright holder > ` ` 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 < copyright holder > 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 ;
2007-04-02 02:11:51 +00:00
using OpenSim.Framework.Console ;
2007-04-02 01:40:58 +00:00
using OpenSim.Framework.Interfaces ;
using Db4objects.Db4o ;
2007-04-02 02:11:51 +00:00
namespace OpenGrid.Config.GridConfigDb4o
2007-04-02 01:40:58 +00:00
{
2007-04-02 02:11:51 +00:00
public class Db40ConfigPlugin : IGridConfig
2007-04-02 01:40:58 +00:00
{
2007-04-02 02:11:51 +00:00
public GridConfig GetConfigObject ( )
2007-04-02 01:40:58 +00:00
{
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Loading Db40Config dll" ) ;
2007-04-02 02:11:51 +00:00
return ( new DbGridConfig ( ) ) ;
2007-04-02 01:40:58 +00:00
}
}
2007-04-02 02:11:51 +00:00
public class DbGridConfig : GridConfig
2007-04-02 01:40:58 +00:00
{
private IObjectContainer db ;
public void LoadDefaults ( ) {
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . HIGH , "Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings" ) ;
2007-04-02 01:40:58 +00:00
2007-04-11 20:07:58 +00:00
this . GridOwner = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Grid owner" , "OGS development team" ) ;
2007-04-02 02:11:51 +00:00
2007-04-21 05:09:06 +00:00
this . DefaultAssetServer = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Default asset server" , "http://127.0.0.1:8003/" ) ;
this . AssetSendKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to send to asset server" , "null" ) ;
this . AssetRecvKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to expect from asset server" , "null" ) ;
2007-04-02 02:11:51 +00:00
2007-04-21 05:09:06 +00:00
this . DefaultUserServer = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Default user server" , "http://127.0.0.1:8002/" ) ;
this . UserSendKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to send to user server" , "null" ) ;
this . UserRecvKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to expect from user server" , "null" ) ;
2007-04-02 02:11:51 +00:00
2007-04-21 05:09:06 +00:00
this . SimSendKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to send to sims" , "null" ) ;
this . SimRecvKey = OpenSim . Framework . Console . MainConsole . Instance . CmdPrompt ( "Key to expect from sims" , "null" ) ;
2007-04-02 01:40:58 +00:00
}
2007-04-02 02:11:51 +00:00
public override void InitConfig ( ) {
2007-04-02 01:40:58 +00:00
try {
2007-04-02 02:11:51 +00:00
db = Db4oFactory . OpenFile ( "opengrid.yap" ) ;
IObjectSet result = db . Get ( typeof ( DbGridConfig ) ) ;
2007-04-02 01:40:58 +00:00
if ( result . Count = = 1 ) {
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Config.cs:InitConfig() - Found a GridConfig object in the local database, loading" ) ;
2007-04-02 02:11:51 +00:00
foreach ( DbGridConfig cfg in result ) {
this . GridOwner = cfg . GridOwner ;
this . DefaultAssetServer = cfg . DefaultAssetServer ;
this . AssetSendKey = cfg . AssetSendKey ;
this . AssetRecvKey = cfg . AssetRecvKey ;
this . DefaultUserServer = cfg . DefaultUserServer ;
this . UserSendKey = cfg . UserSendKey ;
this . UserRecvKey = cfg . UserRecvKey ;
this . SimSendKey = cfg . SimSendKey ;
this . SimRecvKey = cfg . SimRecvKey ;
2007-04-02 01:40:58 +00:00
}
} else {
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Config.cs:InitConfig() - Could not find object in database, loading precompiled defaults" ) ;
2007-04-02 01:40:58 +00:00
LoadDefaults ( ) ;
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Writing out default settings to local database" ) ;
2007-04-02 01:40:58 +00:00
db . Set ( this ) ;
2007-04-02 02:36:00 +00:00
db . Close ( ) ;
2007-04-02 01:40:58 +00:00
}
} catch ( Exception e ) {
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . MEDIUM , "Config.cs:InitConfig() - Exception occured" ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . MEDIUM , e . ToString ( ) ) ;
2007-04-02 01:40:58 +00:00
}
2007-05-12 15:44:10 +00:00
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Grid settings loaded:" ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Grid owner: " + this . GridOwner ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Default asset server: " + this . DefaultAssetServer ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to send to asset server: " + this . AssetSendKey ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to expect from asset server: " + this . AssetRecvKey ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Default user server: " + this . DefaultUserServer ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to send to user server: " + this . UserSendKey ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to expect from user server: " + this . UserRecvKey ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to send to sims: " + this . SimSendKey ) ;
OpenSim . Framework . Console . MainConsole . Instance . WriteLine ( OpenSim . Framework . Console . LogPriority . LOW , "Key to expect from sims: " + this . SimRecvKey ) ;
2007-04-02 01:40:58 +00:00
}
public void Shutdown ( ) {
db . Close ( ) ;
}
}
}