clockwerk-opensim – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 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 OpenSimulator 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 OpenMetaverse;
31 using OpenSim.Framework;
32  
33 namespace OpenSim.Data
34 {
35 public class XGroup
36 {
37 public UUID groupID;
38 public UUID ownerRoleID;
39 public string name;
40 public string charter;
41 public bool showInList;
42 public UUID insigniaID;
43 public int membershipFee;
44 public bool openEnrollment;
45 public bool allowPublish;
46 public bool maturePublish;
47 public UUID founderID;
48 public ulong everyonePowers;
49 public ulong ownersPowers;
50  
51 public Dictionary<UUID, XGroupMember> members = new Dictionary<UUID, XGroupMember>();
52 public Dictionary<UUID, XGroupNotice> notices = new Dictionary<UUID, XGroupNotice>();
53  
54 public XGroup Clone()
55 {
56 XGroup clone = (XGroup)MemberwiseClone();
57 clone.members = new Dictionary<UUID, XGroupMember>();
58 clone.notices = new Dictionary<UUID, XGroupNotice>();
59  
60 foreach (KeyValuePair<UUID, XGroupMember> kvp in members)
61 clone.members[kvp.Key] = kvp.Value.Clone();
62  
63 foreach (KeyValuePair<UUID, XGroupNotice> kvp in notices)
64 clone.notices[kvp.Key] = kvp.Value.Clone();
65  
66 return clone;
67 }
68 }
69  
70 public class XGroupMember
71 {
72 public UUID agentID;
73 public UUID groupID;
74 public UUID roleID;
75 public bool acceptNotices = true;
76 public bool listInProfile = true;
77  
78 public XGroupMember Clone()
79 {
80 return (XGroupMember)MemberwiseClone();
81 }
82 }
83  
84 public class XGroupNotice
85 {
86 public UUID groupID;
87 public UUID noticeID;
88 public uint timestamp;
89 public string fromName;
90 public string subject;
91 public string message;
92 public byte[] binaryBucket;
93 public bool hasAttachment;
94 public int assetType;
95  
96 public XGroupNotice Clone()
97 {
98 XGroupNotice clone = (XGroupNotice)MemberwiseClone();
99 clone.binaryBucket = (byte[])binaryBucket.Clone();
100  
101 return clone;
102 }
103 }
104  
105 /// <summary>
106 /// Early stub interface for groups data, not final.
107 /// </summary>
108 /// <remarks>
109 /// Currently in-use only for regression test purposes.
110 /// </remarks>
111 public interface IXGroupData
112 {
113 bool StoreGroup(XGroup group);
114 XGroup GetGroup(UUID groupID);
115 Dictionary<UUID, XGroup> GetGroups();
116 bool DeleteGroup(UUID groupID);
117 }
118 }