* Separate out OGS1 calls used between services (rather than from region to services) into a separate assembly to parallel OpenSim.Region.Communications.OGS1

0.6.0-stable
Justin Clarke Casey 2008-07-24 15:56:50 +00:00
parent 740a9a7374
commit 77297ed6cc
6 changed files with 105 additions and 39 deletions

View File

@ -98,18 +98,18 @@ namespace OpenSim.Framework.Communications
/// <returns>true if the item was successfully deleted</returns>
bool DeleteItem(InventoryItemBase item, LLUUID session_id);
/// <summary>
/// Create a new inventory for the given user.
/// </summary>
/// <param name="user"></param>
/// <returns>true if the inventory was successfully created, false otherwise</returns>
bool CreateNewUserInventory(LLUUID user);
/// <summary>
/// Does the given user have an inventory structure?
/// </summary>
/// <param name="userID"></param>
/// <returns></returns>
bool HasInventoryForUser(LLUUID userID);
/// <summary>
/// Retrieve the root inventory folder for the given user.
/// </summary>
/// <param name="userID"></param>
/// <returns>null if no root folder was found</returns>
InventoryFolderBase RequestRootFolder(LLUUID userID);
}
}

View File

@ -0,0 +1,67 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* 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 OpenSim Project 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 THE DEVELOPERS ``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 THE CONTRIBUTORS 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;
using libsecondlife;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
using OpenSim.Framework.Servers;
namespace OpenSim.Grid.Communications.OGS1
{
/// <summary>
/// OGS1 implementation of the inter-service inventory service
/// </summary>
public class OGS1InterServiceInventoryService : IInterServiceInventoryServices
{
protected string m_inventoryServerUrl;
public OGS1InterServiceInventoryService(string inventoryServerUrl)
{
m_inventoryServerUrl = inventoryServerUrl;
}
public bool CreateNewUserInventory(LLUUID userId)
{
return SynchronousRestObjectPoster.BeginPostObject<Guid, bool>(
"POST", m_inventoryServerUrl + "CreateInventory/", userId.UUID);
}
/// <summary>
/// <see cref="OpenSim.Framework.Communications.IInterServiceInventoryServices"/>
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public List<InventoryFolderBase> GetInventorySkeleton(LLUUID userId)
{
//m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: The GetInventorySkeleton() method here should never be called!");
return new List<InventoryFolderBase>();
}
}
}

View File

@ -39,7 +39,7 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Statistics;
using OpenSim.Region.Communications.OGS1;
using OpenSim.Grid.Communications.OGS1;
namespace OpenSim.Grid.UserServer
{
@ -103,7 +103,7 @@ namespace OpenSim.Grid.UserServer
m_loginService = new UserLoginService(
m_userManager, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg);
m_interServiceInventoryService = new OGS1InventoryService(m_userManager._config.InventoryUrl);
m_interServiceInventoryService = new OGS1InterServiceInventoryService(m_userManager._config.InventoryUrl);
m_messagesService = new MessageServersConnector();

View File

@ -39,7 +39,7 @@ using OpenSim.Framework.Statistics;
namespace OpenSim.Region.Communications.OGS1
{
public class OGS1InventoryService : IInventoryServices, IInterServiceInventoryServices
public class OGS1InventoryService : IInventoryServices
{
private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -306,20 +306,6 @@ namespace OpenSim.Region.Communications.OGS1
return null;
}
public bool CreateNewUserInventory(LLUUID userId)
{
return SynchronousRestObjectPoster.BeginPostObject<Guid, bool>(
"POST", _inventoryServerUrl + "CreateInventory/", userId.UUID);
}
// See IInventoryServices
public List<InventoryFolderBase> GetInventorySkeleton(LLUUID userId)
{
m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: The GetInventorySkeleton() method here should never be called!");
return new List<InventoryFolderBase>();
}
#endregion
}
}

View File

@ -39,7 +39,7 @@ using OpenSim.Framework.Statistics;
namespace OpenSim.Region.Communications.OGS1
{
public class OGS1SecureInventoryService : ISecureInventoryService, IInterServiceInventoryServices
public class OGS1SecureInventoryService : ISecureInventoryService
{
private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -306,19 +306,6 @@ namespace OpenSim.Region.Communications.OGS1
return null;
}
public bool CreateNewUserInventory(LLUUID user)
{
return false;
}
// See IInventoryServices
public List<InventoryFolderBase> GetInventorySkeleton(LLUUID userId)
{
m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: The GetInventorySkeleton() method here should never be called!");
return new List<InventoryFolderBase>();
}
#endregion
}
}

View File

@ -1654,6 +1654,32 @@
<!-- OGS projects -->
<Project name="OpenSim.Grid.Communications.OGS1" path="OpenSim/Grid/Communications/OGS1" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<Configuration name="Release">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<ReferencePath>../../../../bin/</ReferencePath>
<Reference name="System"/>
<Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Communications" />
<Reference name="OpenSim.Framework.Servers"/>
<Reference name="libsecondlife.dll"/>
<Reference name="XMLRPC.dll"/>
<Reference name="log4net.dll"/>
<Files>
<Match pattern="*.cs" recurse="true"/>
</Files>
</Project>
<Project name="OpenSim.Grid.GridServer" path="OpenSim/Grid/GridServer" type="Exe">
<Configuration name="Debug">
<Options>
@ -1739,7 +1765,7 @@
<Reference name="OpenSim.Data"/>
<Reference name="OpenSim.Framework.Servers"/>
<Reference name="OpenSim.Framework.Statistics"/>
<Reference name="OpenSim.Region.Communications.OGS1"/>
<Reference name="OpenSim.Grid.Communications.OGS1"/>
<Reference name="libsecondlife.dll"/>
<Reference name="XMLRPC.dll"/>
<Reference name="log4net.dll"/>