Beispiel #1
0
        /// <summary>
        /// Writes the instance.
        /// </summary>
        internal static void Write(IBinaryRawWriter writer, IAffinityFunction fun)
        {
            if (fun == null)
            {
                writer.WriteByte(TypeCodeNull);
                return;
            }

            var p = fun as AffinityFunctionBase;

            if (p != null)
            {
                writer.WriteByte(p is FairAffinityFunction ? TypeCodeFair : TypeCodeRendezvous);
                writer.WriteInt(p.Partitions);
                writer.WriteBoolean(p.ExcludeNeighbors);
            }
            else
            {
                writer.WriteByte(TypeCodeUser);

                if (!fun.GetType().IsSerializable)
                {
                    throw new IgniteException("AffinityFunction should be serializable.");
                }

                writer.WriteObject(fun);
                writer.WriteInt(fun.Partitions);  // partition count is written once and can not be changed.
            }
        }
Beispiel #2
0
 /// <summary>
 /// Serialises content to the writer
 /// </summary>
 public override void InternalToBinary(IBinaryRawWriter writer)
 {
     base.InternalToBinary(writer);
     VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);
     writer.WriteInt((int)ReturnCode);
     writer.WriteInt((int)ReportType);
 }
Beispiel #3
0
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteGuid(SiteModelID);
            writer.WriteInt((int)OTGCellBottomLeftX);
            writer.WriteInt((int)OTGCellBottomLeftY);
            writer.WriteDouble(CellSize);
            writer.WriteByte((byte)SurveyedSurfacePatchType);

            writer.WriteBoolean(ProcessingMap != null);
            if (ProcessingMap != null)
            {
                writer.WriteByteArray(ProcessingMap.ToBytes());
            }

            writer.WriteBoolean(IncludedSurveyedSurfaces != null);
            if (IncludedSurveyedSurfaces != null)
            {
                var count = IncludedSurveyedSurfaces.Length;
                writer.WriteInt(count);
                for (int i = 0; i < count; i++)
                {
                    writer.WriteGuid(IncludedSurveyedSurfaces[i]);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Writes the peek modes.
        /// </summary>
        private static void WritePeekModes(ICollection <CachePeekMode> modes, IBinaryRawWriter w)
        {
            if (modes == null)
            {
                w.WriteInt(0);
            }
            else
            {
                w.WriteInt(modes.Count);

                foreach (var m in modes)
                {
                    // Convert bit flag to ordinal.
                    byte val     = 0;
                    var  flagVal = (int)m;

                    while ((flagVal = flagVal >> 1) > 0)
                    {
                        val++;
                    }

                    w.WriteByte(val);
                }
            }
        }
        /// <summary>
        /// Writes the configuration to writer.
        /// </summary>
        public static void Write(IBinaryRawWriter writer, ISwapSpaceSpi spi)
        {
            Debug.Assert(writer != null);

            var fileSwap = spi as FileSwapSpaceSpi;

            if (spi == null)
            {
                writer.WriteByte((byte)Type.None);
            }
            else if (fileSwap != null)
            {
                writer.WriteByte((byte)Type.File);

                writer.WriteString(fileSwap.BaseDirectory);
                writer.WriteFloat(fileSwap.MaximumSparsity);
                writer.WriteInt(fileSwap.MaximumWriteQueueSize);
                writer.WriteInt(fileSwap.ReadStripesNumber);
                writer.WriteInt(fileSwap.WriteBufferSize);
            }
            else
            {
                throw new InvalidOperationException("Unsupported swap space SPI: " + spi.GetType());
            }
        }
Beispiel #6
0
        /// <summary>
        /// Write query arguments.
        /// </summary>
        /// <param name="writer">Writer.</param>
        /// <param name="args">Arguments.</param>
        internal static void WriteQueryArgs(IBinaryRawWriter writer, object[] args)
        {
            if (args == null)
            {
                writer.WriteInt(0);
            }
            else
            {
                writer.WriteInt(args.Length);

                foreach (var arg in args)
                {
                    // Write DateTime as TimeStamp always, otherwise it does not make sense
                    // Wrapped DateTime comparison does not work in SQL
                    var dt = arg as DateTime?;  // Works with DateTime also

                    if (dt != null)
                    {
                        writer.WriteTimestamp(dt);
                    }
                    else
                    {
                        writer.WriteObject(arg);
                    }
                }
            }
        }
        /// <summary>
        /// Writes this instance to a writer.
        /// </summary>
        /// <param name="writer">The writer.</param>
        internal void Write(IBinaryRawWriter writer)
        {
            Debug.Assert(writer != null);

            writer.WriteLong(SystemCacheInitialSize);
            writer.WriteLong(SystemCacheMaxSize);
            writer.WriteInt(PageSize);
            writer.WriteInt(ConcurrencyLevel);
            writer.WriteString(DefaultMemoryPolicyName);

            if (MemoryPolicies != null)
            {
                writer.WriteInt(MemoryPolicies.Count);

                foreach (var policy in MemoryPolicies)
                {
                    if (policy == null)
                    {
                        throw new IgniteException("MemoryConfiguration.MemoryPolicies must not contain null items.");
                    }

                    policy.Write(writer);
                }
            }
            else
            {
                writer.WriteInt(0);
            }
        }
        /// <summary>
        /// Writes the backup filter.
        /// </summary>
        private static void WriteBackupFilter(IBinaryRawWriter writer, RendezvousAffinityFunction func)
        {
            if (func.AffinityBackupFilter == null)
            {
                writer.WriteInt(-1);
                return;
            }

            var filter = func.AffinityBackupFilter as ClusterNodeAttributeAffinityBackupFilter;

            if (filter == null)
            {
                throw new NotSupportedException(string.Format(
                                                    "Unsupported RendezvousAffinityFunction.AffinityBackupFilter: '{0}'. " +
                                                    "Only predefined implementations are supported: '{1}'",
                                                    func.AffinityBackupFilter.GetType().FullName,
                                                    typeof(ClusterNodeAttributeAffinityBackupFilter).Name));
            }

            IgniteArgumentCheck.NotNullOrEmpty(filter.AttributeNames,
                                               "ClusterNodeAttributeAffinityBackupFilter.AttributeNames");

            writer.WriteInt(filter.AttributeNames.Count);

            foreach (var attr in filter.AttributeNames)
            {
                writer.WriteString(attr);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Writes the configuration to writer.
        /// </summary>
        public static void Write(IBinaryRawWriter writer, ISwapSpaceSpi spi)
        {
            Debug.Assert(writer != null);

            var fileSwap = spi as FileSwapSpaceSpi;

            if (spi == null)
            {
                writer.WriteByte((byte) Type.None);
            }
            else if (fileSwap != null)
            {
                writer.WriteByte((byte) Type.File);

                writer.WriteString(fileSwap.BaseDirectory);
                writer.WriteFloat(fileSwap.MaximumSparsity);
                writer.WriteInt(fileSwap.MaximumWriteQueueSize);
                writer.WriteInt(fileSwap.ReadStripesNumber);
                writer.WriteInt(fileSwap.WriteBufferSize);

            }
            else
            {
                throw new InvalidOperationException("Unsupported swap space SPI: " + spi.GetType());
            }
        }
Beispiel #10
0
        /// <summary>
        /// Writes the SQL fields query.
        /// </summary>
        private static void WriteSqlFieldsQuery(IBinaryRawWriter writer, SqlFieldsQuery qry,
                                                bool includeColumns = true)
        {
            Debug.Assert(qry != null);

            writer.WriteString(qry.Schema);
            writer.WriteInt(qry.PageSize);
            writer.WriteInt(-1);  // maxRows: unlimited
            writer.WriteString(qry.Sql);
            QueryBase.WriteQueryArgs(writer, qry.Arguments);

            // .NET client does not discern between different statements for now.
            // We could have ExecuteNonQuery method, which uses StatementType.Update, for example.
            writer.WriteByte((byte)StatementType.Any);

            writer.WriteBoolean(qry.EnableDistributedJoins);
            writer.WriteBoolean(qry.Local);
#pragma warning disable 618
            writer.WriteBoolean(qry.ReplicatedOnly);
#pragma warning restore 618
            writer.WriteBoolean(qry.EnforceJoinOrder);
            writer.WriteBoolean(qry.Colocated);
            writer.WriteBoolean(qry.Lazy);
            writer.WriteTimeSpanAsLong(qry.Timeout);
            writer.WriteBoolean(includeColumns);
        }
Beispiel #11
0
 /// <summary>
 /// Writes this instance to a writer.
 /// </summary>
 internal void Write(IBinaryRawWriter writer)
 {
     writer.WriteString(Name);
     writer.WriteLong(Size);
     writer.WriteString(SwapFilePath);
     writer.WriteInt((int)PageEvictionMode);
     writer.WriteDouble(EvictionThreshold);
     writer.WriteInt(EmptyPagesPoolSize);
 }
Beispiel #12
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            NEECoords.ToBinary(writer);
            writer.WriteInt(OTGCellX);
            writer.WriteInt(OTGCellY);
        }
Beispiel #13
0
        //Procedure ReadFromStream(const Stream : TStream);
        //Procedure WriteToStream(const Stream : TStream);

        /// <summary>
        /// Serializes content of the cell to the writer
        /// </summary>
        public void ToBinary(IBinaryRawWriter writer)
        {
            writer.WriteShort(TargetCCV);
            writer.WriteShort(TargetMDP);
            writer.WriteFloat(TargetLiftThickness);
            writer.WriteInt(TargetPassCount);
            writer.WriteInt(TempWarningLevelMin);
            writer.WriteInt(TempWarningLevelMax);
            writer.WriteByte(TargetCCA);
        }
Beispiel #14
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt(AboveCMVTargetRangeColour.ToArgb());
            writer.WriteInt(WithinCMVTargetRangeColour.ToArgb());
            writer.WriteInt(BelowCMVTargetRangeColour.ToArgb());
        }
Beispiel #15
0
        /// <summary>
        /// Serializes content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt((int)Mode);
            writer.WriteInt(DataPatchNumber);
            writer.WriteInt(DataPatchSize);
        }
Beispiel #16
0
        /// <summary>
        /// Serializes content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt(OriginX);
            writer.WriteInt(OriginY);
            writer.WriteDouble(CellSize);
        }
