diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteAssetData.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 1b42198..6a323e1 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Data; | 29 | using System.Data; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | ||
31 | using log4net; | 32 | using log4net; |
32 | using Mono.Data.SqliteClient; | 33 | using Mono.Data.SqliteClient; |
33 | using OpenMetaverse; | 34 | using OpenMetaverse; |
@@ -49,6 +50,7 @@ namespace OpenSim.Data.SQLite | |||
49 | /// Artificial constructor called upon plugin load | 50 | /// Artificial constructor called upon plugin load |
50 | /// </summary> | 51 | /// </summary> |
51 | private const string SelectAssetSQL = "select * from assets where UUID=:UUID"; | 52 | private const string SelectAssetSQL = "select * from assets where UUID=:UUID"; |
53 | private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, UUID from assets limit :start, :count"; | ||
52 | private const string DeleteAssetSQL = "delete from assets where UUID=:UUID"; | 54 | private const string DeleteAssetSQL = "delete from assets where UUID=:UUID"; |
53 | private const string InsertAssetSQL = "insert into assets(UUID, Name, Description, Type, Local, Temporary, Data) values(:UUID, :Name, :Description, :Type, :Local, :Temporary, :Data)"; | 55 | private const string InsertAssetSQL = "insert into assets(UUID, Name, Description, Type, Local, Temporary, Data) values(:UUID, :Name, :Description, :Type, :Local, :Temporary, :Data)"; |
54 | private const string UpdateAssetSQL = "update assets set Name=:Name, Description=:Description, Type=:Type, Local=:Local, Temporary=:Temporary, Data=:Data where UUID=:UUID"; | 56 | private const string UpdateAssetSQL = "update assets set Name=:Name, Description=:Description, Type=:Type, Local=:Local, Temporary=:Temporary, Data=:Data where UUID=:UUID"; |
@@ -256,6 +258,54 @@ namespace OpenSim.Data.SQLite | |||
256 | return asset; | 258 | return asset; |
257 | } | 259 | } |
258 | 260 | ||
261 | private static AssetMetadata buildAssetMetadata(IDataReader row) | ||
262 | { | ||
263 | AssetMetadata metadata = new AssetMetadata(); | ||
264 | |||
265 | metadata.FullID = new UUID((string) row["UUID"]); | ||
266 | metadata.Name = (string) row["Name"]; | ||
267 | metadata.Description = (string) row["Description"]; | ||
268 | metadata.Type = Convert.ToSByte(row["Type"]); | ||
269 | metadata.Temporary = Convert.ToBoolean(row["Temporary"]); // Not sure if this is correct. | ||
270 | |||
271 | // Current SHA1s are not stored/computed. | ||
272 | metadata.SHA1 = new byte[] {}; | ||
273 | |||
274 | return metadata; | ||
275 | } | ||
276 | |||
277 | /// <summary> | ||
278 | /// Returns a list of AssetMetadata objects. The list is a subset of | ||
279 | /// the entire data set offset by <paramref name="start" /> containing | ||
280 | /// <paramref name="count" /> elements. | ||
281 | /// </summary> | ||
282 | /// <param name="start">The number of results to discard from the total data set.</param> | ||
283 | /// <param name="count">The number of rows the returned list should contain.</param> | ||
284 | /// <returns>A list of AssetMetadata objects.</returns> | ||
285 | public override List<AssetMetadata> FetchAssetMetadataSet(int start, int count) | ||
286 | { | ||
287 | List<AssetMetadata> retList = new List<AssetMetadata>(count); | ||
288 | |||
289 | lock (this) | ||
290 | { | ||
291 | using (SqliteCommand cmd = new SqliteCommand(SelectAssetMetadataSQL, m_conn)) | ||
292 | { | ||
293 | cmd.Parameters.Add(new SqliteParameter(":start", start)); | ||
294 | cmd.Parameters.Add(new SqliteParameter(":count", count)); | ||
295 | |||
296 | using (IDataReader reader = cmd.ExecuteReader()) | ||
297 | { | ||
298 | while (reader.Read()) | ||
299 | { | ||
300 | AssetMetadata metadata = buildAssetMetadata(reader); | ||
301 | retList.Add(metadata); | ||
302 | } | ||
303 | } | ||
304 | } | ||
305 | } | ||
306 | |||
307 | return retList; | ||
308 | } | ||
259 | 309 | ||
260 | /*********************************************************************** | 310 | /*********************************************************************** |
261 | * | 311 | * |