aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/ContentManagementSystem/IContentDatabase.cs
blob: f37f95df12200f568cd49c1440b89040957f5408 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// IContentDatabase.cs 
// User: bongiojp
//
// 
//

using System;
using libsecondlife;
using OpenSim.Region.Environment.Scenes;
using Nini.Config;

namespace OpenSim.Region.Environment.Modules.ContentManagement
{	
	public interface IContentDatabase
	{	
		/// <summary>
		/// Similar to the IRegionModule function. This is the function to be called before attempting to interface with the database.
		/// Initialise should be called one for each region to be contained in the database. The directory should be the full path 
		/// to the repository and will only be defined once, regardless of how many times the method is called.
		/// </summary>
		void Initialise(Scene scene, String dir);
		
		/// <summary>
		/// Should be called once after Initialise has been called.
		/// </summary>
		void PostInitialise();
		
		/// <summary>
		/// Returns the total number of revisions saved for a specific region. 
		/// </summary>
		int NumOfRegionRev(LLUUID regionid);
		
		/// <summary>
		/// Saves the Region terrain map and objects within the region as xml to the database.
		/// </summary>
		void SaveRegion(LLUUID regionid, string regionName, string logMessage);

		/// <summary>
		/// Retrieves the xml that describes each individual object from the last revision or specific revision of the given region.
		/// </summary>
		System.Collections.ArrayList GetRegionObjectXMLList(LLUUID regionid);
		System.Collections.ArrayList GetRegionObjectXMLList(LLUUID regionid, int revision);
		
		string GetRegionObjectHeightMap(LLUUID regionid);
		string GetRegionObjectHeightMap(LLUUID regionid, int revision);
				
		/// <summary>
		/// Returns a list of the revision numbers and corresponding log messages for a given region.
		/// </summary>
		System.Collections.Generic.SortedDictionary<string, string> ListOfRegionRevisions(LLUUID id);

		/// <summary>
		/// Returns the most recent revision number of a region.
		/// </summary>
		int GetMostRecentRevision(LLUUID regionid);
	}
}