Beispiel #17
0
 /// <summary>
 /// Serialises content to the writer
 /// </summary>
 public override void InternalToBinary(IBinaryRawWriter writer)
 {
     base.InternalToBinary(writer);
     VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);
     writer.WriteInt(X);
     writer.WriteInt(Y);
     writer.WriteInt(Z);
     writer.WriteInt(DisplayMode);
     writer.WriteBoolean(HasLighting);
 }
Beispiel #18
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>

        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt(OvercompactedColour.ToArgb());
            writer.WriteInt(CompactedColour.ToArgb());
            writer.WriteInt(UndercompactedColour.ToArgb());
        }
Beispiel #19
0
        /// <summary>
        /// Writes this instance to the specified writer.
        /// </summary>
        /// <param name="writer">The writer.</param>
        internal void Write(IBinaryRawWriter writer)
        {
            Debug.Assert(writer != null);

            writer.WriteString(PersistentStorePath);
            writer.WriteTimeSpanAsLong(CheckpointingFrequency);
            writer.WriteLong(CheckpointingPageBufferSize);
            writer.WriteInt(CheckpointingThreads);
            writer.WriteTimeSpanAsLong(LockWaitTime);
            writer.WriteInt(WalHistorySize);
            writer.WriteInt(WalSegments);
            writer.WriteInt(WalSegmentSize);
            writer.WriteString(WalStorePath);
            writer.WriteString(WalArchivePath);
            writer.WriteInt((int)WalMode);
            writer.WriteInt(TlbSize);
            writer.WriteTimeSpanAsLong(WalFlushFrequency);
            writer.WriteLong(WalFsyncDelayNanos);
            writer.WriteInt(WalRecordIteratorBufferSize);
            writer.WriteBoolean(AlwaysWriteFullPages);
            writer.WriteBoolean(MetricsEnabled);
            writer.WriteInt(SubIntervals);
            writer.WriteTimeSpanAsLong(RateTimeInterval);
            writer.WriteInt((int)CheckpointWriteOrder);
        }
