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 ++++++++++++++++++
25 files changed, 566 insertions(+), 573 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/Framework')
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
--
cgit v1.1