aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Data')
-rw-r--r--OpenSim/Framework/Data/InventoryData.cs222
-rw-r--r--OpenSim/Framework/Data/UserData.cs134
-rw-r--r--OpenSim/Framework/Data/UserProfileData.cs192
3 files changed, 0 insertions, 548 deletions
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 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System.Collections.Generic;
29using libsecondlife;
30
31namespace OpenSim.Framework.Data
32{
33 /// <summary>
34 /// Inventory Item - contains all the properties associated with an individual inventory piece.
35 /// </summary>
36 public class InventoryItemBase
37 {
38 /// <summary>
39 /// A UUID containing the ID for the inventory item itself
40 /// </summary>
41 public LLUUID inventoryID;
42 /// <summary>
43 /// The UUID of the associated asset on the asset server
44 /// </summary>
45 public LLUUID assetID;
46 /// <summary>
47 /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
48 /// </summary>
49 public int assetType;
50 /// <summary>
51 /// The type of inventory item. (Can be slightly different to the asset type
52 /// </summary>
53 public int invType;
54 /// <summary>
55 /// The folder this item is contained in
56 /// </summary>
57 public LLUUID parentFolderID;
58 /// <summary>
59 /// The owner of this inventory item
60 /// </summary>
61 public LLUUID avatarID;
62 /// <summary>
63 /// The creator of this item
64 /// </summary>
65 public LLUUID creatorsID;
66 /// <summary>
67 /// The name of the inventory item (must be less than 64 characters)
68 /// </summary>
69 public string inventoryName;
70 /// <summary>
71 /// The description of the inventory item (must be less than 64 characters)
72 /// </summary>
73 public string inventoryDescription;
74 /// <summary>
75 /// A mask containing the permissions for the next owner (cannot be enforced)
76 /// </summary>
77 public uint inventoryNextPermissions;
78 /// <summary>
79 /// A mask containing permissions for the current owner (cannot be enforced)
80 /// </summary>
81 public uint inventoryCurrentPermissions;
82 /// <summary>
83 ///
84 /// </summary>
85 public uint inventoryBasePermissions;
86 /// <summary>
87 ///
88 /// </summary>
89 public uint inventoryEveryOnePermissions;
90 }
91
92 /// <summary>
93 /// A Class for folders which contain users inventory
94 /// </summary>
95 public class InventoryFolderBase
96 {
97 /// <summary>
98 /// The name of the folder (64 characters or less)
99 /// </summary>
100 public string name;
101 /// <summary>
102 /// The agent who's inventory this is contained by
103 /// </summary>
104 public LLUUID agentID;
105 /// <summary>
106 /// The folder this folder is contained in
107 /// </summary>
108 public LLUUID parentID;
109 /// <summary>
110 /// The UUID for this folder
111 /// </summary>
112 public LLUUID folderID;
113 /// <summary>
114 /// Tyep of Items normally stored in this folder
115 /// </summary>
116 public short type;
117 /// <summary>
118 ///
119 /// </summary>
120 public ushort version;
121 }
122
123 /// <summary>
124 /// An interface for accessing inventory data from a storage server
125 /// </summary>
126 public interface IInventoryData
127 {
128 /// <summary>
129 /// Initialises the interface
130 /// </summary>
131 void Initialise();
132
133 /// <summary>
134 /// Closes the interface
135 /// </summary>
136 void Close();
137
138 /// <summary>
139 /// The plugin being loaded
140 /// </summary>
141 /// <returns>A string containing the plugin name</returns>
142 string getName();
143
144 /// <summary>
145 /// The plugins version
146 /// </summary>
147 /// <returns>A string containing the plugin version</returns>
148 string getVersion();
149
150 /// <summary>
151 /// Returns a list of inventory items contained within the specified folder
152 /// </summary>
153 /// <param name="folderID">The UUID of the target folder</param>
154 /// <returns>A List of InventoryItemBase items</returns>
155 List<InventoryItemBase> getInventoryInFolder(LLUUID folderID);
156
157 /// <summary>
158 /// Returns a list of the root folders within a users inventory
159 /// </summary>
160 /// <param name="user">The user whos inventory is to be searched</param>
161 /// <returns>A list of folder objects</returns>
162 List<InventoryFolderBase> getUserRootFolders(LLUUID user);
163
164 /// <summary>
165 /// Returns the users inventory root folder.
166 /// </summary>
167 /// <param name="user">The UUID of the user who is having inventory being returned</param>
168 /// <returns>Root inventory folder</returns>
169 InventoryFolderBase getUserRootFolder(LLUUID user);
170
171 /// <summary>
172 /// Returns a list of inventory folders contained in the folder 'parentID'
173 /// </summary>
174 /// <param name="parentID">The folder to get subfolders for</param>
175 /// <returns>A list of inventory folders</returns>
176 List<InventoryFolderBase> getInventoryFolders(LLUUID parentID);
177
178 /// <summary>
179 /// Returns an inventory item by its UUID
180 /// </summary>
181 /// <param name="item">The UUID of the item to be returned</param>
182 /// <returns>A class containing item information</returns>
183 InventoryItemBase getInventoryItem(LLUUID item);
184
185 /// <summary>
186 /// Returns a specified inventory folder by its UUID
187 /// </summary>
188 /// <param name="folder">The UUID of the folder to be returned</param>
189 /// <returns>A class containing folder information</returns>
190 InventoryFolderBase getInventoryFolder(LLUUID folder);
191
192 /// <summary>
193 /// Creates a new inventory item based on item
194 /// </summary>
195 /// <param name="item">The item to be created</param>
196 void addInventoryItem(InventoryItemBase item);
197
198 /// <summary>
199 /// Updates an inventory item with item (updates based on ID)
200 /// </summary>
201 /// <param name="item">The updated item</param>
202 void updateInventoryItem(InventoryItemBase item);
203
204 /// <summary>
205 ///
206 /// </summary>
207 /// <param name="item"></param>
208 void deleteInventoryItem(InventoryItemBase item);
209
210 /// <summary>
211 /// Adds a new folder specified by folder
212 /// </summary>
213 /// <param name="folder">The inventory folder</param>
214 void addInventoryFolder(InventoryFolderBase folder);
215
216 /// <summary>
217 /// Updates a folder based on its ID with folder
218 /// </summary>
219 /// <param name="folder">The inventory folder</param>
220 void updateInventoryFolder(InventoryFolderBase folder);
221 }
222}
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 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using libsecondlife;
29
30namespace OpenSim.Framework.Data
31{
32 /// <summary>
33 /// An interface for connecting to user storage servers.
34 /// </summary>
35 public interface IUserData
36 {
37 /// <summary>
38 /// Returns a user profile from a database via their UUID
39 /// </summary>
40 /// <param name="user">The accounts UUID</param>
41 /// <returns>The user data profile</returns>
42 UserProfileData GetUserByUUID(LLUUID user);
43
44 /// <summary>
45 /// Returns a users profile by searching their username
46 /// </summary>
47 /// <param name="name">The users username</param>
48 /// <returns>The user data profile</returns>
49 UserProfileData GetUserByName(string name);
50
51 /// <summary>
52 /// Returns a users profile by searching their username parts
53 /// </summary>
54 /// <param name="fname">Account firstname</param>
55 /// <param name="lname">Account lastname</param>
56 /// <returns>The user data profile</returns>
57 UserProfileData GetUserByName(string fname, string lname);
58
59 /// <summary>
60 /// Returns the current agent for a user searching by it's UUID
61 /// </summary>
62 /// <param name="user">The users UUID</param>
63 /// <returns>The current agent session</returns>
64 UserAgentData GetAgentByUUID(LLUUID user);
65
66 /// <summary>
67 /// Returns the current session agent for a user searching by username
68 /// </summary>
69 /// <param name="name">The users account name</param>
70 /// <returns>The current agent session</returns>
71 UserAgentData GetAgentByName(string name);
72
73 /// <summary>
74 /// Returns the current session agent for a user searching by username parts
75 /// </summary>
76 /// <param name="fname">The users first account name</param>
77 /// <param name="lname">The users account surname</param>
78 /// <returns>The current agent session</returns>
79 UserAgentData GetAgentByName(string fname, string lname);
80
81 /// <summary>
82 /// Adds a new User profile to the database
83 /// </summary>
84 /// <param name="user">UserProfile to add</param>
85 void AddNewUserProfile(UserProfileData user);
86
87 /// <summary>
88 /// Updates an existing user profile
89 /// </summary>
90 /// <param name="user">UserProfile to update</param>
91 bool UpdateUserProfile(UserProfileData user);
92
93 /// <summary>
94 /// Adds a new agent to the database
95 /// </summary>
96 /// <param name="agent">The agent to add</param>
97 void AddNewUserAgent(UserAgentData agent);
98
99 /// <summary>
100 /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
101 /// </summary>
102 /// <param name="from">The account to transfer from</param>
103 /// <param name="to">The account to transfer to</param>
104 /// <param name="amount">The amount to transfer</param>
105 /// <returns>Successful?</returns>
106 bool MoneyTransferRequest(LLUUID from, LLUUID to, uint amount);
107
108 /// <summary>
109 /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
110 /// </summary>
111 /// <param name="from">User to transfer from</param>
112 /// <param name="to">User to transfer to</param>
113 /// <param name="inventory">Specified inventory item</param>
114 /// <returns>Successful?</returns>
115 bool InventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
116
117 /// <summary>
118 /// Returns the plugin version
119 /// </summary>
120 /// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns>
121 string GetVersion();
122
123 /// <summary>
124 /// Returns the plugin name
125 /// </summary>
126 /// <returns>Plugin name, eg MySQL User Provider</returns>
127 string getName();
128
129 /// <summary>
130 /// Initialises the plugin (artificial constructor)
131 /// </summary>
132 void Initialise();
133 }
134}
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 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System;
29using libsecondlife;
30
31namespace OpenSim.Framework.Data
32{
33 /// <summary>
34 /// Information about a particular user known to the userserver
35 /// </summary>
36 public class UserProfileData
37 {
38 /// <summary>
39 /// The ID value for this user
40 /// </summary>
41 public LLUUID UUID;
42
43 /// <summary>
44 /// The first component of a users account name
45 /// </summary>
46 public string username;
47 /// <summary>
48 /// The second component of a users account name
49 /// </summary>
50 public string surname;
51
52 /// <summary>
53 /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt)
54 /// </summary>
55 /// <remarks>This is double MD5'd because the client sends an unsalted MD5 to the loginserver</remarks>
56 public string passwordHash;
57 /// <summary>
58 /// The salt used for the users hash, should be 32 bytes or longer
59 /// </summary>
60 public string passwordSalt;
61
62 /// <summary>
63 /// 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
64 /// </summary>
65 public ulong homeRegion
66 {
67 get { return Helpers.UIntsToLong((homeRegionX * 256), (homeRegionY * 256)); }
68 set {
69 homeRegionX = (uint)(value >> 40);
70 homeRegionY = (((uint)(value)) >> 8);
71 Console.WriteLine("HomeRegion => Incoming: " + value + ", Computed: " + homeRegion);
72 }
73 }
74 public uint homeRegionX;
75 public uint homeRegionY;
76 /// <summary>
77 /// The coordinates inside the region of the home location
78 /// </summary>
79 public LLVector3 homeLocation;
80 /// <summary>
81 /// Where the user will be looking when they rez.
82 /// </summary>
83 public LLVector3 homeLookAt;
84
85 /// <summary>
86 /// A UNIX Timestamp (seconds since epoch) for the users creation
87 /// </summary>
88 public int created;
89 /// <summary>
90 /// A UNIX Timestamp for the users last login date / time
91 /// </summary>
92 public int lastLogin;
93
94 public LLUUID rootInventoryFolderID;
95
96 /// <summary>
97 /// A URI to the users inventory server, used for foreigners and large grids
98 /// </summary>
99 public string userInventoryURI = String.Empty;
100 /// <summary>
101 /// A URI to the users asset server, used for foreigners and large grids.
102 /// </summary>
103 public string userAssetURI = String.Empty;
104
105 /// <summary>
106 /// A uint mask containing the "I can do" fields of the users profile
107 /// </summary>
108 public uint profileCanDoMask;
109 /// <summary>
110 /// A uint mask containing the "I want to do" part of the users profile
111 /// </summary>
112 public uint profileWantDoMask; // Profile window "I want to" mask
113
114 /// <summary>
115 /// The about text listed in a users profile.
116 /// </summary>
117 public string profileAboutText = String.Empty;
118 /// <summary>
119 /// The first life about text listed in a users profile
120 /// </summary>
121 public string profileFirstText = String.Empty;
122
123 /// <summary>
124 /// The profile image for an avatar stored on the asset server
125 /// </summary>
126 public LLUUID profileImage;
127 /// <summary>
128 /// The profile image for the users first life tab
129 /// </summary>
130 public LLUUID profileFirstImage;
131 /// <summary>
132 /// The users last registered agent (filled in on the user server)
133 /// </summary>
134 public UserAgentData currentAgent;
135 }
136
137 /// <summary>
138 /// Information about a users session
139 /// </summary>
140 public class UserAgentData
141 {
142 /// <summary>
143 /// The UUID of the users avatar (not the agent!)
144 /// </summary>
145 public LLUUID UUID;
146 /// <summary>
147 /// The IP address of the user
148 /// </summary>
149 public string agentIP = String.Empty;
150 /// <summary>
151 /// The port of the user
152 /// </summary>
153 public uint agentPort;
154 /// <summary>
155 /// Is the user online?
156 /// </summary>
157 public bool agentOnline;
158 /// <summary>
159 /// The session ID for the user (also the agent ID)
160 /// </summary>
161 public LLUUID sessionID;
162 /// <summary>
163 /// The "secure" session ID for the user
164 /// </summary>
165 /// <remarks>Not very secure. Dont rely on it for anything more than Linden Lab does.</remarks>
166 public LLUUID secureSessionID;
167 /// <summary>
168 /// The region the user logged into initially
169 /// </summary>
170 public LLUUID regionID;
171 /// <summary>
172 /// A unix timestamp from when the user logged in
173 /// </summary>
174 public int loginTime;
175 /// <summary>
176 /// When this agent expired and logged out, 0 if still online
177 /// </summary>
178 public int logoutTime;
179 /// <summary>
180 /// Current region the user is logged into
181 /// </summary>
182 public LLUUID currentRegion;
183 /// <summary>
184 /// Region handle of the current region the user is in
185 /// </summary>
186 public ulong currentHandle;
187 /// <summary>
188 /// The position of the user within the region
189 /// </summary>
190 public LLVector3 currentPos;
191 }
192}