Beispiel #20
0
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteLong(InsertUTC.ToBinary());
            writer.WriteByteArray(Content);
            writer.WriteGuid(ProjectUID);
            writer.WriteGuid(MachineUid);
            writer.WriteInt((int)Operation);
            writer.WriteInt((int)Origin);
        }
Beispiel #21
0
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteString(FileName);
            writer.WriteGuid(AssetId);
            writer.WriteBoolean(IsJohnDoe);
            writer.WriteByteArray(TagFileContent);
            writer.WriteInt((int)SubmissionFlags);
            writer.WriteInt((int)OriginSource);
        }
Beispiel #22
0
        /// <summary>
        /// An extension method providing a ToBinary() semantic to BoundingIntegerExtent2D
        /// </summary>
        public static void ToBinary(this BoundingIntegerExtent2D item, IBinaryRawWriter writer)
        {
            const byte VERSION_NUMBER = 1;

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt(item.MinX);
            writer.WriteInt(item.MinY);
            writer.WriteInt(item.MaxX);
            writer.WriteInt(item.MaxY);
        }
Beispiel #23
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteBoolean(DisplayDecoupledColourInPVM);
            writer.WriteBoolean(DisplayTargetCCVColourInPVM);
            writer.WriteInt(TargetCCVColour.ToArgb());
            writer.WriteInt(DefaultDecoupledCMVColour.ToArgb());
        }
