diff options
Diffstat (limited to 'OpenSim/Services/Connectors')
13 files changed, 62 insertions, 19 deletions
diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 7f32ad3..4b502b7 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | |||
@@ -52,6 +52,8 @@ namespace OpenSim.Services.Connectors | |||
52 | private int m_retryCounter; | 52 | private int m_retryCounter; |
53 | private Dictionary<int, List<AssetBase>> m_retryQueue = new Dictionary<int, List<AssetBase>>(); | 53 | private Dictionary<int, List<AssetBase>> m_retryQueue = new Dictionary<int, List<AssetBase>>(); |
54 | private System.Timers.Timer m_retryTimer; | 54 | private System.Timers.Timer m_retryTimer; |
55 | private int m_maxAssetRequestConcurrency = 30; | ||
56 | |||
55 | private delegate void AssetRetrievedEx(AssetBase asset); | 57 | private delegate void AssetRetrievedEx(AssetBase asset); |
56 | 58 | ||
57 | // Keeps track of concurrent requests for the same asset, so that it's only loaded once. | 59 | // Keeps track of concurrent requests for the same asset, so that it's only loaded once. |
@@ -80,6 +82,10 @@ namespace OpenSim.Services.Connectors | |||
80 | 82 | ||
81 | public virtual void Initialise(IConfigSource source) | 83 | public virtual void Initialise(IConfigSource source) |
82 | { | 84 | { |
85 | IConfig netconfig = source.Configs["Network"]; | ||
86 | if (netconfig != null) | ||
87 | m_maxAssetRequestConcurrency = netconfig.GetInt("MaxRequestConcurrency",m_maxAssetRequestConcurrency); | ||
88 | |||
83 | IConfig assetConfig = source.Configs["AssetService"]; | 89 | IConfig assetConfig = source.Configs["AssetService"]; |
84 | if (assetConfig == null) | 90 | if (assetConfig == null) |
85 | { | 91 | { |
@@ -204,7 +210,7 @@ namespace OpenSim.Services.Connectors | |||
204 | if (asset == null || asset.Data == null || asset.Data.Length == 0) | 210 | if (asset == null || asset.Data == null || asset.Data.Length == 0) |
205 | { | 211 | { |
206 | asset = SynchronousRestObjectRequester. | 212 | asset = SynchronousRestObjectRequester. |
207 | MakeRequest<int, AssetBase>("GET", uri, 0, 30); | 213 | MakeRequest<int, AssetBase>("GET", uri, 0, m_maxAssetRequestConcurrency); |
208 | 214 | ||
209 | if (m_Cache != null) | 215 | if (m_Cache != null) |
210 | m_Cache.Cache(asset); | 216 | m_Cache.Cache(asset); |
diff --git a/OpenSim/Services/Connectors/Friends/FriendsSimConnector.cs b/OpenSim/Services/Connectors/Friends/FriendsSimConnector.cs index 6cd21d1..45f4514 100644 --- a/OpenSim/Services/Connectors/Friends/FriendsSimConnector.cs +++ b/OpenSim/Services/Connectors/Friends/FriendsSimConnector.cs | |||
@@ -128,7 +128,7 @@ namespace OpenSim.Services.Connectors.Friends | |||
128 | return Call(region, sendData); | 128 | return Call(region, sendData); |
129 | } | 129 | } |
130 | 130 | ||
131 | public bool StatusNotify(GridRegion region, UUID userID, UUID friendID, bool online) | 131 | public bool StatusNotify(GridRegion region, UUID userID, string friendID, bool online) |
132 | { | 132 | { |
133 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | 133 | Dictionary<string, object> sendData = new Dictionary<string, object>(); |
134 | //sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString(); | 134 | //sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString(); |
@@ -136,7 +136,7 @@ namespace OpenSim.Services.Connectors.Friends | |||
136 | sendData["METHOD"] = "status"; | 136 | sendData["METHOD"] = "status"; |
137 | 137 | ||
138 | sendData["FromID"] = userID.ToString(); | 138 | sendData["FromID"] = userID.ToString(); |
139 | sendData["ToID"] = friendID.ToString(); | 139 | sendData["ToID"] = friendID; |
140 | sendData["Online"] = online.ToString(); | 140 | sendData["Online"] = online.ToString(); |
141 | 141 | ||
142 | return Call(region, sendData); | 142 | return Call(region, sendData); |
@@ -154,7 +154,7 @@ namespace OpenSim.Services.Connectors.Friends | |||
154 | if (!region.ServerURI.EndsWith("/")) | 154 | if (!region.ServerURI.EndsWith("/")) |
155 | path = "/" + path; | 155 | path = "/" + path; |
156 | string uri = region.ServerURI + path; | 156 | string uri = region.ServerURI + path; |
157 | m_log.DebugFormat("[FRIENDS SIM CONNECTOR]: calling {0}", uri); | 157 | // m_log.DebugFormat("[FRIENDS SIM CONNECTOR]: calling {0}", uri); |
158 | 158 | ||
159 | try | 159 | try |
160 | { | 160 | { |
diff --git a/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs b/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs index 20d7eaf..94bda82 100644 --- a/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs +++ b/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs | |||
@@ -207,7 +207,7 @@ namespace OpenSim.Services.Connectors | |||
207 | if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null)) | 207 | if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null)) |
208 | { | 208 | { |
209 | if (replyData["result"] is Dictionary<string, object>) | 209 | if (replyData["result"] is Dictionary<string, object>) |
210 | guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]); | 210 | guinfo = Create((Dictionary<string, object>)replyData["result"]); |
211 | } | 211 | } |
212 | 212 | ||
213 | return guinfo; | 213 | return guinfo; |
@@ -273,7 +273,7 @@ namespace OpenSim.Services.Connectors | |||
273 | { | 273 | { |
274 | if (griduser is Dictionary<string, object>) | 274 | if (griduser is Dictionary<string, object>) |
275 | { | 275 | { |
276 | GridUserInfo pinfo = new GridUserInfo((Dictionary<string, object>)griduser); | 276 | GridUserInfo pinfo = Create((Dictionary<string, object>)griduser); |
277 | rinfos.Add(pinfo); | 277 | rinfos.Add(pinfo); |
278 | } | 278 | } |
279 | else | 279 | else |
@@ -286,5 +286,10 @@ namespace OpenSim.Services.Connectors | |||
286 | 286 | ||
287 | return rinfos.ToArray(); | 287 | return rinfos.ToArray(); |
288 | } | 288 | } |
289 | |||
290 | protected virtual GridUserInfo Create(Dictionary<string, object> griduser) | ||
291 | { | ||
292 | return new GridUserInfo(griduser); | ||
293 | } | ||
289 | } | 294 | } |
290 | } | 295 | } |
diff --git a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs index 4cd933c..d840527 100644 --- a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs | |||
@@ -321,7 +321,7 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
321 | args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString()); | 321 | args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString()); |
322 | args["teleport_flags"] = OSD.FromString(flags.ToString()); | 322 | args["teleport_flags"] = OSD.FromString(flags.ToString()); |
323 | 323 | ||
324 | OSDMap result = WebUtil.PostToService(uri, args, 20000); | 324 | OSDMap result = WebUtil.PostToService(uri, args, 80000); |
325 | if (result["Success"].AsBoolean()) | 325 | if (result["Success"].AsBoolean()) |
326 | { | 326 | { |
327 | OSDMap unpacked = (OSDMap)result["_Result"]; | 327 | OSDMap unpacked = (OSDMap)result["_Result"]; |
diff --git a/OpenSim/Services/Connectors/Properties/AssemblyInfo.cs b/OpenSim/Services/Connectors/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bfb681b --- /dev/null +++ b/OpenSim/Services/Connectors/Properties/AssemblyInfo.cs | |||
@@ -0,0 +1,33 @@ | |||
1 | using System.Reflection; | ||
2 | using System.Runtime.CompilerServices; | ||
3 | using System.Runtime.InteropServices; | ||
4 | |||
5 | // General Information about an assembly is controlled through the following | ||
6 | // set of attributes. Change these attribute values to modify the information | ||
7 | // associated with an assembly. | ||
8 | [assembly: AssemblyTitle("OpenSim.Services.Connectors")] | ||
9 | [assembly: AssemblyDescription("")] | ||
10 | [assembly: AssemblyConfiguration("")] | ||
11 | [assembly: AssemblyCompany("http://opensimulator.org")] | ||
12 | [assembly: AssemblyProduct("OpenSim")] | ||
13 | [assembly: AssemblyCopyright("OpenSimulator developers")] | ||
14 | [assembly: AssemblyTrademark("")] | ||
15 | [assembly: AssemblyCulture("")] | ||
16 | |||
17 | // Setting ComVisible to false makes the types in this assembly not visible | ||
18 | // to COM components. If you need to access a type in this assembly from | ||
19 | // COM, set the ComVisible attribute to true on that type. | ||
20 | [assembly: ComVisible(false)] | ||
21 | |||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | ||
23 | [assembly: Guid("3ab0a9a1-3f45-4c07-a892-3848df8c0173")] | ||
24 | |||
25 | // Version information for an assembly consists of the following four values: | ||
26 | // | ||
27 | // Major Version | ||
28 | // Minor Version | ||
29 | // Build Number | ||
30 | // Revision | ||
31 | // | ||
32 | [assembly: AssemblyVersion("0.7.5.*")] | ||
33 | [assembly: AssemblyFileVersion("1.0.0.0")] | ||
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs index 6bfc5cc..63a32e7 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
45 | /// <summary> | 45 | /// <summary> |
46 | /// Connects to the SimianGrid asset service | 46 | /// Connects to the SimianGrid asset service |
47 | /// </summary> | 47 | /// </summary> |
48 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 48 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianAssetServiceConnector")] |
49 | public class SimianAssetServiceConnector : IAssetService, ISharedRegionModule | 49 | public class SimianAssetServiceConnector : IAssetService, ISharedRegionModule |
50 | { | 50 | { |
51 | private static readonly ILog m_log = | 51 | private static readonly ILog m_log = |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs index ffae0da..03b19ae 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs | |||
@@ -43,7 +43,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
43 | /// <summary> | 43 | /// <summary> |
44 | /// Connects authentication/authorization to the SimianGrid backend | 44 | /// Connects authentication/authorization to the SimianGrid backend |
45 | /// </summary> | 45 | /// </summary> |
46 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 46 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianAuthenticationServiceConnector")] |
47 | public class SimianAuthenticationServiceConnector : IAuthenticationService, ISharedRegionModule | 47 | public class SimianAuthenticationServiceConnector : IAuthenticationService, ISharedRegionModule |
48 | { | 48 | { |
49 | private static readonly ILog m_log = | 49 | private static readonly ILog m_log = |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs index 360f0dd..841bfa0 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
47 | /// <summary> | 47 | /// <summary> |
48 | /// Connects avatar appearance data to the SimianGrid backend | 48 | /// Connects avatar appearance data to the SimianGrid backend |
49 | /// </summary> | 49 | /// </summary> |
50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianAvatarServiceConnector")] |
51 | public class SimianAvatarServiceConnector : IAvatarService, ISharedRegionModule | 51 | public class SimianAvatarServiceConnector : IAvatarService, ISharedRegionModule |
52 | { | 52 | { |
53 | private static readonly ILog m_log = | 53 | private static readonly ILog m_log = |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs index 0e4d794..20eaa3a 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs | |||
@@ -112,7 +112,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
112 | // m_log.Warn("Registering region " + regionInfo.RegionName + " (" + regionInfo.RegionID + ") that we are not tracking"); | 112 | // m_log.Warn("Registering region " + regionInfo.RegionName + " (" + regionInfo.RegionID + ") that we are not tracking"); |
113 | 113 | ||
114 | Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0); | 114 | Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0); |
115 | Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, 4096.0); | 115 | Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight); |
116 | 116 | ||
117 | OSDMap extraData = new OSDMap | 117 | OSDMap extraData = new OSDMap |
118 | { | 118 | { |
@@ -297,7 +297,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
297 | List<GridRegion> foundRegions = new List<GridRegion>(); | 297 | List<GridRegion> foundRegions = new List<GridRegion>(); |
298 | 298 | ||
299 | Vector3d minPosition = new Vector3d(xmin, ymin, 0.0); | 299 | Vector3d minPosition = new Vector3d(xmin, ymin, 0.0); |
300 | Vector3d maxPosition = new Vector3d(xmax, ymax, 4096.0); | 300 | Vector3d maxPosition = new Vector3d(xmax, ymax, Constants.RegionHeight); |
301 | 301 | ||
302 | NameValueCollection requestArgs = new NameValueCollection | 302 | NameValueCollection requestArgs = new NameValueCollection |
303 | { | 303 | { |
@@ -395,8 +395,8 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
395 | if (response["Success"].AsBoolean()) | 395 | if (response["Success"].AsBoolean()) |
396 | { | 396 | { |
397 | OSDMap extraData = response["ExtraData"] as OSDMap; | 397 | OSDMap extraData = response["ExtraData"] as OSDMap; |
398 | int enabled = response["Enabled"].AsBoolean() ? (int) OpenSim.Data.RegionFlags.RegionOnline : 0; | 398 | int enabled = response["Enabled"].AsBoolean() ? (int)OpenSim.Framework.RegionFlags.RegionOnline : 0; |
399 | int hypergrid = extraData["HyperGrid"].AsBoolean() ? (int) OpenSim.Data.RegionFlags.Hyperlink : 0; | 399 | int hypergrid = extraData["HyperGrid"].AsBoolean() ? (int)OpenSim.Framework.RegionFlags.Hyperlink : 0; |
400 | int flags = enabled | hypergrid; | 400 | int flags = enabled | hypergrid; |
401 | m_log.DebugFormat("[SGGC] enabled - {0} hg - {1} flags - {2}", enabled, hypergrid, flags); | 401 | m_log.DebugFormat("[SGGC] enabled - {0} hg - {1} flags - {2}", enabled, hypergrid, flags); |
402 | return flags; | 402 | return flags; |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs index f828abb..a391275 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
59 | /// <summary> | 59 | /// <summary> |
60 | /// Connects avatar inventories to the SimianGrid backend | 60 | /// Connects avatar inventories to the SimianGrid backend |
61 | /// </summary> | 61 | /// </summary> |
62 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 62 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianInventoryServiceConnector")] |
63 | public class SimianInventoryServiceConnector : IInventoryService, ISharedRegionModule | 63 | public class SimianInventoryServiceConnector : IInventoryService, ISharedRegionModule |
64 | { | 64 | { |
65 | private static readonly ILog m_log = | 65 | private static readonly ILog m_log = |
@@ -781,7 +781,6 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
781 | invItem.CreationDate = item["CreationDate"].AsInteger(); | 781 | invItem.CreationDate = item["CreationDate"].AsInteger(); |
782 | invItem.CreatorId = item["CreatorID"].AsString(); | 782 | invItem.CreatorId = item["CreatorID"].AsString(); |
783 | invItem.CreatorData = item["CreatorData"].AsString(); | 783 | invItem.CreatorData = item["CreatorData"].AsString(); |
784 | invItem.CreatorIdAsUuid = item["CreatorID"].AsUUID(); | ||
785 | invItem.Description = item["Description"].AsString(); | 784 | invItem.Description = item["Description"].AsString(); |
786 | invItem.Folder = item["ParentID"].AsUUID(); | 785 | invItem.Folder = item["ParentID"].AsUUID(); |
787 | invItem.ID = item["ID"].AsUUID(); | 786 | invItem.ID = item["ID"].AsUUID(); |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs index ca1b64f..854bea4 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
47 | /// Connects avatar presence information (for tracking current location and | 47 | /// Connects avatar presence information (for tracking current location and |
48 | /// message routing) to the SimianGrid backend | 48 | /// message routing) to the SimianGrid backend |
49 | /// </summary> | 49 | /// </summary> |
50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianPresenceServiceConnector")] |
51 | public class SimianPresenceServiceConnector : IPresenceService, IGridUserService, ISharedRegionModule | 51 | public class SimianPresenceServiceConnector : IPresenceService, IGridUserService, ISharedRegionModule |
52 | { | 52 | { |
53 | private static readonly ILog m_log = | 53 | private static readonly ILog m_log = |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs b/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs index 6aefc38..bd8069f 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
59 | /// Connects avatar profile and classified queries to the SimianGrid | 59 | /// Connects avatar profile and classified queries to the SimianGrid |
60 | /// backend | 60 | /// backend |
61 | /// </summary> | 61 | /// </summary> |
62 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 62 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianProfiles")] |
63 | public class SimianProfiles : INonSharedRegionModule | 63 | public class SimianProfiles : INonSharedRegionModule |
64 | { | 64 | { |
65 | private static readonly ILog m_log = | 65 | private static readonly ILog m_log = |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs index f38ebe8..fcb5115 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
45 | /// Connects user account data (creating new users, looking up existing | 45 | /// Connects user account data (creating new users, looking up existing |
46 | /// users) to the SimianGrid backend | 46 | /// users) to the SimianGrid backend |
47 | /// </summary> | 47 | /// </summary> |
48 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 48 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimianUserAccountServiceConnector")] |
49 | public class SimianUserAccountServiceConnector : IUserAccountService, ISharedRegionModule | 49 | public class SimianUserAccountServiceConnector : IUserAccountService, ISharedRegionModule |
50 | { | 50 | { |
51 | private const double CACHE_EXPIRATION_SECONDS = 120.0; | 51 | private const double CACHE_EXPIRATION_SECONDS = 120.0; |