aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
diff options
context:
space:
mode:
authorDiva Canto2009-08-11 10:30:03 -0700
committerDiva Canto2009-08-11 10:30:03 -0700
commit31419a70ce05e7db0c54f4c4ec827a0d1fe23402 (patch)
tree28687ede5c6f8fac8048ecce7a1a11ab30c7504f /OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
parentAdded two new methods to IIventoryService -- GetFolderForType and GetFolderCo... (diff)
downloadopensim-SC_OLD-31419a70ce05e7db0c54f4c4ec827a0d1fe23402.zip
opensim-SC_OLD-31419a70ce05e7db0c54f4c4ec827a0d1fe23402.tar.gz
opensim-SC_OLD-31419a70ce05e7db0c54f4c4ec827a0d1fe23402.tar.bz2
opensim-SC_OLD-31419a70ce05e7db0c54f4c4ec827a0d1fe23402.tar.xz
System folders inventory cache added to OUT inventory modules. This tracks agents in and out of *sims* in order to fetch/drop their system folders from the cache. Also added region-side support for fetching the system folders from the inventory service. Nothing of this is called yet.
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs68
1 files changed, 56 insertions, 12 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index f5e6824..1562172 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -41,7 +41,7 @@ using OpenMetaverse;
41 41
42namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory 42namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
43{ 43{
44 public class HGInventoryBroker : ISharedRegionModule, IInventoryService 44 public class HGInventoryBroker : InventoryCache, ISharedRegionModule, IInventoryService
45 { 45 {
46 private static readonly ILog m_log = 46 private static readonly ILog m_log =
47 LogManager.GetLogger( 47 LogManager.GetLogger(
@@ -122,6 +122,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
122 122
123 m_LocalGridInventoryURI = inventoryConfig.GetString("InventoryServerURI", string.Empty); 123 m_LocalGridInventoryURI = inventoryConfig.GetString("InventoryServerURI", string.Empty);
124 124
125 Init(source);
126
125 m_Enabled = true; 127 m_Enabled = true;
126 m_log.Info("[HG INVENTORY CONNECTOR]: HG inventory broker enabled"); 128 m_log.Info("[HG INVENTORY CONNECTOR]: HG inventory broker enabled");
127 } 129 }
@@ -136,7 +138,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
136 { 138 {
137 } 139 }
138 140
139 public void AddRegion(Scene scene) 141 public override void AddRegion(Scene scene)
140 { 142 {
141 if (!m_Enabled) 143 if (!m_Enabled)
142 return; 144 return;
@@ -154,10 +156,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
154 } 156 }
155 157
156 scene.RegisterModuleInterface<IInventoryService>(this); 158 scene.RegisterModuleInterface<IInventoryService>(this);
159 base.AddRegion(scene);
157 } 160 }
158 161
159 public void RemoveRegion(Scene scene) 162 public override void RemoveRegion(Scene scene)
160 { 163 {
164 base.RemoveRegion(scene);
161 } 165 }
162 166
163 public void RegionLoaded(Scene scene) 167 public void RegionLoaded(Scene scene)
@@ -165,7 +169,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
165 if (!m_Enabled) 169 if (!m_Enabled)
166 return; 170 return;
167 171
168 m_log.InfoFormat("[INVENTORY CONNECTOR]: Enabled HG inventory for region {0}", scene.RegionInfo.RegionName); 172 m_log.InfoFormat("[HG INVENTORY CONNECTOR]: Enabled HG inventory for region {0}", scene.RegionInfo.RegionName);
169 173
170 } 174 }
171 175
@@ -201,32 +205,72 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
201 } 205 }
202 } 206 }
203 207
204 public InventoryFolderBase GetFolderForType(UUID userID, AssetType type) 208 // Inherited. See base
209 //public override InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
210 //{
211 // if (IsLocalGridUser(userID))
212 // return m_GridService.GetFolderForType(userID, type);
213 // else
214 // {
215 // UUID sessionID = GetSessionID(userID);
216 // string uri = GetUserInventoryURI(userID) + "/" + userID.ToString();
217 // // !!!!!!
218 // return null;
219 // //return m_HGService.GetFolderForType(uri, sessionID, type);
220 // }
221 //}
222
223 public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
205 { 224 {
206 if (IsLocalGridUser(userID)) 225 if (IsLocalGridUser(userID))
207 return m_GridService.GetFolderForType(userID, type); 226 return m_GridService.GetFolderContent(userID, folderID);
208 else 227 else
209 { 228 {
210 UUID sessionID = GetSessionID(userID); 229 UUID sessionID = GetSessionID(userID);
211 string uri = GetUserInventoryURI(userID) + "/" + userID.ToString(); 230 string uri = GetUserInventoryURI(userID) + "/" + userID.ToString();
212 // !!!!!! 231 return m_HGService.GetFolderContent(uri, folderID, sessionID);
213 return null;
214 //return m_HGService.GetFolderForType(uri, sessionID, type);
215 } 232 }
216 } 233 }
217 234
218 public InventoryCollection GetFolderContent(UUID userID, UUID folderID) 235 public override Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID)
219 { 236 {
220 if (IsLocalGridUser(userID)) 237 if (IsLocalGridUser(userID))
221 return m_GridService.GetFolderContent(userID, folderID); 238 return GetSystemFoldersLocal(userID);
222 else 239 else
223 { 240 {
224 UUID sessionID = GetSessionID(userID); 241 UUID sessionID = GetSessionID(userID);
225 string uri = GetUserInventoryURI(userID) + "/" + userID.ToString(); 242 string uri = GetUserInventoryURI(userID) + "/" + userID.ToString();
226 return m_HGService.GetFolderContent(uri, folderID, sessionID); 243 return m_HGService.GetSystemFolders(uri, sessionID);
227 } 244 }
228 } 245 }
229 246
247 private Dictionary<AssetType, InventoryFolderBase> GetSystemFoldersLocal(UUID userID)
248 {
249 InventoryFolderBase root = m_GridService.GetRootFolder(userID);
250 if (root != null)
251 {
252 InventoryCollection content = m_GridService.GetFolderContent(userID, root.ID);
253 if (content != null)
254 {
255 Dictionary<AssetType, InventoryFolderBase> folders = new Dictionary<AssetType, InventoryFolderBase>();
256 m_log.DebugFormat("[HG INVENTORY CONNECTOR]: System folders count for {0}: {1}", userID, folders.Count);
257 foreach (InventoryFolderBase folder in content.Folders)
258 {
259 m_log.DebugFormat("[HG INVENTORY CONNECTOR]: scanning folder type {0}", (AssetType)folder.Type);
260 if (folder.Type != (short)AssetType.Folder)
261 folders[(AssetType)folder.Type] = folder;
262 }
263 return folders;
264 }
265 m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Root folder content not found for {0}", userID);
266
267 }
268
269 m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Root folder not found for {0}", userID);
270
271 return new Dictionary<AssetType, InventoryFolderBase>();
272 }
273
230 public List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID) 274 public List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID)
231 { 275 {
232 return new List<InventoryItemBase>(); 276 return new List<InventoryItemBase>();