Beispiel #24
0
 /// <summary>
 /// Writes this instance to a writer.
 /// </summary>
 internal void Write(IBinaryRawWriter writer)
 {
     writer.WriteString(Name);
     writer.WriteLong(InitialSize);
     writer.WriteLong(MaxSize);
     writer.WriteString(SwapFilePath);
     writer.WriteInt((int)PageEvictionMode);
     writer.WriteDouble(EvictionThreshold);
     writer.WriteInt(EmptyPagesPoolSize);
     writer.WriteBoolean(MetricsEnabled);
 }
Beispiel #25
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt(OverSpeedRangeColour.ToArgb());
            writer.WriteInt(WithinSpeedRangeColour.ToArgb());
            writer.WriteInt(LowerSpeedRangeColour.ToArgb());

            MachineSpeedTarget.ToBinary(writer);
        }
Beispiel #26
0
        /// <summary>
        /// Serializes content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteDouble(Station);
            writer.WriteDouble(InterceptLength);

            writer.WriteInt(OTGCellX);
            writer.WriteInt(OTGCellY);

            writer.WriteFloat(DesignElev);
        }
Beispiel #27
0
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteString(DateSeparator);
            writer.WriteString(TimeSeparator);
            writer.WriteString(ThousandsSeparator);
            writer.WriteString(DecimalSeparator);
            writer.WriteInt((int)Units);
            writer.WriteInt((int)TemperatureUnits);
            writer.WriteDouble(ProjectTimeZoneOffset);
        }
Beispiel #28
0
        public void ToBinary(IBinaryRawWriter writer)
        {
            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteString(FileName);
            writer.WriteGuid(AssetUid);
            writer.WriteBoolean(Success);
            writer.WriteString(Exception);
            writer.WriteInt((int)ReadResult);
            writer.WriteInt((int)SubmissionFlags);
            writer.WriteInt((int)OriginSource);
        }
Beispiel #29
0
        /// <summary>
        /// Writes this instance to the specified writer.
        /// </summary>
        internal void Write(IBinaryRawWriter writer)
        {
            Debug.Assert(writer != null);

            writer.WriteString(Name);
            writer.WriteString(FieldTypeName);
            writer.WriteBoolean(IsKeyField);
            writer.WriteBoolean(NotNull);
            writer.WriteObject(DefaultValue);
            writer.WriteInt(Precision);
            writer.WriteInt(Scale);
        }
