aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.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/LocalInventoryServiceConnector.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/LocalInventoryServiceConnector.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs35
1 files changed, 30 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index bab0044..5c52897f 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.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 LocalInventoryServicesConnector : ISharedRegionModule, IInventoryService 44 public class LocalInventoryServicesConnector : 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(
@@ -108,6 +108,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
108 // m_InventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this)); 108 // m_InventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this));
109 //} 109 //}
110 110
111 Init(source);
112
111 m_Enabled = true; 113 m_Enabled = true;
112 m_log.Info("[INVENTORY CONNECTOR]: Local inventory connector enabled"); 114 m_log.Info("[INVENTORY CONNECTOR]: Local inventory connector enabled");
113 } 115 }
@@ -122,7 +124,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
122 { 124 {
123 } 125 }
124 126
125 public void AddRegion(Scene scene) 127 public override void AddRegion(Scene scene)
126 { 128 {
127 if (!m_Enabled) 129 if (!m_Enabled)
128 return; 130 return;
@@ -139,10 +141,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
139// "[INVENTORY CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName); 141// "[INVENTORY CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName);
140 142
141 scene.RegisterModuleInterface<IInventoryService>(this); 143 scene.RegisterModuleInterface<IInventoryService>(this);
144 base.AddRegion(scene);
142 } 145 }
143 146
144 public void RemoveRegion(Scene scene) 147 public override void RemoveRegion(Scene scene)
145 { 148 {
149 base.RemoveRegion(scene);
146 } 150 }
147 151
148 public void RegionLoaded(Scene scene) 152 public void RegionLoaded(Scene scene)
@@ -176,9 +180,30 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
176 m_InventoryService.GetUserInventory(userID, callback); 180 m_InventoryService.GetUserInventory(userID, callback);
177 } 181 }
178 182
179 public InventoryFolderBase GetFolderForType(UUID userID, AssetType type) 183 // Inherited. See base
184 //public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
185 //{
186 // return m_InventoryService.GetFolderForType(userID, type);
187 //}
188
189 public override Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID)
180 { 190 {
181 return m_InventoryService.GetFolderForType(userID, type); 191 InventoryFolderBase root = GetRootFolder(userID);
192 if (root != null)
193 {
194 InventoryCollection content = GetFolderContent(userID, root.ID);
195 if (content != null)
196 {
197 Dictionary<AssetType, InventoryFolderBase> folders = new Dictionary<AssetType, InventoryFolderBase>();
198 foreach (InventoryFolderBase folder in content.Folders)
199 {
200 if (folder.Type != (short)AssetType.Folder)
201 folders[(AssetType)folder.Type] = folder;
202 }
203 return folders;
204 }
205 }
206 return new Dictionary<AssetType, InventoryFolderBase>();
182 } 207 }
183 208
184 public InventoryCollection GetFolderContent(UUID userID, UUID folderID) 209 public InventoryCollection GetFolderContent(UUID userID, UUID folderID)