using System;
using OpenSim.Framework;
using OpenMetaverse;
namespace OpenSim.Services.Interfaces
{
public interface ISimulationService
{
#region Agents
bool CreateAgent(ulong regionHandle, AgentCircuitData aCircuit, out string reason);
///
/// Full child agent update.
///
///
///
///
bool UpdateAgent(ulong regionHandle, AgentData data);
///
/// Short child agent update, mostly for position.
///
///
///
///
bool UpdateAgent(ulong regionHandle, AgentPosition data);
bool RetrieveAgent(ulong regionHandle, UUID id, out IAgentData agent);
///
/// Message from receiving region to departing region, telling it got contacted by the client.
/// When sent over REST, it invokes the opaque uri.
///
///
///
///
///
bool ReleaseAgent(ulong regionHandle, UUID id, string uri);
///
/// Close agent.
///
///
///
///
bool CloseAgent(ulong regionHandle, UUID id);
#endregion Agents
#region Objects
///
/// Create an object in the destination region. This message is used primarily for prim crossing.
///
///
///
///
///
bool CreateObject(ulong regionHandle, ISceneObject sog, bool isLocalCall);
///
/// Create an object from the user's inventory in the destination region.
/// This message is used primarily by clients.
///
///
///
///
///
bool CreateObject(ulong regionHandle, UUID userID, UUID itemID);
#endregion Objects
#region Regions
bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion);
#endregion Regions
}
}