Beispiel #30
0
        /// <summary>
        /// Writes this object to the given writer.
        /// </summary>
        public void WriteBinary(IBinaryRawWriter writer, bool changesOnly)
        {
            IgniteArgumentCheck.NotNull(writer, "writer");

            if (_isNew || _dirtyAll || !changesOnly || (_removedKeys == null && _list.All(x => x.IsDirty)))
            {
                // Write in full mode.
                writer.WriteInt(_list.Count);

                foreach (var entry in _list)
                {
                    writer.WriteString(entry.Key);

                    // Write as byte array to enable partial deserialization.
                    writer.WriteByteArray(entry.GetBytes());
                }
            }
            else
            {
                // Write in diff mode.
                var removed = GetRemovedKeys();

                var count = _list.Count(x => x.IsDirty) + (removed == null ? 0 : removed.Count);

                writer.WriteInt(count);  // reserve count

                // Write removed keys as [key + null].
                if (removed != null)
                {
                    foreach (var removedKey in removed)
                    {
                        writer.WriteString(removedKey);
                        writer.WriteByteArray(null);
                    }
                }

                // Write dirty items.
                foreach (var entry in _list)
                {
                    if (!entry.IsDirty)
                    {
                        continue;
                    }

                    writer.WriteString(entry.Key);

                    // Write as byte array to enable partial deserialization.
                    writer.WriteByteArray(entry.GetBytes());
                }
            }
        }
Beispiel #31
0
        /// <summary>
        /// Serialises content to the writer
        /// </summary>
        public override void InternalToBinary(IBinaryRawWriter writer)
        {
            base.InternalToBinary(writer);

            VersionSerializationHelper.EmitVersionByte(writer, VERSION_NUMBER);

            writer.WriteInt((int)ReturnCode);
            writer.WriteInt((int)ReportType);
            writer.WriteInt(GriddedReportDataRowList.Count);
            for (int i = 0; i < GriddedReportDataRowList.Count; i++)
            {
                GriddedReportDataRowList[i].ToBinary(writer);
            }
        }
        /// <summary>
        /// Writes this object to the given writer.
        /// </summary>
        public void WriteBinary(IBinaryRawWriter writer, bool changesOnly)
        {
            ((IgniteSessionStateItemCollection)Items).WriteBinary(writer, changesOnly);
            writer.WriteByteArray(SerializeStaticObjects());
            writer.WriteInt(Timeout);

            writer.WriteGuid(LockNodeId);
            writer.WriteLong(LockId);
            writer.WriteTimestamp(LockTime);
        }
        /// <summary>
        /// Writes the instance.
        /// </summary>
        internal static void Write(IBinaryRawWriter writer, IAffinityFunction fun, object userFuncOverride = null)
        {
            Debug.Assert(writer != null);

            if (fun == null)
            {
                writer.WriteByte(TypeCodeNull);
                return;
            }

            // 1) Type code
            // 2) Partitions
            // 3) ExcludeNeighbors
            // 4) Override flags
            // 5) User object

            var p = fun as AffinityFunctionBase;

            if (p != null)
            {
                writer.WriteByte(p is FairAffinityFunction ? TypeCodeFair : TypeCodeRendezvous);
                writer.WriteInt(p.Partitions);
                writer.WriteBoolean(p.ExcludeNeighbors);

                var overrideFlags = GetOverrideFlags(p.GetType());
                writer.WriteByte((byte) overrideFlags);

                // Do not write user func if there is nothing overridden
                WriteUserFunc(writer, overrideFlags != UserOverrides.None ? fun : null, userFuncOverride);
            }
            else
            {
                writer.WriteByte(TypeCodeUser);
                writer.WriteInt(fun.Partitions);
                writer.WriteBoolean(false); // Exclude neighbors
                writer.WriteByte((byte) UserOverrides.All);
                WriteUserFunc(writer, fun, userFuncOverride);
            }
        }
