From 5a6552120395611e66a88821ce848a06c9ea4720 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Fri, 5 Oct 2007 10:14:42 +0000
Subject: == The "right name and place" commit == * Moved InventoryData to
Framework.Types/InventoryItemBase.cs * Moved UserData to
Framework.Interfaces/IUserData.cs * Moved UserProfileData to
Framework/Types/UserProfileData.cs * Deleted ass-backwards Framework
dependency on Framework.Data (now it's the other way round) * Changed some
namespaces to reflect file structure
---
.../Communications/Cache/AssetTransactions.cs | 2 +-
.../Communications/Cache/CachedUserInfo.cs | 18 +-
.../Communications/Cache/InventoryFolder.cs | 1 -
.../Communications/Cache/LibraryRootFolder.cs | 2 +-
.../Communications/Cache/UserProfileCache.cs | 2 +-
.../Framework/Communications/Capabilities/Caps.cs | 1 -
.../Communications/CommunicationsManager.cs | 1 -
.../Framework/Communications/IInventoryServices.cs | 2 +-
.../Communications/InventoryServiceBase.cs | 2 +-
OpenSim/Framework/Communications/LoginService.cs | 2 +-
.../Framework/Communications/UserManagerBase.cs | 1 +
OpenSim/Framework/Data.DB4o/DB4oManager.cs | 1 +
OpenSim/Framework/Data.DB4o/DB4oUserData.cs | 1 +
OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs | 1 +
OpenSim/Framework/Data.MySQL/MySQLManager.cs | 1 +
OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 1 +
OpenSim/Framework/Data.SQLite/SQLiteUserData.cs | 1 +
OpenSim/Framework/Data/InventoryData.cs | 222 ---------------------
OpenSim/Framework/Data/UserData.cs | 134 -------------
OpenSim/Framework/Data/UserProfileData.cs | 192 ------------------
OpenSim/Framework/General/Interfaces/IClientAPI.cs | 1 -
OpenSim/Framework/General/Interfaces/IUserData.cs | 135 +++++++++++++
.../Framework/General/Interfaces/IUserService.cs | 2 +-
.../Framework/General/Types/InventoryItemBase.cs | 222 +++++++++++++++++++++
OpenSim/Framework/General/Types/UserProfileData.cs | 191 ++++++++++++++++++
OpenSim/Grid/UserServer/UserLoginService.cs | 161 +++++++--------
OpenSim/Grid/UserServer/UserManager.cs | 2 +-
OpenSim/Region/ClientStack/ClientView.API.cs | 1 -
.../Region/ClientStack/RegionApplicationBase.cs | 1 -
.../Communications/Local/LocalInventoryService.cs | 2 +-
.../Communications/Local/LocalLoginService.cs | 1 -
.../Communications/Local/LocalUserServices.cs | 1 -
.../Communications/OGS1/OGS1InventoryService.cs | 2 +-
.../Region/Communications/OGS1/OGS1UserServices.cs | 2 +-
.../Region/Environment/Scenes/Scene.Inventory.cs | 2 +-
.../Region/Environment/Scenes/SceneObjectGroup.cs | 1 -
.../Region/Examples/SimpleApp/MyNpcCharacter.cs | 1 -
37 files changed, 652 insertions(+), 664 deletions(-)
delete mode 100644 OpenSim/Framework/Data/InventoryData.cs
delete mode 100644 OpenSim/Framework/Data/UserData.cs
delete mode 100644 OpenSim/Framework/Data/UserProfileData.cs
create mode 100644 OpenSim/Framework/General/Interfaces/IUserData.cs
create mode 100644 OpenSim/Framework/General/Types/InventoryItemBase.cs
create mode 100644 OpenSim/Framework/General/Types/UserProfileData.cs
(limited to 'OpenSim')
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
index d0507d0..51fc462 100644
--- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
@@ -32,10 +32,10 @@ using System.Text;
using System.IO;
using libsecondlife;
using libsecondlife.Packets;
+using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Data;
using OpenSim.Region.Capabilities;
using OpenSim.Framework.Servers;
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
index 99dc45a..b1432ff 100644
--- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
+++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
@@ -25,22 +25,15 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
using libsecondlife;
-using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.Utilities;
+using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder;
-namespace OpenSim.Framework.Communications.Caches
+namespace OpenSim.Framework.Communications.Cache
{
public class CachedUserInfo
{
- private CommunicationsManager m_parentCommsManager;
+ private readonly CommunicationsManager m_parentCommsManager;
// Fields
public InventoryFolder RootFolder = null;
public UserProfileData UserProfile = null;
@@ -127,7 +120,4 @@ namespace OpenSim.Framework.Communications.Caches
return result;
}
}
-
-
-}
-
+}
\ No newline at end of file
diff --git a/OpenSim/Framework/Communications/Cache/InventoryFolder.cs b/OpenSim/Framework/Communications/Cache/InventoryFolder.cs
index 885cffc..fbe1bd0 100644
--- a/OpenSim/Framework/Communications/Cache/InventoryFolder.cs
+++ b/OpenSim/Framework/Communications/Cache/InventoryFolder.cs
@@ -32,7 +32,6 @@ using System.Text;
using System.IO;
using libsecondlife;
using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
index deef028..38fad68 100644
--- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
+++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs
@@ -3,8 +3,8 @@ using System.IO;
using System.Collections.Generic;
using System.Text;
using libsecondlife;
+using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Data;
using Nini.Config;
namespace OpenSim.Framework.Communications.Caches
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
index 390b938..9e32ea5 100644
--- a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
+++ b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
@@ -31,10 +31,10 @@ using System.Collections.Generic;
using System.Text;
using System.IO;
using libsecondlife;
+using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Data;
namespace OpenSim.Framework.Communications.Caches
{
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs
index 59c6d7c..4ed59c7 100644
--- a/OpenSim/Framework/Communications/Capabilities/Caps.cs
+++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs
@@ -35,7 +35,6 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Data;
namespace OpenSim.Region.Capabilities
{
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs
index e266b90..5af07f7 100644
--- a/OpenSim/Framework/Communications/CommunicationsManager.cs
+++ b/OpenSim/Framework/Communications/CommunicationsManager.cs
@@ -29,7 +29,6 @@ using System;
using libsecondlife;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Caches;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Types;
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs
index 80c2e64..980bb27 100644
--- a/OpenSim/Framework/Communications/IInventoryServices.cs
+++ b/OpenSim/Framework/Communications/IInventoryServices.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.Text;
-using OpenSim.Framework.Data;
using libsecondlife;
using OpenSim.Framework.Communications.Caches;
+using OpenSim.Framework.Types;
using InventoryFolder = OpenSim.Framework.Communications.Caches.InventoryFolder;
namespace OpenSim.Framework.Communications
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs
index da7a0ce..7536429 100644
--- a/OpenSim/Framework/Communications/InventoryServiceBase.cs
+++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs
@@ -4,7 +4,7 @@ using System.Reflection;
using libsecondlife;
using OpenSim.Framework.Communications;
using OpenSim.Framework.Console;
-using OpenSim.Framework.Data;
+using OpenSim.Framework.Types;
using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder;
namespace OpenSim.Framework.Communications
diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs
index 8e7cf80..06abb69 100644
--- a/OpenSim/Framework/Communications/LoginService.cs
+++ b/OpenSim/Framework/Communications/LoginService.cs
@@ -6,9 +6,9 @@ using System.Security.Cryptography;
using libsecondlife;
using Nwc.XmlRpc;
using OpenSim.Framework.Console;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
using OpenSim.Framework.Configuration;
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index bbda054..56ed959 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -37,6 +37,7 @@ using OpenSim.Framework.Configuration;
using OpenSim.Framework.Console;
using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
namespace OpenSim.Framework.UserManagement
diff --git a/OpenSim/Framework/Data.DB4o/DB4oManager.cs b/OpenSim/Framework/Data.DB4o/DB4oManager.cs
index 0ab7aec..224b842 100644
--- a/OpenSim/Framework/Data.DB4o/DB4oManager.cs
+++ b/OpenSim/Framework/Data.DB4o/DB4oManager.cs
@@ -29,6 +29,7 @@ using System;
using System.Collections.Generic;
using Db4objects.Db4o;
using libsecondlife;
+using OpenSim.Framework.Types;
namespace OpenSim.Framework.Data.DB4o
{
diff --git a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
index 2ab1488..38f1b55 100644
--- a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
+++ b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
@@ -28,6 +28,7 @@
using System;
using System.IO;
using libsecondlife;
+using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
namespace OpenSim.Framework.Data.DB4o
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
index 5009d9e..f773da4 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -29,6 +29,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using libsecondlife;
+using OpenSim.Framework.Types;
namespace OpenSim.Framework.Data.MySQL
{
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index 5037f98..a83ee45 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -30,6 +30,7 @@ using System.Collections.Generic;
using System.Data;
using libsecondlife;
using MySql.Data.MySqlClient;
+using OpenSim.Framework.Types;
namespace OpenSim.Framework.Data.MySQL
{
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
index e746717..301550f 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -29,6 +29,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using libsecondlife;
+using OpenSim.Framework.Types;
namespace OpenSim.Framework.Data.MySQL
{
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
index 3a13ecc..c7b7659 100644
--- a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
+++ b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
@@ -28,6 +28,7 @@
using System;
using System.IO;
using libsecondlife;
+using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
using System.Data;
using System.Data.SqlTypes;
diff --git a/OpenSim/Framework/Data/InventoryData.cs b/OpenSim/Framework/Data/InventoryData.cs
deleted file mode 100644
index 2df26e1..0000000
--- a/OpenSim/Framework/Data/InventoryData.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
-* 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.Collections.Generic;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
- ///
- /// Inventory Item - contains all the properties associated with an individual inventory piece.
- ///
- public class InventoryItemBase
- {
- ///
- /// A UUID containing the ID for the inventory item itself
- ///
- public LLUUID inventoryID;
- ///
- /// The UUID of the associated asset on the asset server
- ///
- public LLUUID assetID;
- ///
- /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
- ///
- public int assetType;
- ///
- /// The type of inventory item. (Can be slightly different to the asset type
- ///
- public int invType;
- ///
- /// The folder this item is contained in
- ///
- public LLUUID parentFolderID;
- ///
- /// The owner of this inventory item
- ///
- public LLUUID avatarID;
- ///
- /// The creator of this item
- ///
- public LLUUID creatorsID;
- ///
- /// The name of the inventory item (must be less than 64 characters)
- ///
- public string inventoryName;
- ///
- /// The description of the inventory item (must be less than 64 characters)
- ///
- public string inventoryDescription;
- ///
- /// A mask containing the permissions for the next owner (cannot be enforced)
- ///
- public uint inventoryNextPermissions;
- ///
- /// A mask containing permissions for the current owner (cannot be enforced)
- ///
- public uint inventoryCurrentPermissions;
- ///
- ///
- ///
- public uint inventoryBasePermissions;
- ///
- ///
- ///
- public uint inventoryEveryOnePermissions;
- }
-
- ///
- /// A Class for folders which contain users inventory
- ///
- public class InventoryFolderBase
- {
- ///
- /// The name of the folder (64 characters or less)
- ///
- public string name;
- ///
- /// The agent who's inventory this is contained by
- ///
- public LLUUID agentID;
- ///
- /// The folder this folder is contained in
- ///
- public LLUUID parentID;
- ///
- /// The UUID for this folder
- ///
- public LLUUID folderID;
- ///
- /// Tyep of Items normally stored in this folder
- ///
- public short type;
- ///
- ///
- ///
- public ushort version;
- }
-
- ///
- /// An interface for accessing inventory data from a storage server
- ///
- public interface IInventoryData
- {
- ///
- /// Initialises the interface
- ///
- void Initialise();
-
- ///
- /// Closes the interface
- ///
- void Close();
-
- ///
- /// The plugin being loaded
- ///
- /// A string containing the plugin name
- string getName();
-
- ///
- /// The plugins version
- ///
- /// A string containing the plugin version
- string getVersion();
-
- ///
- /// Returns a list of inventory items contained within the specified folder
- ///
- /// The UUID of the target folder
- /// A List of InventoryItemBase items
- List getInventoryInFolder(LLUUID folderID);
-
- ///
- /// Returns a list of the root folders within a users inventory
- ///
- /// The user whos inventory is to be searched
- /// A list of folder objects
- List getUserRootFolders(LLUUID user);
-
- ///
- /// Returns the users inventory root folder.
- ///
- /// The UUID of the user who is having inventory being returned
- /// Root inventory folder
- InventoryFolderBase getUserRootFolder(LLUUID user);
-
- ///
- /// Returns a list of inventory folders contained in the folder 'parentID'
- ///
- /// The folder to get subfolders for
- /// A list of inventory folders
- List getInventoryFolders(LLUUID parentID);
-
- ///
- /// Returns an inventory item by its UUID
- ///
- /// The UUID of the item to be returned
- /// A class containing item information
- InventoryItemBase getInventoryItem(LLUUID item);
-
- ///
- /// Returns a specified inventory folder by its UUID
- ///
- /// The UUID of the folder to be returned
- /// A class containing folder information
- InventoryFolderBase getInventoryFolder(LLUUID folder);
-
- ///
- /// Creates a new inventory item based on item
- ///
- /// The item to be created
- void addInventoryItem(InventoryItemBase item);
-
- ///
- /// Updates an inventory item with item (updates based on ID)
- ///
- /// The updated item
- void updateInventoryItem(InventoryItemBase item);
-
- ///
- ///
- ///
- ///
- void deleteInventoryItem(InventoryItemBase item);
-
- ///
- /// Adds a new folder specified by folder
- ///
- /// The inventory folder
- void addInventoryFolder(InventoryFolderBase folder);
-
- ///
- /// Updates a folder based on its ID with folder
- ///
- /// The inventory folder
- void updateInventoryFolder(InventoryFolderBase folder);
- }
-}
diff --git a/OpenSim/Framework/Data/UserData.cs b/OpenSim/Framework/Data/UserData.cs
deleted file mode 100644
index 13bdf17..0000000
--- a/OpenSim/Framework/Data/UserData.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-* 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 libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
- ///
- /// An interface for connecting to user storage servers.
- ///
- public interface IUserData
- {
- ///
- /// Returns a user profile from a database via their UUID
- ///
- /// The accounts UUID
- /// The user data profile
- UserProfileData GetUserByUUID(LLUUID user);
-
- ///
- /// Returns a users profile by searching their username
- ///
- /// The users username
- /// The user data profile
- UserProfileData GetUserByName(string name);
-
- ///
- /// Returns a users profile by searching their username parts
- ///
- /// Account firstname
- /// Account lastname
- /// The user data profile
- UserProfileData GetUserByName(string fname, string lname);
-
- ///
- /// Returns the current agent for a user searching by it's UUID
- ///
- /// The users UUID
- /// The current agent session
- UserAgentData GetAgentByUUID(LLUUID user);
-
- ///
- /// Returns the current session agent for a user searching by username
- ///
- /// The users account name
- /// The current agent session
- UserAgentData GetAgentByName(string name);
-
- ///
- /// Returns the current session agent for a user searching by username parts
- ///
- /// The users first account name
- /// The users account surname
- /// The current agent session
- UserAgentData GetAgentByName(string fname, string lname);
-
- ///
- /// Adds a new User profile to the database
- ///
- /// UserProfile to add
- void AddNewUserProfile(UserProfileData user);
-
- ///
- /// Updates an existing user profile
- ///
- /// UserProfile to update
- bool UpdateUserProfile(UserProfileData user);
-
- ///
- /// Adds a new agent to the database
- ///
- /// The agent to add
- void AddNewUserAgent(UserAgentData agent);
-
- ///
- /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
- ///
- /// The account to transfer from
- /// The account to transfer to
- /// The amount to transfer
- /// Successful?
- bool MoneyTransferRequest(LLUUID from, LLUUID to, uint amount);
-
- ///
- /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
- ///
- /// User to transfer from
- /// User to transfer to
- /// Specified inventory item
- /// Successful?
- bool InventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
-
- ///
- /// Returns the plugin version
- ///
- /// Plugin version in MAJOR.MINOR.REVISION.BUILD format
- string GetVersion();
-
- ///
- /// Returns the plugin name
- ///
- /// Plugin name, eg MySQL User Provider
- string getName();
-
- ///
- /// Initialises the plugin (artificial constructor)
- ///
- void Initialise();
- }
-}
diff --git a/OpenSim/Framework/Data/UserProfileData.cs b/OpenSim/Framework/Data/UserProfileData.cs
deleted file mode 100644
index 4fafe3f..0000000
--- a/OpenSim/Framework/Data/UserProfileData.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
-* 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 libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
- ///
- /// Information about a particular user known to the userserver
- ///
- public class UserProfileData
- {
- ///
- /// The ID value for this user
- ///
- public LLUUID UUID;
-
- ///
- /// The first component of a users account name
- ///
- public string username;
- ///
- /// The second component of a users account name
- ///
- public string surname;
-
- ///
- /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt)
- ///
- /// This is double MD5'd because the client sends an unsalted MD5 to the loginserver
- public string passwordHash;
- ///
- /// The salt used for the users hash, should be 32 bytes or longer
- ///
- public string passwordSalt;
-
- ///
- /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into
- ///
- public ulong homeRegion
- {
- get { return Helpers.UIntsToLong((homeRegionX * 256), (homeRegionY * 256)); }
- set {
- homeRegionX = (uint)(value >> 40);
- homeRegionY = (((uint)(value)) >> 8);
- Console.WriteLine("HomeRegion => Incoming: " + value + ", Computed: " + homeRegion);
- }
- }
- public uint homeRegionX;
- public uint homeRegionY;
- ///
- /// The coordinates inside the region of the home location
- ///
- public LLVector3 homeLocation;
- ///
- /// Where the user will be looking when they rez.
- ///
- public LLVector3 homeLookAt;
-
- ///
- /// A UNIX Timestamp (seconds since epoch) for the users creation
- ///
- public int created;
- ///
- /// A UNIX Timestamp for the users last login date / time
- ///
- public int lastLogin;
-
- public LLUUID rootInventoryFolderID;
-
- ///
- /// A URI to the users inventory server, used for foreigners and large grids
- ///
- public string userInventoryURI = String.Empty;
- ///
- /// A URI to the users asset server, used for foreigners and large grids.
- ///
- public string userAssetURI = String.Empty;
-
- ///
- /// A uint mask containing the "I can do" fields of the users profile
- ///
- public uint profileCanDoMask;
- ///
- /// A uint mask containing the "I want to do" part of the users profile
- ///
- public uint profileWantDoMask; // Profile window "I want to" mask
-
- ///
- /// The about text listed in a users profile.
- ///
- public string profileAboutText = String.Empty;
- ///
- /// The first life about text listed in a users profile
- ///
- public string profileFirstText = String.Empty;
-
- ///
- /// The profile image for an avatar stored on the asset server
- ///
- public LLUUID profileImage;
- ///
- /// The profile image for the users first life tab
- ///
- public LLUUID profileFirstImage;
- ///
- /// The users last registered agent (filled in on the user server)
- ///
- public UserAgentData currentAgent;
- }
-
- ///
- /// Information about a users session
- ///
- public class UserAgentData
- {
- ///
- /// The UUID of the users avatar (not the agent!)
- ///
- public LLUUID UUID;
- ///
- /// The IP address of the user
- ///
- public string agentIP = String.Empty;
- ///
- /// The port of the user
- ///
- public uint agentPort;
- ///
- /// Is the user online?
- ///
- public bool agentOnline;
- ///
- /// The session ID for the user (also the agent ID)
- ///
- public LLUUID sessionID;
- ///
- /// The "secure" session ID for the user
- ///
- /// Not very secure. Dont rely on it for anything more than Linden Lab does.
- public LLUUID secureSessionID;
- ///
- /// The region the user logged into initially
- ///
- public LLUUID regionID;
- ///
- /// A unix timestamp from when the user logged in
- ///
- public int loginTime;
- ///
- /// When this agent expired and logged out, 0 if still online
- ///
- public int logoutTime;
- ///
- /// Current region the user is logged into
- ///
- public LLUUID currentRegion;
- ///
- /// Region handle of the current region the user is in
- ///
- public ulong currentHandle;
- ///
- /// The position of the user within the region
- ///
- public LLVector3 currentPos;
- }
-}
diff --git a/OpenSim/Framework/General/Interfaces/IClientAPI.cs b/OpenSim/Framework/General/Interfaces/IClientAPI.cs
index 344a55c..bedea9e 100644
--- a/OpenSim/Framework/General/Interfaces/IClientAPI.cs
+++ b/OpenSim/Framework/General/Interfaces/IClientAPI.cs
@@ -31,7 +31,6 @@ using System.Net;
using libsecondlife;
using libsecondlife.Packets;
using OpenSim.Framework.Types;
-using OpenSim.Framework.Data;
namespace OpenSim.Framework.Interfaces
{
diff --git a/OpenSim/Framework/General/Interfaces/IUserData.cs b/OpenSim/Framework/General/Interfaces/IUserData.cs
new file mode 100644
index 0000000..bb3abe0
--- /dev/null
+++ b/OpenSim/Framework/General/Interfaces/IUserData.cs
@@ -0,0 +1,135 @@
+/*
+* 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 libsecondlife;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Data
+{
+ ///
+ /// An interface for connecting to user storage servers.
+ ///
+ public interface IUserData
+ {
+ ///
+ /// Returns a user profile from a database via their UUID
+ ///
+ /// The accounts UUID
+ /// The user data profile
+ UserProfileData GetUserByUUID(LLUUID user);
+
+ ///
+ /// Returns a users profile by searching their username
+ ///
+ /// The users username
+ /// The user data profile
+ UserProfileData GetUserByName(string name);
+
+ ///
+ /// Returns a users profile by searching their username parts
+ ///
+ /// Account firstname
+ /// Account lastname
+ /// The user data profile
+ UserProfileData GetUserByName(string fname, string lname);
+
+ ///
+ /// Returns the current agent for a user searching by it's UUID
+ ///
+ /// The users UUID
+ /// The current agent session
+ UserAgentData GetAgentByUUID(LLUUID user);
+
+ ///
+ /// Returns the current session agent for a user searching by username
+ ///
+ /// The users account name
+ /// The current agent session
+ UserAgentData GetAgentByName(string name);
+
+ ///
+ /// Returns the current session agent for a user searching by username parts
+ ///
+ /// The users first account name
+ /// The users account surname
+ /// The current agent session
+ UserAgentData GetAgentByName(string fname, string lname);
+
+ ///
+ /// Adds a new User profile to the database
+ ///
+ /// UserProfile to add
+ void AddNewUserProfile(UserProfileData user);
+
+ ///
+ /// Updates an existing user profile
+ ///
+ /// UserProfile to update
+ bool UpdateUserProfile(UserProfileData user);
+
+ ///
+ /// Adds a new agent to the database
+ ///
+ /// The agent to add
+ void AddNewUserAgent(UserAgentData agent);
+
+ ///
+ /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
+ ///
+ /// The account to transfer from
+ /// The account to transfer to
+ /// The amount to transfer
+ /// Successful?
+ bool MoneyTransferRequest(LLUUID from, LLUUID to, uint amount);
+
+ ///
+ /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
+ ///
+ /// User to transfer from
+ /// User to transfer to
+ /// Specified inventory item
+ /// Successful?
+ bool InventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
+
+ ///
+ /// Returns the plugin version
+ ///
+ /// Plugin version in MAJOR.MINOR.REVISION.BUILD format
+ string GetVersion();
+
+ ///
+ /// Returns the plugin name
+ ///
+ /// Plugin name, eg MySQL User Provider
+ string getName();
+
+ ///
+ /// Initialises the plugin (artificial constructor)
+ ///
+ void Initialise();
+ }
+}
diff --git a/OpenSim/Framework/General/Interfaces/IUserService.cs b/OpenSim/Framework/General/Interfaces/IUserService.cs
index 974e025..461d4cb 100644
--- a/OpenSim/Framework/General/Interfaces/IUserService.cs
+++ b/OpenSim/Framework/General/Interfaces/IUserService.cs
@@ -26,7 +26,7 @@
*
*/
using libsecondlife;
-using OpenSim.Framework.Data;
+using OpenSim.Framework.Types;
namespace OpenSim.Framework.Interfaces
{
diff --git a/OpenSim/Framework/General/Types/InventoryItemBase.cs b/OpenSim/Framework/General/Types/InventoryItemBase.cs
new file mode 100644
index 0000000..e3dbe71
--- /dev/null
+++ b/OpenSim/Framework/General/Types/InventoryItemBase.cs
@@ -0,0 +1,222 @@
+/*
+* 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.Collections.Generic;
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+ ///
+ /// Inventory Item - contains all the properties associated with an individual inventory piece.
+ ///
+ public class InventoryItemBase
+ {
+ ///
+ /// A UUID containing the ID for the inventory item itself
+ ///
+ public LLUUID inventoryID;
+ ///
+ /// The UUID of the associated asset on the asset server
+ ///
+ public LLUUID assetID;
+ ///
+ /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
+ ///
+ public int assetType;
+ ///
+ /// The type of inventory item. (Can be slightly different to the asset type
+ ///
+ public int invType;
+ ///
+ /// The folder this item is contained in
+ ///
+ public LLUUID parentFolderID;
+ ///
+ /// The owner of this inventory item
+ ///
+ public LLUUID avatarID;
+ ///
+ /// The creator of this item
+ ///
+ public LLUUID creatorsID;
+ ///
+ /// The name of the inventory item (must be less than 64 characters)
+ ///
+ public string inventoryName;
+ ///
+ /// The description of the inventory item (must be less than 64 characters)
+ ///
+ public string inventoryDescription;
+ ///
+ /// A mask containing the permissions for the next owner (cannot be enforced)
+ ///
+ public uint inventoryNextPermissions;
+ ///
+ /// A mask containing permissions for the current owner (cannot be enforced)
+ ///
+ public uint inventoryCurrentPermissions;
+ ///
+ ///
+ ///
+ public uint inventoryBasePermissions;
+ ///
+ ///
+ ///
+ public uint inventoryEveryOnePermissions;
+ }
+
+ ///
+ /// A Class for folders which contain users inventory
+ ///
+ public class InventoryFolderBase
+ {
+ ///
+ /// The name of the folder (64 characters or less)
+ ///
+ public string name;
+ ///
+ /// The agent who's inventory this is contained by
+ ///
+ public LLUUID agentID;
+ ///
+ /// The folder this folder is contained in
+ ///
+ public LLUUID parentID;
+ ///
+ /// The UUID for this folder
+ ///
+ public LLUUID folderID;
+ ///
+ /// Tyep of Items normally stored in this folder
+ ///
+ public short type;
+ ///
+ ///
+ ///
+ public ushort version;
+ }
+
+ ///
+ /// An interface for accessing inventory data from a storage server
+ ///
+ public interface IInventoryData
+ {
+ ///
+ /// Initialises the interface
+ ///
+ void Initialise();
+
+ ///
+ /// Closes the interface
+ ///
+ void Close();
+
+ ///
+ /// The plugin being loaded
+ ///
+ /// A string containing the plugin name
+ string getName();
+
+ ///
+ /// The plugins version
+ ///
+ /// A string containing the plugin version
+ string getVersion();
+
+ ///
+ /// Returns a list of inventory items contained within the specified folder
+ ///
+ /// The UUID of the target folder
+ /// A List of InventoryItemBase items
+ List getInventoryInFolder(LLUUID folderID);
+
+ ///
+ /// Returns a list of the root folders within a users inventory
+ ///
+ /// The user whos inventory is to be searched
+ /// A list of folder objects
+ List getUserRootFolders(LLUUID user);
+
+ ///
+ /// Returns the users inventory root folder.
+ ///
+ /// The UUID of the user who is having inventory being returned
+ /// Root inventory folder
+ InventoryFolderBase getUserRootFolder(LLUUID user);
+
+ ///
+ /// Returns a list of inventory folders contained in the folder 'parentID'
+ ///
+ /// The folder to get subfolders for
+ /// A list of inventory folders
+ List getInventoryFolders(LLUUID parentID);
+
+ ///
+ /// Returns an inventory item by its UUID
+ ///
+ /// The UUID of the item to be returned
+ /// A class containing item information
+ InventoryItemBase getInventoryItem(LLUUID item);
+
+ ///
+ /// Returns a specified inventory folder by its UUID
+ ///
+ /// The UUID of the folder to be returned
+ /// A class containing folder information
+ InventoryFolderBase getInventoryFolder(LLUUID folder);
+
+ ///
+ /// Creates a new inventory item based on item
+ ///
+ /// The item to be created
+ void addInventoryItem(InventoryItemBase item);
+
+ ///
+ /// Updates an inventory item with item (updates based on ID)
+ ///
+ /// The updated item
+ void updateInventoryItem(InventoryItemBase item);
+
+ ///
+ ///
+ ///
+ ///
+ void deleteInventoryItem(InventoryItemBase item);
+
+ ///
+ /// Adds a new folder specified by folder
+ ///
+ /// The inventory folder
+ void addInventoryFolder(InventoryFolderBase folder);
+
+ ///
+ /// Updates a folder based on its ID with folder
+ ///
+ /// The inventory folder
+ void updateInventoryFolder(InventoryFolderBase folder);
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Framework/General/Types/UserProfileData.cs b/OpenSim/Framework/General/Types/UserProfileData.cs
new file mode 100644
index 0000000..20d8224
--- /dev/null
+++ b/OpenSim/Framework/General/Types/UserProfileData.cs
@@ -0,0 +1,191 @@
+/*
+* 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 libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+ ///
+ /// Information about a particular user known to the userserver
+ ///
+ public class UserProfileData
+ {
+ ///
+ /// The ID value for this user
+ ///
+ public LLUUID UUID;
+
+ ///
+ /// The first component of a users account name
+ ///
+ public string username;
+ ///
+ /// The second component of a users account name
+ ///
+ public string surname;
+
+ ///
+ /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt)
+ ///
+ /// This is double MD5'd because the client sends an unsalted MD5 to the loginserver
+ public string passwordHash;
+ ///
+ /// The salt used for the users hash, should be 32 bytes or longer
+ ///
+ public string passwordSalt;
+
+ ///
+ /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into
+ ///
+ public ulong homeRegion
+ {
+ get { return Helpers.UIntsToLong((homeRegionX * 256), (homeRegionY * 256)); }
+ set {
+ homeRegionX = (uint)(value >> 40);
+ homeRegionY = (((uint)(value)) >> 8);
+ }
+ }
+ public uint homeRegionX;
+ public uint homeRegionY;
+ ///
+ /// The coordinates inside the region of the home location
+ ///
+ public LLVector3 homeLocation;
+ ///
+ /// Where the user will be looking when they rez.
+ ///
+ public LLVector3 homeLookAt;
+
+ ///
+ /// A UNIX Timestamp (seconds since epoch) for the users creation
+ ///
+ public int created;
+ ///
+ /// A UNIX Timestamp for the users last login date / time
+ ///
+ public int lastLogin;
+
+ public LLUUID rootInventoryFolderID;
+
+ ///
+ /// A URI to the users inventory server, used for foreigners and large grids
+ ///
+ public string userInventoryURI = String.Empty;
+ ///
+ /// A URI to the users asset server, used for foreigners and large grids.
+ ///
+ public string userAssetURI = String.Empty;
+
+ ///
+ /// A uint mask containing the "I can do" fields of the users profile
+ ///
+ public uint profileCanDoMask;
+ ///
+ /// A uint mask containing the "I want to do" part of the users profile
+ ///
+ public uint profileWantDoMask; // Profile window "I want to" mask
+
+ ///
+ /// The about text listed in a users profile.
+ ///
+ public string profileAboutText = String.Empty;
+ ///
+ /// The first life about text listed in a users profile
+ ///
+ public string profileFirstText = String.Empty;
+
+ ///
+ /// The profile image for an avatar stored on the asset server
+ ///
+ public LLUUID profileImage;
+ ///
+ /// The profile image for the users first life tab
+ ///
+ public LLUUID profileFirstImage;
+ ///
+ /// The users last registered agent (filled in on the user server)
+ ///
+ public UserAgentData currentAgent;
+ }
+
+ ///
+ /// Information about a users session
+ ///
+ public class UserAgentData
+ {
+ ///
+ /// The UUID of the users avatar (not the agent!)
+ ///
+ public LLUUID UUID;
+ ///
+ /// The IP address of the user
+ ///
+ public string agentIP = String.Empty;
+ ///
+ /// The port of the user
+ ///
+ public uint agentPort;
+ ///
+ /// Is the user online?
+ ///
+ public bool agentOnline;
+ ///
+ /// The session ID for the user (also the agent ID)
+ ///
+ public LLUUID sessionID;
+ ///
+ /// The "secure" session ID for the user
+ ///
+ /// Not very secure. Dont rely on it for anything more than Linden Lab does.
+ public LLUUID secureSessionID;
+ ///
+ /// The region the user logged into initially
+ ///
+ public LLUUID regionID;
+ ///
+ /// A unix timestamp from when the user logged in
+ ///
+ public int loginTime;
+ ///
+ /// When this agent expired and logged out, 0 if still online
+ ///
+ public int logoutTime;
+ ///
+ /// Current region the user is logged into
+ ///
+ public LLUUID currentRegion;
+ ///
+ /// Region handle of the current region the user is in
+ ///
+ public ulong currentHandle;
+ ///
+ /// The position of the user within the region
+ ///
+ public LLVector3 currentPos;
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs
index 95192e3..b42427b 100644
--- a/OpenSim/Grid/UserServer/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer/UserLoginService.cs
@@ -1,83 +1,84 @@
-using System;
-using System.Collections;
-using System.Net;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.UserManagement;
-using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Configuration;
-
-namespace OpenSim.Grid.UserServer
-{
- public class UserLoginService : LoginService
- {
- public UserConfig m_config;
-
- public UserLoginService(UserManagerBase userManager, UserConfig config, string welcomeMess)
- : base(userManager, welcomeMess)
- {
- m_config = config;
- }
-
- ///
- /// Customises the login response and fills in missing values.
- ///
- /// The existing response
- /// The user profile
- public override void CustomiseResponse(LoginResponse response, UserProfileData theUser)
- {
- // Load information from the gridserver
- SimProfileData SimInfo = new SimProfileData();
- SimInfo = SimInfo.RequestSimProfileData(theUser.currentAgent.currentHandle, m_config.GridServerURL, m_config.GridSendKey, m_config.GridRecvKey);
-
- // Customise the response
- // Home Location
- response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + (SimInfo.regionLocY * 256).ToString() + "], " +
- "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
- "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "]}";
-
- // Destination
- Console.WriteLine("CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + SimInfo.regionLocY);
- response.SimAddress = Util.GetHostFromDNS(SimInfo.serverIP).ToString();
- response.SimPort = (Int32)SimInfo.serverPort;
- response.RegionX = SimInfo.regionLocX;
- response.RegionY = SimInfo.regionLocY;
-
- //Not sure if the + "/CAPS/" should in fact be +"CAPS/" depending if there is already a / as part of httpServerURI
- string capsPath = Util.GetRandomCapsPath();
- response.SeedCapability = SimInfo.httpServerURI + "CAPS/" + capsPath + "0000/";
-
- // Notify the target of an incoming user
- Console.WriteLine("Notifying " + SimInfo.regionName + " (" + SimInfo.serverURI + ")");
-
- // Prepare notification
- Hashtable SimParams = new Hashtable();
- SimParams["session_id"] = theUser.currentAgent.sessionID.ToString();
- SimParams["secure_session_id"] = theUser.currentAgent.secureSessionID.ToString();
- SimParams["firstname"] = theUser.username;
- SimParams["lastname"] = theUser.surname;
- SimParams["agent_id"] = theUser.UUID.ToString();
- SimParams["circuit_code"] = (Int32)Convert.ToUInt32(response.CircuitCode);
- SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString();
- SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString();
- SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString();
- SimParams["regionhandle"] = theUser.currentAgent.currentHandle.ToString();
- SimParams["caps_path"] = capsPath;
- ArrayList SendParams = new ArrayList();
- SendParams.Add(SimParams);
-
- // Update agent with target sim
- theUser.currentAgent.currentRegion = SimInfo.UUID;
- theUser.currentAgent.currentHandle = SimInfo.regionHandle;
-
- System.Console.WriteLine("Informing region --> " + SimInfo.httpServerURI);
+using System;
+using System.Collections;
+using System.Net;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Data;
+using OpenSim.Framework.UserManagement;
+using OpenSim.Framework.Utilities;
+using OpenSim.Framework.Configuration;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Grid.UserServer
+{
+ public class UserLoginService : LoginService
+ {
+ public UserConfig m_config;
+
+ public UserLoginService(UserManagerBase userManager, UserConfig config, string welcomeMess)
+ : base(userManager, welcomeMess)
+ {
+ m_config = config;
+ }
+
+ ///
+ /// Customises the login response and fills in missing values.
+ ///
+ /// The existing response
+ /// The user profile
+ public override void CustomiseResponse(LoginResponse response, UserProfileData theUser)
+ {
+ // Load information from the gridserver
+ SimProfileData SimInfo = new SimProfileData();
+ SimInfo = SimInfo.RequestSimProfileData(theUser.currentAgent.currentHandle, m_config.GridServerURL, m_config.GridSendKey, m_config.GridRecvKey);
+
+ // Customise the response
+ // Home Location
+ response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + (SimInfo.regionLocY * 256).ToString() + "], " +
+ "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
+ "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "]}";
+
+ // Destination
+ Console.WriteLine("CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + SimInfo.regionLocY);
+ response.SimAddress = Util.GetHostFromDNS(SimInfo.serverIP).ToString();
+ response.SimPort = (Int32)SimInfo.serverPort;
+ response.RegionX = SimInfo.regionLocX;
+ response.RegionY = SimInfo.regionLocY;
+
+ //Not sure if the + "/CAPS/" should in fact be +"CAPS/" depending if there is already a / as part of httpServerURI
+ string capsPath = Util.GetRandomCapsPath();
+ response.SeedCapability = SimInfo.httpServerURI + "CAPS/" + capsPath + "0000/";
+
+ // Notify the target of an incoming user
+ Console.WriteLine("Notifying " + SimInfo.regionName + " (" + SimInfo.serverURI + ")");
+
+ // Prepare notification
+ Hashtable SimParams = new Hashtable();
+ SimParams["session_id"] = theUser.currentAgent.sessionID.ToString();
+ SimParams["secure_session_id"] = theUser.currentAgent.secureSessionID.ToString();
+ SimParams["firstname"] = theUser.username;
+ SimParams["lastname"] = theUser.surname;
+ SimParams["agent_id"] = theUser.UUID.ToString();
+ SimParams["circuit_code"] = (Int32)Convert.ToUInt32(response.CircuitCode);
+ SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString();
+ SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString();
+ SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString();
+ SimParams["regionhandle"] = theUser.currentAgent.currentHandle.ToString();
+ SimParams["caps_path"] = capsPath;
+ ArrayList SendParams = new ArrayList();
+ SendParams.Add(SimParams);
+
+ // Update agent with target sim
+ theUser.currentAgent.currentRegion = SimInfo.UUID;
+ theUser.currentAgent.currentHandle = SimInfo.regionHandle;
+
+ System.Console.WriteLine("Informing region --> " + SimInfo.httpServerURI);
// Send
try
{
XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams);
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
- }
- catch( WebException e )
+ }
+ catch( WebException e )
{
switch( e.Status )
{
@@ -88,8 +89,8 @@ namespace OpenSim.Grid.UserServer
default:
throw;
}
- }
- }
- }
-}
-
+ }
+ }
+ }
+}
+
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs
index 1fbd421..5db4901 100644
--- a/OpenSim/Grid/UserServer/UserManager.cs
+++ b/OpenSim/Grid/UserServer/UserManager.cs
@@ -29,7 +29,7 @@ using System;
using System.Collections;
using System.Net;
using Nwc.XmlRpc;
-using OpenSim.Framework.Data;
+using OpenSim.Framework.Types;
using OpenSim.Framework.UserManagement;
using OpenSim.Framework.Utilities;
using libsecondlife;
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index 253807c..ed3c16c 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -35,7 +35,6 @@ using libsecondlife.Packets;
using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Utilities;
namespace OpenSim.Region.ClientStack
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 6ae8b65..62e2afd 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -31,7 +31,6 @@ using System.Net;
using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Console;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Types;
diff --git a/OpenSim/Region/Communications/Local/LocalInventoryService.cs b/OpenSim/Region/Communications/Local/LocalInventoryService.cs
index 53f6ffa..dc91663 100644
--- a/OpenSim/Region/Communications/Local/LocalInventoryService.cs
+++ b/OpenSim/Region/Communications/Local/LocalInventoryService.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using libsecondlife;
using OpenSim.Framework.Communications;
-using OpenSim.Framework.Data;
+using OpenSim.Framework.Types;
using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder;
namespace OpenSim.Region.Communications.Local
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs
index ab8e397..9835583 100644
--- a/OpenSim/Region/Communications/Local/LocalLoginService.cs
+++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs
@@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic;
using libsecondlife;
using OpenSim.Framework.Communications;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Types;
using OpenSim.Framework.UserManagement;
using OpenSim.Framework.Utilities;
diff --git a/OpenSim/Region/Communications/Local/LocalUserServices.cs b/OpenSim/Region/Communications/Local/LocalUserServices.cs
index 4e75eb0..ac680ca 100644
--- a/OpenSim/Region/Communications/Local/LocalUserServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalUserServices.cs
@@ -1,6 +1,5 @@
using System;
using OpenSim.Framework.Communications;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Types;
using OpenSim.Framework.UserManagement;
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
index 45188c1..f364771 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using libsecondlife;
using OpenSim.Framework.Communications;
-using OpenSim.Framework.Data;
+using OpenSim.Framework.Types;
using InventoryFolder = OpenSim.Framework.Communications.Caches.InventoryFolder;
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
index 90fef86..32f39b4 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
@@ -2,8 +2,8 @@ using System;
using System.Collections;
using libsecondlife;
using Nwc.XmlRpc;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
namespace OpenSim.Region.Communications.OGS1
{
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index bcc02ea..b7f5bad 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1,8 +1,8 @@
using Axiom.Math;
using libsecondlife;
using libsecondlife.Packets;
+using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Caches;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index da9f366..5989879 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -6,7 +6,6 @@ using System.Xml;
using Axiom.Math;
using libsecondlife;
using libsecondlife.Packets;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Region.Environment.Interfaces;
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
index 7836199..41dea8e 100644
--- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
@@ -3,7 +3,6 @@ using System.Net;
using System.Text;
using libsecondlife;
using libsecondlife.Packets;
-using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Framework.Utilities;
--
cgit v1.1