Пример #1
0
        public override void Invoke(AMFContext context)
        {
            MessageOutput messageOutput = context.MessageOutput;

            if ((FluorineConfiguration.Instance.CacheMap != null) && (FluorineConfiguration.Instance.CacheMap.Count > 0))
            {
                for (int i = 0; i < context.AMFMessage.BodyCount; i++)
                {
                    AMFBody bodyAt = context.AMFMessage.GetBodyAt(i);
                    if ((messageOutput.GetResponse(bodyAt) == null) && !bodyAt.IsEmptyTarget)
                    {
                        string target        = bodyAt.Target;
                        IList  parameterList = bodyAt.GetParameterList();
                        string cacheKey      = CacheMap.GenerateCacheKey(target, parameterList);
                        if (FluorineConfiguration.Instance.CacheMap.ContainsValue(cacheKey))
                        {
                            object content = FluorineConfiguration.Instance.CacheMap.Get(cacheKey);
                            if ((log != null) && log.get_IsDebugEnabled())
                            {
                                log.Debug(__Res.GetString("Cache_HitKey", new object[] { bodyAt.Target, cacheKey }));
                            }
                            CachedBody body = new CachedBody(bodyAt, content);
                            messageOutput.AddBody(body);
                        }
                    }
                }
            }
        }
Пример #2
0
		public override void Invoke(AMFContext context) {
			MessageOutput messageOutput = context.MessageOutput;
			if (FluorineConfiguration.Instance.CacheMap != null && FluorineConfiguration.Instance.CacheMap.Count > 0) {
				for (int i = 0; i < context.AMFMessage.BodyCount; i++) {
					AMFBody amfBody = context.AMFMessage.GetBodyAt(i);
					//Check if response exists.
					ResponseBody responseBody = messageOutput.GetResponse(amfBody);
					if (responseBody != null) {
						//AuthenticationFilter may insert response.
						continue;
					}

					if (!amfBody.IsEmptyTarget) {
						string source = amfBody.Target;
						IList arguments = amfBody.GetParameterList();
						string key = GodLesZ.Library.Amf.Configuration.CacheMap.GenerateCacheKey(source, arguments);
						//Flash message
						if (FluorineConfiguration.Instance.CacheMap.ContainsValue(key)) {
							object cachedContent = FluorineConfiguration.Instance.CacheMap.Get(key);

							if (log != null && log.IsDebugEnabled)
								log.Debug(__Res.GetString(__Res.Cache_HitKey, amfBody.Target, key));

							CachedBody cachedBody = new CachedBody(amfBody, cachedContent);
							messageOutput.AddBody(cachedBody);
						}
					}
				}
			}
		}
Пример #3
0
        public override void Invoke(AMFContext context)
        {
            MessageOutput messageOutput = context.MessageOutput;

            if (FluorineConfiguration.Instance.CacheMap != null && FluorineConfiguration.Instance.CacheMap.Count > 0)
            {
                for (int i = 0; i < context.AMFMessage.BodyCount; i++)
                {
                    AMFBody amfBody = context.AMFMessage.GetBodyAt(i);
                    //Check if response exists.
                    ResponseBody responseBody = messageOutput.GetResponse(amfBody);
                    if (responseBody != null)
                    {
                        //AuthenticationFilter may insert response.
                        continue;
                    }

                    if (!amfBody.IsEmptyTarget)
                    {
                        string source    = amfBody.Target;
                        IList  arguments = amfBody.GetParameterList();
                        string key       = FluorineFx.Configuration.CacheMap.GenerateCacheKey(source, arguments);
                        //Flash message
                        if (FluorineConfiguration.Instance.CacheMap.ContainsValue(key))
                        {
                            object cachedContent = FluorineConfiguration.Instance.CacheMap.Get(key);

                            if (log != null && log.IsDebugEnabled)
                            {
                                log.Debug(__Res.GetString(__Res.Cache_HitKey, amfBody.Target, key));
                            }

                            CachedBody cachedBody = new CachedBody(amfBody, cachedContent);
                            messageOutput.AddBody(cachedBody);
                        }
                    }
                }
            }
        }