Beispiel #34
0
        /// <summary>
        /// Writes this instance.
        /// </summary>
        internal void Write(IBinaryRawWriter writer)
        {
            writer.WriteString(KeyTypeName);
            writer.WriteString(ValueTypeName);

            if (Fields != null)
            {
                writer.WriteInt(Fields.Count);

                foreach (var field in Fields)
                {
                    writer.WriteString(field.Name);
                    writer.WriteString(field.FieldTypeName);
                }
            }
            else
                writer.WriteInt(0);

            if (Aliases != null)
            {
                writer.WriteInt(Aliases.Count);

                foreach (var queryAlias in Aliases)
                {
                    writer.WriteString(queryAlias.FullName);
                    writer.WriteString(queryAlias.Alias);
                }
            }
            else
                writer.WriteInt(0);

            if (Indexes != null)
            {
                writer.WriteInt(Indexes.Count);

                foreach (var index in Indexes)
                {
                    if (index == null)
                        throw new InvalidOperationException("Invalid cache configuration: QueryIndex can't be null.");

                    index.Write(writer);
                }
            }
            else
                writer.WriteInt(0);
        }
Beispiel #35
0
        /// <summary>
        /// Writes this instance.
        /// </summary>
        internal void Write(IBinaryRawWriter writer)
        {
            writer.WriteString(Name);
            writer.WriteByte((byte) IndexType);

            if (Fields != null)
            {
                writer.WriteInt(Fields.Count);

                foreach (var field in Fields)
                {
                    writer.WriteString(field.Name);
                    writer.WriteBoolean(field.IsDescending);
                }
            }
            else
                writer.WriteInt(0);
        }
 /// <summary>
 /// Writes to the specified writer.
 /// </summary>
 internal void Write(IBinaryRawWriter writer)
 {
     writer.WriteInt(NearStartSize);
     EvictionPolicyBase.Write(writer, EvictionPolicy);
 }
Beispiel #37
0
        /// <summary>
        /// Writes the key.
        /// </summary>
        private static void WriteKey(DbCacheKey key, IBinaryRawWriter writer, bool includeNames)
        {
            writer.WriteString(key.Key);

            if (key.EntitySetVersions != null)
            {
                writer.WriteInt(key.EntitySetVersions.Count);

                // Versions should be in the same order, so we can't iterate over the dictionary.
                foreach (var entitySet in key.EntitySets)
                {
                    writer.WriteLong(key.EntitySetVersions[entitySet.Name]);

                    if (includeNames)
                        writer.WriteString(entitySet.Name);
                }
            }
            else
            {
                writer.WriteInt(-1);
            }
        }
        /** <inheritdoc /> */
        internal override void Write(IBinaryRawWriter writer)
        {
            base.Write(writer);

            var eps = Endpoints;

            if (eps != null)
            {
                writer.WriteInt(eps.Count);

                foreach (var ep in eps)
                    writer.WriteString(ep);
            }
            else
                writer.WriteInt(0);
        }
 /// <summary>
 /// Writes this instance to the specified writer.
 /// </summary>
 internal void Write(IBinaryRawWriter writer)
 {
     writer.WriteInt(AckSendThreshold);
     writer.WriteLong((long) ConnectTimeout.TotalMilliseconds);
     writer.WriteBoolean(DirectBuffer);
     writer.WriteBoolean(DirectSendBuffer);
     writer.WriteLong((long) IdleConnectionTimeout.TotalMilliseconds);
     writer.WriteString(LocalAddress);
     writer.WriteInt(LocalPort);
     writer.WriteInt(LocalPortRange);
     writer.WriteLong((long) MaxConnectTimeout.TotalMilliseconds);
     writer.WriteInt(MessageQueueLimit);
     writer.WriteInt(ReconnectCount);
     writer.WriteInt(SelectorsCount);
     writer.WriteInt(SlowClientQueueLimit);
     writer.WriteInt(SocketReceiveBufferSize);
     writer.WriteInt(SocketSendBufferSize);
     writer.WriteBoolean(TcpNoDelay);
     writer.WriteInt(UnacknowledgedMessagesBufferSize);
 }
