aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/ContentManagementSystem/IContentDatabase.cs
blob: 1d8197827da2ca74819eb3d22da3b49cfb341f22 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
#region Header

// IContentDatabase.cs 
// User: bongiojp
//
// 
//

#endregion Header

using System;

using libsecondlife;

using OpenSim.Region.Environment.Scenes;

using Nini.Config;

namespace OpenSim.Region.Environment.Modules.ContentManagement
{
    public interface IContentDatabase
    {
        #region Methods

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

        string GetRegionObjectHeightMap(LLUUID regionid);

        string GetRegionObjectHeightMap(LLUUID regionid, int revision);

        /// <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);

        /// <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>
        /// 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 total number of revisions saved for a specific region. 
        /// </summary>
        int NumOfRegionRev(LLUUID regionid);

        /// <summary>
        /// Should be called once after Initialise has been called.
        /// </summary>
        void PostInitialise();

        /// <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);

        #endregion Methods
    }
}