/// <summary> /// Initializes a new instance of the <see cref="CacheConfiguration"/> class. /// </summary> /// <param name="reader">The reader.</param> internal CacheConfiguration(IBinaryRawReader reader) { AtomicityMode = (CacheAtomicityMode)reader.ReadInt(); AtomicWriteOrderMode = (CacheAtomicWriteOrderMode)reader.ReadInt(); Backups = reader.ReadInt(); CacheMode = (CacheMode)reader.ReadInt(); CopyOnRead = reader.ReadBoolean(); EagerTtl = reader.ReadBoolean(); EnableSwap = reader.ReadBoolean(); EvictSynchronized = reader.ReadBoolean(); EvictSynchronizedConcurrencyLevel = reader.ReadInt(); EvictSynchronizedKeyBufferSize = reader.ReadInt(); EvictSynchronizedTimeout = reader.ReadLongAsTimespan(); Invalidate = reader.ReadBoolean(); KeepBinaryInStore = reader.ReadBoolean(); LoadPreviousValue = reader.ReadBoolean(); LockTimeout = reader.ReadLongAsTimespan(); LongQueryWarningTimeout = reader.ReadLongAsTimespan(); MaxConcurrentAsyncOperations = reader.ReadInt(); MaxEvictionOverflowRatio = reader.ReadFloat(); MemoryMode = (CacheMemoryMode)reader.ReadInt(); Name = reader.ReadString(); OffHeapMaxMemory = reader.ReadLong(); ReadFromBackup = reader.ReadBoolean(); RebalanceBatchSize = reader.ReadInt(); RebalanceDelay = reader.ReadLongAsTimespan(); RebalanceMode = (CacheRebalanceMode)reader.ReadInt(); RebalanceThrottle = reader.ReadLongAsTimespan(); RebalanceTimeout = reader.ReadLongAsTimespan(); SqlEscapeAll = reader.ReadBoolean(); SqlOnheapRowCacheSize = reader.ReadInt(); StartSize = reader.ReadInt(); WriteBehindBatchSize = reader.ReadInt(); WriteBehindEnabled = reader.ReadBoolean(); WriteBehindFlushFrequency = reader.ReadLongAsTimespan(); WriteBehindFlushSize = reader.ReadInt(); WriteBehindFlushThreadCount = reader.ReadInt(); WriteSynchronizationMode = (CacheWriteSynchronizationMode)reader.ReadInt(); ReadThrough = reader.ReadBoolean(); WriteThrough = reader.ReadBoolean(); CacheStoreFactory = reader.ReadObject <IFactory <ICacheStore> >(); var count = reader.ReadInt(); QueryEntities = count == 0 ? null : Enumerable.Range(0, count).Select(x => new QueryEntity(reader)).ToList(); NearConfiguration = reader.ReadBoolean() ? new NearCacheConfiguration(reader) : null; EvictionPolicy = EvictionPolicyBase.Read(reader); AffinityFunction = AffinityFunctionBase.Read(reader); }
/// <summary> /// Writes this instance 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.WriteBoolean(ReadThrough); writer.WriteBoolean(WriteThrough); 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); } if (NearConfiguration != null) { writer.WriteBoolean(true); NearConfiguration.Write(writer); } else { writer.WriteBoolean(false); } EvictionPolicyBase.Write(writer, EvictionPolicy); AffinityFunctionBase.Write(writer, AffinityFunction); }