diff options
Switched in NameSpaceChanges
Diffstat (limited to 'OpenSim/Framework/Data')
-rw-r--r-- | OpenSim/Framework/Data/GridData.cs | 113 | ||||
-rw-r--r-- | OpenSim/Framework/Data/ILogData.cs | 94 | ||||
-rw-r--r-- | OpenSim/Framework/Data/IniConfig.cs | 100 | ||||
-rw-r--r-- | OpenSim/Framework/Data/InventoryData.cs | 187 | ||||
-rw-r--r-- | OpenSim/Framework/Data/OpenSim.Framework.Data.csproj | 116 | ||||
-rw-r--r-- | OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build | 50 | ||||
-rw-r--r-- | OpenSim/Framework/Data/Properties/AssemblyInfo.cs | 35 | ||||
-rw-r--r-- | OpenSim/Framework/Data/ReservationData.cs | 51 | ||||
-rw-r--r-- | OpenSim/Framework/Data/SimProfileData.cs | 114 | ||||
-rw-r--r-- | OpenSim/Framework/Data/UserData.cs | 131 | ||||
-rw-r--r-- | OpenSim/Framework/Data/UserProfileData.cs | 182 |
11 files changed, 1173 insertions, 0 deletions
diff --git a/OpenSim/Framework/Data/GridData.cs b/OpenSim/Framework/Data/GridData.cs new file mode 100644 index 0000000..7f8fdaf --- /dev/null +++ b/OpenSim/Framework/Data/GridData.cs | |||
@@ -0,0 +1,113 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | |||
32 | namespace OpenSim.Framework.Data | ||
33 | { | ||
34 | public enum DataResponse | ||
35 | { | ||
36 | RESPONSE_OK, | ||
37 | RESPONSE_AUTHREQUIRED, | ||
38 | RESPONSE_INVALIDCREDENTIALS, | ||
39 | RESPONSE_ERROR | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// A standard grid interface | ||
44 | /// </summary> | ||
45 | public interface IGridData | ||
46 | { | ||
47 | /// <summary> | ||
48 | /// Returns a sim profile from a regionHandle | ||
49 | /// </summary> | ||
50 | /// <param name="regionHandle">A 64bit Region Handle</param> | ||
51 | /// <returns>A simprofile</returns> | ||
52 | SimProfileData GetProfileByHandle(ulong regionHandle); | ||
53 | |||
54 | /// <summary> | ||
55 | /// Returns a sim profile from a UUID | ||
56 | /// </summary> | ||
57 | /// <param name="UUID">A 128bit UUID</param> | ||
58 | /// <returns>A sim profile</returns> | ||
59 | SimProfileData GetProfileByLLUUID(libsecondlife.LLUUID UUID); | ||
60 | |||
61 | /// <summary> | ||
62 | /// Returns all profiles within the specified range | ||
63 | /// </summary> | ||
64 | /// <param name="Xmin">Minimum sim coordinate (X)</param> | ||
65 | /// <param name="Ymin">Minimum sim coordinate (Y)</param> | ||
66 | /// <param name="Xmax">Maximum sim coordinate (X)</param> | ||
67 | /// <param name="Ymin">Maximum sim coordinate (Y)</param> | ||
68 | /// <returns>An array containing all the sim profiles in the specified range</returns> | ||
69 | SimProfileData[] GetProfilesInRange(uint Xmin, uint Ymin, uint Xmax, uint Ymax); | ||
70 | |||
71 | /// <summary> | ||
72 | /// Authenticates a sim by use of it's recv key. | ||
73 | /// WARNING: Insecure | ||
74 | /// </summary> | ||
75 | /// <param name="UUID">The UUID sent by the sim</param> | ||
76 | /// <param name="regionHandle">The regionhandle sent by the sim</param> | ||
77 | /// <param name="simrecvkey">The recieving key sent by the sim</param> | ||
78 | /// <returns>Whether the sim has been authenticated</returns> | ||
79 | bool AuthenticateSim(libsecondlife.LLUUID UUID, ulong regionHandle, string simrecvkey); | ||
80 | |||
81 | /// <summary> | ||
82 | /// Initialises the interface | ||
83 | /// </summary> | ||
84 | void Initialise(); | ||
85 | |||
86 | /// <summary> | ||
87 | /// Closes the interface | ||
88 | /// </summary> | ||
89 | void Close(); | ||
90 | |||
91 | /// <summary> | ||
92 | /// The plugin being loaded | ||
93 | /// </summary> | ||
94 | /// <returns>A string containing the plugin name</returns> | ||
95 | string getName(); | ||
96 | |||
97 | /// <summary> | ||
98 | /// The plugins version | ||
99 | /// </summary> | ||
100 | /// <returns>A string containing the plugin version</returns> | ||
101 | string getVersion(); | ||
102 | |||
103 | /// <summary> | ||
104 | /// Adds a new profile to the database | ||
105 | /// </summary> | ||
106 | /// <param name="profile">The profile to add</param> | ||
107 | /// <returns>RESPONSE_OK if successful, error if not.</returns> | ||
108 | DataResponse AddProfile(SimProfileData profile); | ||
109 | |||
110 | ReservationData GetReservationAtPoint(uint x, uint y); | ||
111 | |||
112 | } | ||
113 | } | ||
diff --git a/OpenSim/Framework/Data/ILogData.cs b/OpenSim/Framework/Data/ILogData.cs new file mode 100644 index 0000000..ccb3b84 --- /dev/null +++ b/OpenSim/Framework/Data/ILogData.cs | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | |||
32 | namespace OpenSim.Framework.Data | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// The severity of an individual log message | ||
36 | /// </summary> | ||
37 | public enum LogSeverity : int | ||
38 | { | ||
39 | /// <summary> | ||
40 | /// Critical: systems failure | ||
41 | /// </summary> | ||
42 | CRITICAL = 1, | ||
43 | /// <summary> | ||
44 | /// Major: warning prior to systems failure | ||
45 | /// </summary> | ||
46 | MAJOR = 2, | ||
47 | /// <summary> | ||
48 | /// Medium: an individual non-critical task failed | ||
49 | /// </summary> | ||
50 | MEDIUM = 3, | ||
51 | /// <summary> | ||
52 | /// Low: Informational warning | ||
53 | /// </summary> | ||
54 | LOW = 4, | ||
55 | /// <summary> | ||
56 | /// Info: Information | ||
57 | /// </summary> | ||
58 | INFO = 5, | ||
59 | /// <summary> | ||
60 | /// Verbose: Debug Information | ||
61 | /// </summary> | ||
62 | VERBOSE = 6 | ||
63 | } | ||
64 | |||
65 | /// <summary> | ||
66 | /// An interface to a LogData storage system | ||
67 | /// </summary> | ||
68 | public interface ILogData | ||
69 | { | ||
70 | void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority,string logMessage); | ||
71 | /// <summary> | ||
72 | /// Initialises the interface | ||
73 | /// </summary> | ||
74 | void Initialise(); | ||
75 | |||
76 | /// <summary> | ||
77 | /// Closes the interface | ||
78 | /// </summary> | ||
79 | void Close(); | ||
80 | |||
81 | /// <summary> | ||
82 | /// The plugin being loaded | ||
83 | /// </summary> | ||
84 | /// <returns>A string containing the plugin name</returns> | ||
85 | string getName(); | ||
86 | |||
87 | /// <summary> | ||
88 | /// The plugins version | ||
89 | /// </summary> | ||
90 | /// <returns>A string containing the plugin version</returns> | ||
91 | string getVersion(); | ||
92 | } | ||
93 | |||
94 | } | ||
diff --git a/OpenSim/Framework/Data/IniConfig.cs b/OpenSim/Framework/Data/IniConfig.cs new file mode 100644 index 0000000..2f002c1 --- /dev/null +++ b/OpenSim/Framework/Data/IniConfig.cs | |||
@@ -0,0 +1,100 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using System.IO; | ||
32 | using System.Text.RegularExpressions; | ||
33 | |||
34 | /* | ||
35 | Taken from public code listing at by Alex Pinsker | ||
36 | http://alexpinsker.blogspot.com/2005/12/reading-ini-file-from-c_113432097333021549.html | ||
37 | */ | ||
38 | |||
39 | namespace OpenSim.Framework.Data | ||
40 | { | ||
41 | /// <summary> | ||
42 | /// Parse settings from ini-like files | ||
43 | /// </summary> | ||
44 | public class IniFile | ||
45 | { | ||
46 | static IniFile() | ||
47 | { | ||
48 | _iniKeyValuePatternRegex = new Regex( | ||
49 | @"((\s)*(?<Key>([^\=^\s^\n]+))[\s^\n]* | ||
50 | # key part (surrounding whitespace stripped) | ||
51 | \= | ||
52 | (\s)*(?<Value>([^\n^\s]+(\n){0,1}))) | ||
53 | # value part (surrounding whitespace stripped) | ||
54 | ", | ||
55 | RegexOptions.IgnorePatternWhitespace | | ||
56 | RegexOptions.Compiled | | ||
57 | RegexOptions.CultureInvariant); | ||
58 | } | ||
59 | static private Regex _iniKeyValuePatternRegex; | ||
60 | |||
61 | public IniFile(string iniFileName) | ||
62 | { | ||
63 | _iniFileName = iniFileName; | ||
64 | } | ||
65 | |||
66 | public string ParseFileReadValue(string key) | ||
67 | { | ||
68 | using (StreamReader reader = | ||
69 | new StreamReader(_iniFileName)) | ||
70 | { | ||
71 | do | ||
72 | { | ||
73 | string line = reader.ReadLine(); | ||
74 | Match match = | ||
75 | _iniKeyValuePatternRegex.Match(line); | ||
76 | if (match.Success) | ||
77 | { | ||
78 | string currentKey = | ||
79 | match.Groups["Key"].Value as string; | ||
80 | if (currentKey != null && | ||
81 | currentKey.Trim().CompareTo(key) == 0) | ||
82 | { | ||
83 | string value = | ||
84 | match.Groups["Value"].Value as string; | ||
85 | return value; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | } | ||
90 | while (reader.Peek() != -1); | ||
91 | } | ||
92 | return null; | ||
93 | } | ||
94 | |||
95 | public string IniFileName | ||
96 | { | ||
97 | get { return _iniFileName; } | ||
98 | } private string _iniFileName; | ||
99 | } | ||
100 | } | ||
diff --git a/OpenSim/Framework/Data/InventoryData.cs b/OpenSim/Framework/Data/InventoryData.cs new file mode 100644 index 0000000..8a3a664 --- /dev/null +++ b/OpenSim/Framework/Data/InventoryData.cs | |||
@@ -0,0 +1,187 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using libsecondlife; | ||
32 | |||
33 | namespace OpenSim.Framework.Data | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Inventory Item - contains all the properties associated with an individual inventory piece. | ||
37 | /// </summary> | ||
38 | public class InventoryItemBase | ||
39 | { | ||
40 | /// <summary> | ||
41 | /// A UUID containing the ID for the inventory item itself | ||
42 | /// </summary> | ||
43 | public LLUUID inventoryID; | ||
44 | /// <summary> | ||
45 | /// The UUID of the associated asset on the asset server | ||
46 | /// </summary> | ||
47 | public LLUUID assetID; | ||
48 | /// <summary> | ||
49 | /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc) | ||
50 | /// </summary> | ||
51 | public int type; | ||
52 | /// <summary> | ||
53 | /// The folder this item is contained in (NULL_KEY = Inventory Root) | ||
54 | /// </summary> | ||
55 | public LLUUID parentFolderID; | ||
56 | /// <summary> | ||
57 | /// The owner of this inventory item | ||
58 | /// </summary> | ||
59 | public LLUUID avatarID; | ||
60 | /// <summary> | ||
61 | /// The name of the inventory item (must be less than 64 characters) | ||
62 | /// </summary> | ||
63 | public string inventoryName; | ||
64 | /// <summary> | ||
65 | /// The description of the inventory item (must be less than 64 characters) | ||
66 | /// </summary> | ||
67 | public string inventoryDescription; | ||
68 | /// <summary> | ||
69 | /// A mask containing the permissions for the next owner (cannot be enforced) | ||
70 | /// </summary> | ||
71 | public uint inventoryNextPermissions; | ||
72 | /// <summary> | ||
73 | /// A mask containing permissions for the current owner (cannot be enforced) | ||
74 | /// </summary> | ||
75 | public uint inventoryCurrentPermissions; | ||
76 | } | ||
77 | |||
78 | /// <summary> | ||
79 | /// A Class for folders which contain users inventory | ||
80 | /// </summary> | ||
81 | public class InventoryFolderBase | ||
82 | { | ||
83 | /// <summary> | ||
84 | /// The name of the folder (64 characters or less) | ||
85 | /// </summary> | ||
86 | public string name; | ||
87 | /// <summary> | ||
88 | /// The agent who's inventory this is contained by | ||
89 | /// </summary> | ||
90 | public LLUUID agentID; | ||
91 | /// <summary> | ||
92 | /// The folder this folder is contained in (NULL_KEY for root) | ||
93 | /// </summary> | ||
94 | public LLUUID parentID; | ||
95 | /// <summary> | ||
96 | /// The UUID for this folder | ||
97 | /// </summary> | ||
98 | public LLUUID folderID; | ||
99 | } | ||
100 | |||
101 | /// <summary> | ||
102 | /// An interface for accessing inventory data from a storage server | ||
103 | /// </summary> | ||
104 | public interface IInventoryData | ||
105 | { | ||
106 | /// <summary> | ||
107 | /// Initialises the interface | ||
108 | /// </summary> | ||
109 | void Initialise(); | ||
110 | |||
111 | /// <summary> | ||
112 | /// Closes the interface | ||
113 | /// </summary> | ||
114 | void Close(); | ||
115 | |||
116 | /// <summary> | ||
117 | /// The plugin being loaded | ||
118 | /// </summary> | ||
119 | /// <returns>A string containing the plugin name</returns> | ||
120 | string getName(); | ||
121 | |||
122 | /// <summary> | ||
123 | /// The plugins version | ||
124 | /// </summary> | ||
125 | /// <returns>A string containing the plugin version</returns> | ||
126 | string getVersion(); | ||
127 | |||
128 | /// <summary> | ||
129 | /// Returns a list of inventory items contained within the specified folder | ||
130 | /// </summary> | ||
131 | /// <param name="folderID">The UUID of the target folder</param> | ||
132 | /// <returns>A List of InventoryItemBase items</returns> | ||
133 | List<InventoryItemBase> getInventoryInFolder(LLUUID folderID); | ||
134 | |||
135 | /// <summary> | ||
136 | /// Returns a list of folders in the users inventory root. | ||
137 | /// </summary> | ||
138 | /// <param name="user">The UUID of the user who is having inventory being returned</param> | ||
139 | /// <returns>A list of folders</returns> | ||
140 | List<InventoryFolderBase> getUserRootFolders(LLUUID user); | ||
141 | |||
142 | /// <summary> | ||
143 | /// Returns a list of inventory folders contained in the folder 'parentID' | ||
144 | /// </summary> | ||
145 | /// <param name="parentID">The folder to get subfolders for</param> | ||
146 | /// <returns>A list of inventory folders</returns> | ||
147 | List<InventoryFolderBase> getInventoryFolders(LLUUID parentID); | ||
148 | |||
149 | /// <summary> | ||
150 | /// Returns an inventory item by its UUID | ||
151 | /// </summary> | ||
152 | /// <param name="item">The UUID of the item to be returned</param> | ||
153 | /// <returns>A class containing item information</returns> | ||
154 | InventoryItemBase getInventoryItem(LLUUID item); | ||
155 | |||
156 | /// <summary> | ||
157 | /// Returns a specified inventory folder by its UUID | ||
158 | /// </summary> | ||
159 | /// <param name="folder">The UUID of the folder to be returned</param> | ||
160 | /// <returns>A class containing folder information</returns> | ||
161 | InventoryFolderBase getInventoryFolder(LLUUID folder); | ||
162 | |||
163 | /// <summary> | ||
164 | /// Creates a new inventory item based on item | ||
165 | /// </summary> | ||
166 | /// <param name="item">The item to be created</param> | ||
167 | void addInventoryItem(InventoryItemBase item); | ||
168 | |||
169 | /// <summary> | ||
170 | /// Updates an inventory item with item (updates based on ID) | ||
171 | /// </summary> | ||
172 | /// <param name="item">The updated item</param> | ||
173 | void updateInventoryItem(InventoryItemBase item); | ||
174 | |||
175 | /// <summary> | ||
176 | /// Adds a new folder specified by folder | ||
177 | /// </summary> | ||
178 | /// <param name="folder">The inventory folder</param> | ||
179 | void addInventoryFolder(InventoryFolderBase folder); | ||
180 | |||
181 | /// <summary> | ||
182 | /// Updates a folder based on its ID with folder | ||
183 | /// </summary> | ||
184 | /// <param name="folder">The inventory folder</param> | ||
185 | void updateInventoryFolder(InventoryFolderBase folder); | ||
186 | } | ||
187 | } | ||
diff --git a/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj b/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj new file mode 100644 index 0000000..dcafbcd --- /dev/null +++ b/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj | |||
@@ -0,0 +1,116 @@ | |||
1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
2 | <PropertyGroup> | ||
3 | <ProjectType>Local</ProjectType> | ||
4 | <ProductVersion>8.0.50727</ProductVersion> | ||
5 | <SchemaVersion>2.0</SchemaVersion> | ||
6 | <ProjectGuid>{36B72A9B-0000-0000-0000-000000000000}</ProjectGuid> | ||
7 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
8 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
9 | <ApplicationIcon></ApplicationIcon> | ||
10 | <AssemblyKeyContainerName> | ||
11 | </AssemblyKeyContainerName> | ||
12 | <AssemblyName>OpenSim.Framework.Data</AssemblyName> | ||
13 | <DefaultClientScript>JScript</DefaultClientScript> | ||
14 | <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> | ||
15 | <DefaultTargetSchema>IE50</DefaultTargetSchema> | ||
16 | <DelaySign>false</DelaySign> | ||
17 | <OutputType>Library</OutputType> | ||
18 | <AppDesignerFolder></AppDesignerFolder> | ||
19 | <RootNamespace>OpenSim.Framework.Data</RootNamespace> | ||
20 | <StartupObject></StartupObject> | ||
21 | <FileUpgradeFlags> | ||
22 | </FileUpgradeFlags> | ||
23 | </PropertyGroup> | ||
24 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
25 | <AllowUnsafeBlocks>False</AllowUnsafeBlocks> | ||
26 | <BaseAddress>285212672</BaseAddress> | ||
27 | <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> | ||
28 | <ConfigurationOverrideFile> | ||
29 | </ConfigurationOverrideFile> | ||
30 | <DefineConstants>TRACE;DEBUG</DefineConstants> | ||
31 | <DocumentationFile></DocumentationFile> | ||
32 | <DebugSymbols>True</DebugSymbols> | ||
33 | <FileAlignment>4096</FileAlignment> | ||
34 | <Optimize>False</Optimize> | ||
35 | <OutputPath>..\..\..\bin\</OutputPath> | ||
36 | <RegisterForComInterop>False</RegisterForComInterop> | ||
37 | <RemoveIntegerChecks>False</RemoveIntegerChecks> | ||
38 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> | ||
39 | <WarningLevel>4</WarningLevel> | ||
40 | <NoWarn></NoWarn> | ||
41 | </PropertyGroup> | ||
42 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||
43 | <AllowUnsafeBlocks>False</AllowUnsafeBlocks> | ||
44 | <BaseAddress>285212672</BaseAddress> | ||
45 | <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> | ||
46 | <ConfigurationOverrideFile> | ||
47 | </ConfigurationOverrideFile> | ||
48 | <DefineConstants>TRACE</DefineConstants> | ||
49 | <DocumentationFile></DocumentationFile> | ||
50 | <DebugSymbols>False</DebugSymbols> | ||
51 | <FileAlignment>4096</FileAlignment> | ||
52 | <Optimize>True</Optimize> | ||
53 | <OutputPath>..\..\..\bin\</OutputPath> | ||
54 | <RegisterForComInterop>False</RegisterForComInterop> | ||
55 | <RemoveIntegerChecks>False</RemoveIntegerChecks> | ||
56 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> | ||
57 | <WarningLevel>4</WarningLevel> | ||
58 | <NoWarn></NoWarn> | ||
59 | </PropertyGroup> | ||
60 | <ItemGroup> | ||
61 | <Reference Include="libsecondlife.dll" > | ||
62 | <HintPath>..\..\..\bin\libsecondlife.dll</HintPath> | ||
63 | <Private>False</Private> | ||
64 | </Reference> | ||
65 | <Reference Include="System" > | ||
66 | <HintPath>System.dll</HintPath> | ||
67 | <Private>False</Private> | ||
68 | </Reference> | ||
69 | <Reference Include="System.Data" > | ||
70 | <HintPath>System.Data.dll</HintPath> | ||
71 | <Private>False</Private> | ||
72 | </Reference> | ||
73 | <Reference Include="System.Xml" > | ||
74 | <HintPath>System.Xml.dll</HintPath> | ||
75 | <Private>False</Private> | ||
76 | </Reference> | ||
77 | </ItemGroup> | ||
78 | <ItemGroup> | ||
79 | </ItemGroup> | ||
80 | <ItemGroup> | ||
81 | <Compile Include="GridData.cs"> | ||
82 | <SubType>Code</SubType> | ||
83 | </Compile> | ||
84 | <Compile Include="ILogData.cs"> | ||
85 | <SubType>Code</SubType> | ||
86 | </Compile> | ||
87 | <Compile Include="IniConfig.cs"> | ||
88 | <SubType>Code</SubType> | ||
89 | </Compile> | ||
90 | <Compile Include="InventoryData.cs"> | ||
91 | <SubType>Code</SubType> | ||
92 | </Compile> | ||
93 | <Compile Include="ReservationData.cs"> | ||
94 | <SubType>Code</SubType> | ||
95 | </Compile> | ||
96 | <Compile Include="SimProfileData.cs"> | ||
97 | <SubType>Code</SubType> | ||
98 | </Compile> | ||
99 | <Compile Include="UserData.cs"> | ||
100 | <SubType>Code</SubType> | ||
101 | </Compile> | ||
102 | <Compile Include="UserProfileData.cs"> | ||
103 | <SubType>Code</SubType> | ||
104 | </Compile> | ||
105 | <Compile Include="Properties\AssemblyInfo.cs"> | ||
106 | <SubType>Code</SubType> | ||
107 | </Compile> | ||
108 | </ItemGroup> | ||
109 | <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> | ||
110 | <PropertyGroup> | ||
111 | <PreBuildEvent> | ||
112 | </PreBuildEvent> | ||
113 | <PostBuildEvent> | ||
114 | </PostBuildEvent> | ||
115 | </PropertyGroup> | ||
116 | </Project> | ||
diff --git a/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build b/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build new file mode 100644 index 0000000..aefb02b --- /dev/null +++ b/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build | |||
@@ -0,0 +1,50 @@ | |||
1 | <?xml version="1.0" ?> | ||
2 | <project name="OpenSim.Framework.Data" default="build"> | ||
3 | <target name="build"> | ||
4 | <echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" /> | ||
5 | <mkdir dir="${project::get-base-directory()}/${build.dir}" /> | ||
6 | <copy todir="${project::get-base-directory()}/${build.dir}"> | ||
7 | <fileset basedir="${project::get-base-directory()}"> | ||
8 | </fileset> | ||
9 | </copy> | ||
10 | <csc target="library" debug="${build.debug}" unsafe="False" define="TRACE;DEBUG" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll"> | ||
11 | <resources prefix="OpenSim.Framework.Data" dynamicprefix="true" > | ||
12 | </resources> | ||
13 | <sources failonempty="true"> | ||
14 | <include name="GridData.cs" /> | ||
15 | <include name="ILogData.cs" /> | ||
16 | <include name="IniConfig.cs" /> | ||
17 | <include name="InventoryData.cs" /> | ||
18 | <include name="ReservationData.cs" /> | ||
19 | <include name="SimProfileData.cs" /> | ||
20 | <include name="UserData.cs" /> | ||
21 | <include name="UserProfileData.cs" /> | ||
22 | <include name="Properties/AssemblyInfo.cs" /> | ||
23 | </sources> | ||
24 | <references basedir="${project::get-base-directory()}"> | ||
25 | <lib> | ||
26 | <include name="${project::get-base-directory()}" /> | ||
27 | <include name="${project::get-base-directory()}/${build.dir}" /> | ||
28 | </lib> | ||
29 | <include name="../../../bin/libsecondlife.dll" /> | ||
30 | <include name="System.dll" /> | ||
31 | <include name="System.Data.dll" /> | ||
32 | <include name="System.Xml.dll" /> | ||
33 | </references> | ||
34 | </csc> | ||
35 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../../bin/" /> | ||
36 | <mkdir dir="${project::get-base-directory()}/../../../bin/"/> | ||
37 | <copy todir="${project::get-base-directory()}/../../../bin/"> | ||
38 | <fileset basedir="${project::get-base-directory()}/${build.dir}/" > | ||
39 | <include name="*.dll"/> | ||
40 | <include name="*.exe"/> | ||
41 | </fileset> | ||
42 | </copy> | ||
43 | </target> | ||
44 | <target name="clean"> | ||
45 | <delete dir="${bin.dir}" failonerror="false" /> | ||
46 | <delete dir="${obj.dir}" failonerror="false" /> | ||
47 | </target> | ||
48 | <target name="doc" description="Creates documentation."> | ||
49 | </target> | ||
50 | </project> | ||
diff --git a/OpenSim/Framework/Data/Properties/AssemblyInfo.cs b/OpenSim/Framework/Data/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7d749d5 --- /dev/null +++ b/OpenSim/Framework/Data/Properties/AssemblyInfo.cs | |||
@@ -0,0 +1,35 @@ | |||
1 | using System.Reflection; | ||
2 | using System.Runtime.CompilerServices; | ||
3 | using System.Runtime.InteropServices; | ||
4 | |||
5 | // General Information about an assembly is controlled through the following | ||
6 | // set of attributes. Change these attribute values to modify the information | ||
7 | // associated with an assembly. | ||
8 | [assembly: AssemblyTitle("OpenSim.Framework.Data")] | ||
9 | [assembly: AssemblyDescription("")] | ||
10 | [assembly: AssemblyConfiguration("")] | ||
11 | [assembly: AssemblyCompany("")] | ||
12 | [assembly: AssemblyProduct("OpenSim.Framework.Data")] | ||
13 | [assembly: AssemblyCopyright("Copyright © 2007")] | ||
14 | [assembly: AssemblyTrademark("")] | ||
15 | [assembly: AssemblyCulture("")] | ||
16 | |||
17 | // Setting ComVisible to false makes the types in this assembly not visible | ||
18 | // to COM components. If you need to access a type in this assembly from | ||
19 | // COM, set the ComVisible attribute to true on that type. | ||
20 | [assembly: ComVisible(false)] | ||
21 | |||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | ||
23 | [assembly: Guid("3a711c34-b0c0-4264-b0fe-f366eabf9d7b")] | ||
24 | |||
25 | // Version information for an assembly consists of the following four values: | ||
26 | // | ||
27 | // Major Version | ||
28 | // Minor Version | ||
29 | // Build Number | ||
30 | // Revision | ||
31 | // | ||
32 | // You can specify all the values or you can default the Revision and Build Numbers | ||
33 | // by using the '*' as shown below: | ||
34 | [assembly: AssemblyVersion("1.0.0.0")] | ||
35 | [assembly: AssemblyFileVersion("1.0.0.0")] | ||
diff --git a/OpenSim/Framework/Data/ReservationData.cs b/OpenSim/Framework/Data/ReservationData.cs new file mode 100644 index 0000000..f404ebd --- /dev/null +++ b/OpenSim/Framework/Data/ReservationData.cs | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | |||
32 | using libsecondlife; | ||
33 | |||
34 | namespace OpenSim.Framework.Data | ||
35 | { | ||
36 | public class ReservationData | ||
37 | { | ||
38 | public LLUUID userUUID = new LLUUID(); | ||
39 | public int reservationMinX = 0; | ||
40 | public int reservationMinY = 0; | ||
41 | public int reservationMaxX = 65536; | ||
42 | public int reservationMaxY = 65536; | ||
43 | |||
44 | public string reservationName = ""; | ||
45 | public string reservationCompany = ""; | ||
46 | public bool status = true; | ||
47 | |||
48 | public string gridSendKey = ""; | ||
49 | public string gridRecvKey = ""; | ||
50 | } | ||
51 | } | ||
diff --git a/OpenSim/Framework/Data/SimProfileData.cs b/OpenSim/Framework/Data/SimProfileData.cs new file mode 100644 index 0000000..201aa01 --- /dev/null +++ b/OpenSim/Framework/Data/SimProfileData.cs | |||
@@ -0,0 +1,114 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | |||
32 | namespace OpenSim.Framework.Data | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// A class which contains information known to the grid server about a region | ||
36 | /// </summary> | ||
37 | public class SimProfileData | ||
38 | { | ||
39 | /// <summary> | ||
40 | /// The name of the region | ||
41 | /// </summary> | ||
42 | public string regionName = ""; | ||
43 | |||
44 | /// <summary> | ||
45 | /// A 64-bit number combining map position into a (mostly) unique ID | ||
46 | /// </summary> | ||
47 | public ulong regionHandle; | ||
48 | |||
49 | /// <summary> | ||
50 | /// OGS/OpenSim Specific ID for a region | ||
51 | /// </summary> | ||
52 | public libsecondlife.LLUUID UUID; | ||
53 | |||
54 | /// <summary> | ||
55 | /// Coordinates of the region | ||
56 | /// </summary> | ||
57 | public uint regionLocX; | ||
58 | public uint regionLocY; | ||
59 | public uint regionLocZ; // Reserved (round-robin, layers, etc) | ||
60 | |||
61 | /// <summary> | ||
62 | /// Authentication secrets | ||
63 | /// </summary> | ||
64 | /// <remarks>Not very secure, needs improvement.</remarks> | ||
65 | public string regionSendKey = ""; | ||
66 | public string regionRecvKey = ""; | ||
67 | public string regionSecret = ""; | ||
68 | |||
69 | /// <summary> | ||
70 | /// Whether the region is online | ||
71 | /// </summary> | ||
72 | public bool regionOnline; | ||
73 | |||
74 | /// <summary> | ||
75 | /// Information about the server that the region is currently hosted on | ||
76 | /// </summary> | ||
77 | public string serverIP = ""; | ||
78 | public uint serverPort; | ||
79 | public string serverURI = ""; | ||
80 | |||
81 | /// <summary> | ||
82 | /// Set of optional overrides. Can be used to create non-eulicidean spaces. | ||
83 | /// </summary> | ||
84 | public ulong regionNorthOverrideHandle; | ||
85 | public ulong regionSouthOverrideHandle; | ||
86 | public ulong regionEastOverrideHandle; | ||
87 | public ulong regionWestOverrideHandle; | ||
88 | |||
89 | /// <summary> | ||
90 | /// Optional: URI Location of the region database | ||
91 | /// </summary> | ||
92 | /// <remarks>Used for floating sim pools where the region data is not nessecarily coupled to a specific server</remarks> | ||
93 | public string regionDataURI = ""; | ||
94 | |||
95 | /// <summary> | ||
96 | /// Region Asset Details | ||
97 | /// </summary> | ||
98 | public string regionAssetURI = ""; | ||
99 | public string regionAssetSendKey = ""; | ||
100 | public string regionAssetRecvKey = ""; | ||
101 | |||
102 | /// <summary> | ||
103 | /// Region Userserver Details | ||
104 | /// </summary> | ||
105 | public string regionUserURI = ""; | ||
106 | public string regionUserSendKey = ""; | ||
107 | public string regionUserRecvKey = ""; | ||
108 | |||
109 | /// <summary> | ||
110 | /// Region Map Texture Asset | ||
111 | /// </summary> | ||
112 | public libsecondlife.LLUUID regionMapTextureID = new libsecondlife.LLUUID("00000000-0000-0000-9999-000000000006"); | ||
113 | } | ||
114 | } | ||
diff --git a/OpenSim/Framework/Data/UserData.cs b/OpenSim/Framework/Data/UserData.cs new file mode 100644 index 0000000..2e15b47 --- /dev/null +++ b/OpenSim/Framework/Data/UserData.cs | |||
@@ -0,0 +1,131 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using libsecondlife; | ||
32 | |||
33 | namespace OpenSim.Framework.Data | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// An interface for connecting to user storage servers. | ||
37 | /// </summary> | ||
38 | public interface IUserData | ||
39 | { | ||
40 | /// <summary> | ||
41 | /// Returns a user profile from a database via their UUID | ||
42 | /// </summary> | ||
43 | /// <param name="user">The accounts UUID</param> | ||
44 | /// <returns>The user data profile</returns> | ||
45 | UserProfileData getUserByUUID(LLUUID user); | ||
46 | |||
47 | /// <summary> | ||
48 | /// Returns a users profile by searching their username | ||
49 | /// </summary> | ||
50 | /// <param name="name">The users username</param> | ||
51 | /// <returns>The user data profile</returns> | ||
52 | UserProfileData getUserByName(string name); | ||
53 | |||
54 | /// <summary> | ||
55 | /// Returns a users profile by searching their username parts | ||
56 | /// </summary> | ||
57 | /// <param name="fname">Account firstname</param> | ||
58 | /// <param name="lname">Account lastname</param> | ||
59 | /// <returns>The user data profile</returns> | ||
60 | UserProfileData getUserByName(string fname, string lname); | ||
61 | |||
62 | /// <summary> | ||
63 | /// Returns the current agent for a user searching by it's UUID | ||
64 | /// </summary> | ||
65 | /// <param name="user">The users UUID</param> | ||
66 | /// <returns>The current agent session</returns> | ||
67 | UserAgentData getAgentByUUID(LLUUID user); | ||
68 | |||
69 | /// <summary> | ||
70 | /// Returns the current session agent for a user searching by username | ||
71 | /// </summary> | ||
72 | /// <param name="name">The users account name</param> | ||
73 | /// <returns>The current agent session</returns> | ||
74 | UserAgentData getAgentByName(string name); | ||
75 | |||
76 | /// <summary> | ||
77 | /// Returns the current session agent for a user searching by username parts | ||
78 | /// </summary> | ||
79 | /// <param name="fname">The users first account name</param> | ||
80 | /// <param name="lname">The users account surname</param> | ||
81 | /// <returns>The current agent session</returns> | ||
82 | UserAgentData getAgentByName(string fname, string lname); | ||
83 | |||
84 | /// <summary> | ||
85 | /// Adds a new User profile to the database | ||
86 | /// </summary> | ||
87 | /// <param name="user">UserProfile to add</param> | ||
88 | void addNewUserProfile(UserProfileData user); | ||
89 | |||
90 | /// <summary> | ||
91 | /// Adds a new agent to the database | ||
92 | /// </summary> | ||
93 | /// <param name="agent">The agent to add</param> | ||
94 | void addNewUserAgent(UserAgentData agent); | ||
95 | |||
96 | /// <summary> | ||
97 | /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES) | ||
98 | /// </summary> | ||
99 | /// <param name="from">The account to transfer from</param> | ||
100 | /// <param name="to">The account to transfer to</param> | ||
101 | /// <param name="amount">The amount to transfer</param> | ||
102 | /// <returns>Successful?</returns> | ||
103 | bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount); | ||
104 | |||
105 | /// <summary> | ||
106 | /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account. | ||
107 | /// </summary> | ||
108 | /// <param name="from">User to transfer from</param> | ||
109 | /// <param name="to">User to transfer to</param> | ||
110 | /// <param name="inventory">Specified inventory item</param> | ||
111 | /// <returns>Successful?</returns> | ||
112 | bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory); | ||
113 | |||
114 | /// <summary> | ||
115 | /// Returns the plugin version | ||
116 | /// </summary> | ||
117 | /// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns> | ||
118 | string getVersion(); | ||
119 | |||
120 | /// <summary> | ||
121 | /// Returns the plugin name | ||
122 | /// </summary> | ||
123 | /// <returns>Plugin name, eg MySQL User Provider</returns> | ||
124 | string getName(); | ||
125 | |||
126 | /// <summary> | ||
127 | /// Initialises the plugin (artificial constructor) | ||
128 | /// </summary> | ||
129 | void Initialise(); | ||
130 | } | ||
131 | } | ||
diff --git a/OpenSim/Framework/Data/UserProfileData.cs b/OpenSim/Framework/Data/UserProfileData.cs new file mode 100644 index 0000000..00d422d --- /dev/null +++ b/OpenSim/Framework/Data/UserProfileData.cs | |||
@@ -0,0 +1,182 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using libsecondlife; | ||
32 | |||
33 | namespace OpenSim.Framework.Data | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Information about a particular user known to the userserver | ||
37 | /// </summary> | ||
38 | public class UserProfileData | ||
39 | { | ||
40 | /// <summary> | ||
41 | /// The ID value for this user | ||
42 | /// </summary> | ||
43 | public LLUUID UUID; | ||
44 | |||
45 | /// <summary> | ||
46 | /// The first component of a users account name | ||
47 | /// </summary> | ||
48 | public string username; | ||
49 | /// <summary> | ||
50 | /// The second component of a users account name | ||
51 | /// </summary> | ||
52 | public string surname; | ||
53 | |||
54 | /// <summary> | ||
55 | /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt) | ||
56 | /// </summary> | ||
57 | /// <remarks>This is double MD5'd because the client sends an unsalted MD5 to the loginserver</remarks> | ||
58 | public string passwordHash; | ||
59 | /// <summary> | ||
60 | /// The salt used for the users hash, should be 32 bytes or longer | ||
61 | /// </summary> | ||
62 | public string passwordSalt; | ||
63 | |||
64 | /// <summary> | ||
65 | /// 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 | ||
66 | /// </summary> | ||
67 | public ulong homeRegion; | ||
68 | /// <summary> | ||
69 | /// The coordinates inside the region of the home location | ||
70 | /// </summary> | ||
71 | public LLVector3 homeLocation; | ||
72 | /// <summary> | ||
73 | /// Where the user will be looking when they rez. | ||
74 | /// </summary> | ||
75 | public LLVector3 homeLookAt; | ||
76 | |||
77 | /// <summary> | ||
78 | /// A UNIX Timestamp (seconds since epoch) for the users creation | ||
79 | /// </summary> | ||
80 | public int created; | ||
81 | /// <summary> | ||
82 | /// A UNIX Timestamp for the users last login date / time | ||
83 | /// </summary> | ||
84 | public int lastLogin; | ||
85 | |||
86 | /// <summary> | ||
87 | /// A URI to the users inventory server, used for foreigners and large grids | ||
88 | /// </summary> | ||
89 | public string userInventoryURI; | ||
90 | /// <summary> | ||
91 | /// A URI to the users asset server, used for foreigners and large grids. | ||
92 | /// </summary> | ||
93 | public string userAssetURI; | ||
94 | |||
95 | /// <summary> | ||
96 | /// A uint mask containing the "I can do" fields of the users profile | ||
97 | /// </summary> | ||
98 | public uint profileCanDoMask; | ||
99 | /// <summary> | ||
100 | /// A uint mask containing the "I want to do" part of the users profile | ||
101 | /// </summary> | ||
102 | public uint profileWantDoMask; // Profile window "I want to" mask | ||
103 | |||
104 | /// <summary> | ||
105 | /// The about text listed in a users profile. | ||
106 | /// </summary> | ||
107 | public string profileAboutText; | ||
108 | /// <summary> | ||
109 | /// The first life about text listed in a users profile | ||
110 | /// </summary> | ||
111 | public string profileFirstText; | ||
112 | |||
113 | /// <summary> | ||
114 | /// The profile image for an avatar stored on the asset server | ||
115 | /// </summary> | ||
116 | public LLUUID profileImage; | ||
117 | /// <summary> | ||
118 | /// The profile image for the users first life tab | ||
119 | /// </summary> | ||
120 | public LLUUID profileFirstImage; | ||
121 | /// <summary> | ||
122 | /// The users last registered agent (filled in on the user server) | ||
123 | /// </summary> | ||
124 | public UserAgentData currentAgent; | ||
125 | } | ||
126 | |||
127 | /// <summary> | ||
128 | /// Information about a users session | ||
129 | /// </summary> | ||
130 | public class UserAgentData | ||
131 | { | ||
132 | /// <summary> | ||
133 | /// The UUID of the users avatar (not the agent!) | ||
134 | /// </summary> | ||
135 | public LLUUID UUID; | ||
136 | /// <summary> | ||
137 | /// The IP address of the user | ||
138 | /// </summary> | ||
139 | public string agentIP; | ||
140 | /// <summary> | ||
141 | /// The port of the user | ||
142 | /// </summary> | ||
143 | public uint agentPort; | ||
144 | /// <summary> | ||
145 | /// Is the user online? | ||
146 | /// </summary> | ||
147 | public bool agentOnline; | ||
148 | /// <summary> | ||
149 | /// The session ID for the user (also the agent ID) | ||
150 | /// </summary> | ||
151 | public LLUUID sessionID; | ||
152 | /// <summary> | ||
153 | /// The "secure" session ID for the user | ||
154 | /// </summary> | ||
155 | /// <remarks>Not very secure. Dont rely on it for anything more than Linden Lab does.</remarks> | ||
156 | public LLUUID secureSessionID; | ||
157 | /// <summary> | ||
158 | /// The region the user logged into initially | ||
159 | /// </summary> | ||
160 | public LLUUID regionID; | ||
161 | /// <summary> | ||
162 | /// A unix timestamp from when the user logged in | ||
163 | /// </summary> | ||
164 | public int loginTime; | ||
165 | /// <summary> | ||
166 | /// When this agent expired and logged out, 0 if still online | ||
167 | /// </summary> | ||
168 | public int logoutTime; | ||
169 | /// <summary> | ||
170 | /// Current region the user is logged into | ||
171 | /// </summary> | ||
172 | public LLUUID currentRegion; | ||
173 | /// <summary> | ||
174 | /// Region handle of the current region the user is in | ||
175 | /// </summary> | ||
176 | public ulong currentHandle; | ||
177 | /// <summary> | ||
178 | /// The position of the user within the region | ||
179 | /// </summary> | ||
180 | public LLVector3 currentPos; | ||
181 | } | ||
182 | } | ||