Beispiel #40
0
        /// <summary>
        /// Writes this instane to the specified writer.
        /// </summary>
        /// <param name="writer">The writer.</param>
        internal void Write(IBinaryRawWriter writer)
        {
            writer.WriteInt((int) AtomicityMode);
            writer.WriteInt((int) AtomicWriteOrderMode);
            writer.WriteInt(Backups);
            writer.WriteInt((int) CacheMode);
            writer.WriteBoolean(CopyOnRead);
            writer.WriteBoolean(EagerTtl);
            writer.WriteBoolean(EnableSwap);
            writer.WriteBoolean(EvictSynchronized);
            writer.WriteInt(EvictSynchronizedConcurrencyLevel);
            writer.WriteInt(EvictSynchronizedKeyBufferSize);
            writer.WriteLong((long) EvictSynchronizedTimeout.TotalMilliseconds);
            writer.WriteBoolean(Invalidate);
            writer.WriteBoolean(KeepBinaryInStore);
            writer.WriteBoolean(LoadPreviousValue);
            writer.WriteLong((long) LockTimeout.TotalMilliseconds);
            writer.WriteLong((long) LongQueryWarningTimeout.TotalMilliseconds);
            writer.WriteInt(MaxConcurrentAsyncOperations);
            writer.WriteFloat(MaxEvictionOverflowRatio);
            writer.WriteInt((int) MemoryMode);
            writer.WriteString(Name);
            writer.WriteLong(OffHeapMaxMemory);
            writer.WriteBoolean(ReadFromBackup);
            writer.WriteInt(RebalanceBatchSize);
            writer.WriteLong((long) RebalanceDelay.TotalMilliseconds);
            writer.WriteInt((int) RebalanceMode);
            writer.WriteLong((long) RebalanceThrottle.TotalMilliseconds);
            writer.WriteLong((long) RebalanceTimeout.TotalMilliseconds);
            writer.WriteBoolean(SqlEscapeAll);
            writer.WriteInt(SqlOnheapRowCacheSize);
            writer.WriteInt(StartSize);
            writer.WriteInt(WriteBehindBatchSize);
            writer.WriteBoolean(WriteBehindEnabled);
            writer.WriteLong((long) WriteBehindFlushFrequency.TotalMilliseconds);
            writer.WriteInt(WriteBehindFlushSize);
            writer.WriteInt(WriteBehindFlushThreadCount);
            writer.WriteInt((int) WriteSynchronizationMode);
            writer.WriteObject(CacheStoreFactory);

            if (QueryEntities != null)
            {
                writer.WriteInt(QueryEntities.Count);

                foreach (var entity in QueryEntities)
                {
                    if (entity == null)
                        throw new InvalidOperationException("Invalid cache configuration: QueryEntity can't be null.");

                    entity.Write(writer);
                }
            }
            else
                writer.WriteInt(0);
        }
        /// <summary>
        /// Writes to the specified writer.
        /// </summary>
        internal static void Write(IBinaryRawWriter writer, IEvictionPolicy policy)
        {
            if (policy == null)
            {
                writer.WriteByte(0);
                return;
            }

            var p = policy as EvictionPolicyBase;

            if (p == null)
            {
                throw new NotSupportedException(
                    string.Format("Unsupported Eviction Policy: {0}. Only predefined eviction policy types " +
                                  "are supported: {1}, {2}", policy.GetType(), typeof (LruEvictionPolicy),
                        typeof (FifoEvictionPolicy)));
            }

            writer.WriteByte(p is FifoEvictionPolicy ? (byte) 1 : (byte) 2);

            writer.WriteInt(p.BatchSize);
            writer.WriteInt(p.MaxSize);
            writer.WriteLong(p.MaxMemorySize);
        }
        /// <summary>
        /// Writes this object to the given writer.
        /// </summary>
        public void WriteBinary(IBinaryRawWriter writer, bool changesOnly)
        {
            IgniteArgumentCheck.NotNull(writer, "writer");

            if (_isNew || _dirtyAll || !changesOnly || (_removedKeys == null && _list.All(x => x.IsDirty)))
            {
                // Write in full mode.
                writer.WriteInt(_list.Count);

                foreach (var entry in _list)
                {
                    writer.WriteString(entry.Key);

                    // Write as byte array to enable partial deserialization.
                    writer.WriteByteArray(entry.GetBytes());
                }
            }
            else
            {
                // Write in diff mode.
                var removed = GetRemovedKeys();

                var count = _list.Count(x => x.IsDirty) + (removed == null ? 0 : removed.Count);

                writer.WriteInt(count);  // reserve count

                // Write removed keys as [key + null].
                if (removed != null)
                {
                    foreach (var removedKey in removed)
                    {
                        writer.WriteString(removedKey);
                        writer.WriteByteArray(null);
                    }
                }

                // Write dirty items.
                foreach (var entry in _list)
                {
                    if (!entry.IsDirty)
                        continue;

                    writer.WriteString(entry.Key);

                    // Write as byte array to enable partial deserialization.
                    writer.WriteByteArray(entry.GetBytes());
                }
            }
        }
        /** <inheritdoc /> */
        internal override void Write(IBinaryRawWriter writer)
        {
            base.Write(writer);

            writer.WriteString(LocalAddress);
            writer.WriteString(MulticastGroup);
            writer.WriteInt(MulticastPort);
            writer.WriteInt(AddressRequestAttempts);
            writer.WriteInt((int) ResponseTimeout.TotalMilliseconds);

            writer.WriteBoolean(TimeToLive.HasValue);

            if (TimeToLive.HasValue)
                writer.WriteInt(TimeToLive.Value);
        }
