* Tleiades grid mode inventory (#444) - thanx Tleiades!

* updated to rev 1413 on libsecondlife.dll and libsecondlife.dll.config (#423)
This commit is contained in:
lbsa71
2007-09-27 13:25:45 +00:00
parent 569ba9eb9a
commit 8143c597fc
37 changed files with 1040 additions and 439 deletions

View File

@@ -31,49 +31,130 @@ using System.Collections.Generic;
using System.Reflection;
using System.IO;
using System.Text;
using System.Xml;
using libsecondlife;
using OpenSim.Framework.User;
using OpenSim.Framework.Sims;
using OpenSim.Framework.Inventory;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Console;
using OpenSim.Servers;
using OpenSim.Framework.Utilities;
using OpenSim.Framework.Configuration;
using OpenSim.Framework.Data;
using InventoryCategory = OpenSim.Framework.Data.InventoryCategory;
namespace OpenGridServices.InventoryServer
namespace OpenSim.Grid.InventoryServer
{
public class OpenInventory_Main : BaseServer, conscmd_callback
{
ConsoleBase m_console;
InventoryManager m_inventoryManager;
public class OpenInventory_Main : conscmd_callback
{
public const string MainLogName = "INVENTORY";
private InventoryConfig m_config;
LogBase m_console;
InventoryManager m_inventoryManager; ///connection the database backend
InventoryService m_inventoryService; ///Remoting interface, where messages arrive
[STAThread]
public static void Main(string[] args)
{
Console.WriteLine("Launching InventoryServer...");
OpenInventory_Main inventoryServer = new OpenInventory_Main();
inventoryServer.Startup();
// inventoryServer.RunCmd("load", new string[] { "library", "inventory_library.xml" });
// inventoryServer.RunCmd("load", new string[] { "default", "inventory_default.xml" });
inventoryServer.Work();
}
public OpenInventory_Main()
{
m_console = new ConsoleBase("opengrid-inventory-console.log", "OpenInventory", this, false);
MainConsole.Instance = m_console;
if (!Directory.Exists(Util.logDir()))
{
Directory.CreateDirectory(Util.logDir());
}
m_console = new LogBase(Path.Combine(Util.logDir(), "opensim-inventory-console.log"), "OpenInventory", this, false);
MainLog.Instance = m_console;
}
private void Work()
{
m_console.Notice(OpenInventory_Main.MainLogName, "Enter help for a list of commands\n");
while (true)
{
m_console.MainLogPrompt();
}
}
public void Startup()
{
MainConsole.Instance.Notice("Initialising inventory manager...");
MainLog.Instance.Verbose(OpenInventory_Main.MainLogName, "Initialising inventory manager...");
m_config = new InventoryConfig(OpenInventory_Main.MainLogName, (Path.Combine(Util.configDir(), "InventoryServer_Config.xml")));
// instantiate the manager, responsible for doing the actual storage
m_inventoryManager = new InventoryManager();
m_inventoryManager.AddDatabasePlugin(m_config.DatabaseProvider);
MainConsole.Instance.Notice("Starting HTTP server");
BaseHttpServer httpServer = new BaseHttpServer(8004);
m_inventoryService = new InventoryService(m_inventoryManager, m_config);
httpServer.AddXmlRPCHandler("rootfolders", m_inventoryManager.XmlRpcInventoryRequest);
//httpServer.AddRestHandler("GET","/rootfolders/",Rest
// Dig out the embedded version number of this assembly
Assembly assembly = Assembly.GetExecutingAssembly();
string serverExeName = assembly.ManifestModule.Name;
Version serverExeVersion = AssemblyName.GetAssemblyName(serverExeName).Version;
m_console.Status(OpenInventory_Main.MainLogName, "Inventoryserver {0}.{1}.{2}.{3} - Startup complete", serverExeVersion.Major, serverExeVersion.Minor, serverExeVersion.Revision, serverExeVersion.Build);
}
public void Load(string[] cmdparams)
{
string cmd = cmdparams[0];
string fileName = cmdparams[1];
if (cmdparams.Length != 2)
{
cmd = "help";
}
switch (cmd)
{
case "library":
InventoryServiceSingleton.Instance.loadInventoryFromXmlFile(InventoryCategory.Library, fileName);
break;
case "default":
InventoryServiceSingleton.Instance.loadInventoryFromXmlFile(InventoryCategory.Default, fileName);
break;
case "user":
InventoryServiceSingleton.Instance.loadInventoryFromXmlFile(InventoryCategory.User, fileName);
break;
case "help":
m_console.Notice("load library <filename>, load library inventory, shared between all users");
m_console.Notice("load default <filename>, load template inventory, used when creating a new user inventory");
m_console.Notice("load user <first> <last>, load inventory for a specific users, warning this will reset the contents of the inventory");
break;
}
}
public void RunCmd(string cmd, string[] cmdparams)
{
switch (cmd)
{
{
case "help":
m_console.Notice("load - load verious inventories, use \"load help\", to see a list of commands");
m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)");
m_console.Notice("quit - shutdown the grid (USE CAUTION!)");
break;
case "load":
Load(cmdparams);
break;
case "quit":
case "shutdown":
MainLog.Instance.Verbose(OpenInventory_Main.MainLogName, "Shutting down inventory server");
m_console.Close();
Environment.Exit(0);
break;