예제 #1
0
        /// <summary>
        /// Writes the load cache data to the writer.
        /// </summary>
        private void WriteLoadCacheData(BinaryWriter writer, ICacheEntryFilter <TK, TV> p, object[] args)
        {
            if (p != null)
            {
                var p0 = new CacheEntryFilterHolder(p, (k, v) => p.Invoke(new CacheEntry <TK, TV>((TK)k, (TV)v)),
                                                    Marshaller, IsKeepBinary);

                writer.WriteObjectDetached(p0);
            }
            else
            {
                writer.WriteObjectDetached <CacheEntryFilterHolder>(null);
            }

            if (args != null && args.Length > 0)
            {
                writer.WriteInt(args.Length);

                foreach (var o in args)
                {
                    writer.WriteObjectDetached(o);
                }
            }
            else
            {
                writer.WriteInt(0);
            }
        }
예제 #2
0
        /// <summary>
        /// Writes the load cache data to the writer.
        /// </summary>
        private void WriteLoadCacheData(IBinaryRawWriter writer, ICacheEntryFilter <TK, TV> p, object[] args)
        {
            if (p != null)
            {
                var p0 = new CacheEntryFilterHolder(p, (k, v) => p.Invoke(new CacheEntry <TK, TV>((TK)k, (TV)v)),
                                                    Marshaller, IsKeepBinary);

                writer.WriteObject(p0);
            }
            else
            {
                writer.WriteObject <CacheEntryFilterHolder>(null);
            }

            writer.WriteArray(args);
        }
예제 #3
0
        /// <summary>
        /// Loads the cache.
        /// </summary>
        private void LoadCache0(ICacheEntryFilter <TK, TV> p, object[] args, int opId)
        {
            DoOutInOpX(opId, writer =>
            {
                if (p != null)
                {
                    var p0 = new CacheEntryFilterHolder(p, (k, v) => p.Invoke(new CacheEntry <TK, TV>((TK)k, (TV)v)),
                                                        Marshaller, IsKeepBinary);

                    writer.WriteObject(p0);
                }
                else
                {
                    writer.WriteObject <CacheEntryFilterHolder>(null);
                }

                writer.WriteArray(args);
            }, ReadException);
        }
예제 #4
0
        /// <summary>
        /// Loads the cache.
        /// </summary>
        private void LoadCache0(ICacheEntryFilter <TK, TV> p, object[] args, int opId)
        {
            DoOutOp(opId, writer =>
            {
                if (p != null)
                {
                    var p0 = new CacheEntryFilterHolder(p, (k, v) => p.Invoke(new CacheEntry <TK, TV>((TK)k, (TV)v)),
                                                        Marshaller, KeepPortable);
                    writer.WriteObject(p0);
                    writer.WriteLong(p0.Handle);
                }
                else
                {
                    writer.WriteObject <CacheEntryFilterHolder>(null);
                }

                writer.WriteObjectArray(args);
            });
        }