Beispiel #44
0
        /// <summary>
        /// Writes the instance.
        /// </summary>
        internal static void Write(IBinaryRawWriter writer, IAffinityFunction fun)
        {
            if (fun == null)
            {
                writer.WriteByte(TypeCodeNull);
                return;
            }

            var p = fun as AffinityFunctionBase;

            if (p != null)
            {
                ValidateAffinityFunctionType(p.GetType());
                writer.WriteByte(p is FairAffinityFunction ? TypeCodeFair : TypeCodeRendezvous);
                writer.WriteInt(p.Partitions);
                writer.WriteBoolean(p.ExcludeNeighbors);
            }
            else
            {
                writer.WriteByte(TypeCodeUser);

                if (!fun.GetType().IsSerializable)
                    throw new IgniteException("AffinityFunction should be serializable.");

                writer.WriteObject(fun);
                writer.WriteInt(fun.Partitions);  // partition count is written once and can not be changed.
            }
        }
        /// <summary>
        /// Writes this instance to the specified writer.
        /// </summary>
        internal void Write(IBinaryRawWriter writer)
        {
            var ipFinder = IpFinder;

            if (ipFinder != null)
            {
                writer.WriteBoolean(true);

                var finder = ipFinder as TcpDiscoveryIpFinderBase;

                if (finder == null)
                    throw new InvalidOperationException("Unsupported IP finder: " + ipFinder.GetType());

                finder.Write(writer);
            }
            else
                writer.WriteBoolean(false);

            writer.WriteLong((long) SocketTimeout.TotalMilliseconds);
            writer.WriteLong((long) AckTimeout.TotalMilliseconds);
            writer.WriteLong((long) MaxAckTimeout.TotalMilliseconds);
            writer.WriteLong((long) NetworkTimeout.TotalMilliseconds);
            writer.WriteLong((long) JoinTimeout.TotalMilliseconds);

            writer.WriteBoolean(ForceServerMode);
            writer.WriteBoolean(ClientReconnectDisabled);
            writer.WriteString(LocalAddress);
            writer.WriteInt(ReconnectCount);
            writer.WriteInt(LocalPort);
            writer.WriteInt(LocalPortRange);
            writer.WriteInt(MaxMissedHeartbeats);
            writer.WriteInt(MaxMissedClientHeartbeats);
            writer.WriteLong((long) StatisticsPrintFrequency.TotalMilliseconds);
            writer.WriteLong((long) IpFinderCleanFrequency.TotalMilliseconds);
            writer.WriteInt(ThreadPriority);
            writer.WriteLong((long) HeartbeatFrequency.TotalMilliseconds);
            writer.WriteInt(TopologyHistorySize);
        }