コード例 #1
0
        /** <inheritDoc /> */
        internal override void Write(PortableWriterImpl writer, bool keepPortable)
        {
            writer.WriteBoolean(Local);
            writer.WriteInt(PageSize);

            writer.WriteBoolean(Partition.HasValue);

            if (Partition.HasValue)
            {
                writer.WriteInt(Partition.Value);
            }

            if (Filter == null)
            {
                writer.WriteObject <CacheEntryFilterHolder>(null);
            }
            else
            {
                var holder = new CacheEntryFilterHolder(Filter, (key, val) => Filter.Invoke(
                                                            new CacheEntry <TK, TV>((TK)key, (TV)val)), writer.Marshaller, keepPortable);

                writer.WriteObject(holder);
                writer.WriteLong(holder.Handle);
            }
        }
コード例 #2
0
        /** <inheritDoc /> */
        internal override void Write(BinaryWriter writer, bool keepBinary)
        {
            writer.WriteBoolean(Local);
            writer.WriteInt(PageSize);
            
            writer.WriteBoolean(Partition.HasValue);
            
            if (Partition.HasValue)
                writer.WriteInt(Partition.Value);

            if (Filter == null)
                writer.WriteObject<CacheEntryFilterHolder>(null);
            else
            {
                var holder = new CacheEntryFilterHolder(Filter, (key, val) => Filter.Invoke(
                    new CacheEntry<TK, TV>((TK) key, (TV) val)), writer.Marshaller, keepBinary);

                writer.WriteObject(holder);
            }
        }
コード例 #3
0
        /// <summary>
        /// Writes the scan query.
        /// </summary>
        private void WriteScanQuery(BinaryWriter writer, ScanQuery <TK, TV> qry)
        {
            Debug.Assert(qry != null);

            if (qry.Filter == null)
            {
                writer.WriteByte(BinaryUtils.HdrNull);
            }
            else
            {
                var holder = new CacheEntryFilterHolder(qry.Filter, (key, val) => qry.Filter.Invoke(
                                                            new CacheEntry <TK, TV>((TK)key, (TV)val)), writer.Marshaller, _keepBinary);

                writer.WriteObject(holder);

                writer.WriteByte(FilterPlatformDotnet);
            }

            writer.WriteInt(qry.PageSize);

            writer.WriteInt(qry.Partition ?? -1);

            writer.WriteBoolean(qry.Local);
        }
コード例 #4
0
 private long CacheEntryFilterCreate(long memPtr)
 {
     return(_handleRegistry.Allocate(CacheEntryFilterHolder.CreateInstance(memPtr, _ignite)));
 }
コード例 #5
0
 private long CacheEntryFilterCreate(void *target, long memPtr)
 {
     return(SafeCall(() => _handleRegistry.Allocate(CacheEntryFilterHolder.CreateInstance(memPtr, _ignite))));
 }
コード例 #6
0
 private long CacheEntryFilterCreate(void *target, long memPtr)
 {
     return(SafeCall(() => CacheEntryFilterHolder.CreateInstance(memPtr, _ignite).Handle));
 }