aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/Null/NullFriendsData.cs
diff options
context:
space:
mode:
authorDiva Canto2010-02-28 16:09:06 -0800
committerDiva Canto2010-02-28 16:09:06 -0800
commit774958bbbf639090e73204be1d5b6d5c7653441a (patch)
tree7a6415cbab9bf278d0d17f6b3b0b1ab640e853bd /OpenSim/Data/Null/NullFriendsData.cs
parentChange the signature of SendChangeUserRights, because we have to send (diff)
downloadopensim-SC-774958bbbf639090e73204be1d5b6d5c7653441a.zip
opensim-SC-774958bbbf639090e73204be1d5b6d5c7653441a.tar.gz
opensim-SC-774958bbbf639090e73204be1d5b6d5c7653441a.tar.bz2
opensim-SC-774958bbbf639090e73204be1d5b6d5c7653441a.tar.xz
Added FriendsData to both Null storage and SQLite. Untested.
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/Null/NullFriendsData.cs92
1 files changed, 92 insertions, 0 deletions
diff --git a/OpenSim/Data/Null/NullFriendsData.cs b/OpenSim/Data/Null/NullFriendsData.cs
new file mode 100644
index 0000000..e7f7fd3
--- /dev/null
+++ b/OpenSim/Data/Null/NullFriendsData.cs
@@ -0,0 +1,92 @@
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
28using System;
29using System.Collections;
30using System.Collections.Generic;
31using OpenMetaverse;
32using OpenSim.Framework;
33using OpenSim.Data;
34
35namespace OpenSim.Data.Null
36{
37 public class NullFriendsData : IFriendsData
38 {
39 private static List<FriendsData> m_Data = new List<FriendsData>();
40
41 public NullFriendsData(string connectionString, string realm)
42 {
43 }
44
45 /// <summary>
46 /// Tries to implement the Get [] semantics, but it cuts corners.
47 /// Specifically, it gets all friendships even if they weren't accepted yet.
48 /// </summary>
49 /// <param name="fields"></param>
50 /// <param name="values"></param>
51 /// <returns></returns>
52 public FriendsData[] GetFriends(UUID userID)
53 {
54 List<FriendsData> lst = m_Data.FindAll(delegate (FriendsData fdata)
55 {
56 return fdata.PrincipalID == userID;
57 });
58
59 if (lst != null)
60 return lst.ToArray();
61
62 return new FriendsData[0];
63 }
64
65 public bool Store(FriendsData data)
66 {
67 if (data == null)
68 return false;
69
70 m_Data.Add(data);
71
72 return true;
73 }
74
75 public bool Delete(UUID userID, string friendID)
76 {
77 List<FriendsData> lst = m_Data.FindAll(delegate(FriendsData fdata) { return fdata.PrincipalID == userID; });
78 if (lst != null)
79 {
80 FriendsData friend = lst.Find(delegate(FriendsData fdata) { return fdata.Friend == friendID; });
81 if (friendID != null)
82 {
83 m_Data.Remove(friend);
84 return true;
85 }
86 }
87
88 return false;
89 }
90
91 }
92}