/// <summary> /// Checks the default properties. /// </summary> /// <param name="cfg">Config.</param> private static void CheckDefaultProperties(ClientConnectorConfiguration cfg) { Assert.AreEqual(ClientConnectorConfiguration.DefaultPort, cfg.Port); Assert.AreEqual(ClientConnectorConfiguration.DefaultPortRange, cfg.PortRange); Assert.AreEqual(ClientConnectorConfiguration.DefaultMaxOpenCursorsPerConnection, cfg.MaxOpenCursorsPerConnection); Assert.AreEqual(ClientConnectorConfiguration.DefaultSocketBufferSize, cfg.SocketReceiveBufferSize); Assert.AreEqual(ClientConnectorConfiguration.DefaultSocketBufferSize, cfg.SocketSendBufferSize); Assert.AreEqual(ClientConnectorConfiguration.DefaultTcpNoDelay, cfg.TcpNoDelay); Assert.AreEqual(ClientConnectorConfiguration.DefaultThreadPoolSize, cfg.ThreadPoolSize); }
/// <summary> /// Reads data from specified reader into current instance. /// </summary> /// <param name="r">The binary reader.</param> private void ReadCore(BinaryReader r) { // Simple properties _clientMode = r.ReadBooleanNullable(); IncludedEventTypes = r.ReadIntArray(); _metricsExpireTime = r.ReadTimeSpanNullable(); _metricsHistorySize = r.ReadIntNullable(); _metricsLogFrequency = r.ReadTimeSpanNullable(); _metricsUpdateFrequency = r.ReadTimeSpanNullable(); _networkSendRetryCount = r.ReadIntNullable(); _networkSendRetryDelay = r.ReadTimeSpanNullable(); _networkTimeout = r.ReadTimeSpanNullable(); WorkDirectory = r.ReadString(); Localhost = r.ReadString(); _isDaemon = r.ReadBooleanNullable(); _failureDetectionTimeout = r.ReadTimeSpanNullable(); _clientFailureDetectionTimeout = r.ReadTimeSpanNullable(); _longQueryWarningTimeout = r.ReadTimeSpanNullable(); _isActiveOnStart = r.ReadBooleanNullable(); // Thread pools _publicThreadPoolSize = r.ReadIntNullable(); _stripedThreadPoolSize = r.ReadIntNullable(); _serviceThreadPoolSize = r.ReadIntNullable(); _systemThreadPoolSize = r.ReadIntNullable(); _asyncCallbackThreadPoolSize = r.ReadIntNullable(); _managementThreadPoolSize = r.ReadIntNullable(); _dataStreamerThreadPoolSize = r.ReadIntNullable(); _utilityCacheThreadPoolSize = r.ReadIntNullable(); _queryThreadPoolSize = r.ReadIntNullable(); // Cache config var cacheCfgCount = r.ReadInt(); CacheConfiguration = new List <CacheConfiguration>(cacheCfgCount); for (int i = 0; i < cacheCfgCount; i++) { CacheConfiguration.Add(new CacheConfiguration(r)); } // Discovery config DiscoverySpi = r.ReadBoolean() ? new TcpDiscoverySpi(r) : null; // Communication config CommunicationSpi = r.ReadBoolean() ? new TcpCommunicationSpi(r) : null; // Binary config if (r.ReadBoolean()) { BinaryConfiguration = BinaryConfiguration ?? new BinaryConfiguration(); if (r.ReadBoolean()) { BinaryConfiguration.CompactFooter = r.ReadBoolean(); } if (r.ReadBoolean()) { BinaryConfiguration.NameMapper = BinaryBasicNameMapper.SimpleNameInstance; } } // User attributes UserAttributes = Enumerable.Range(0, r.ReadInt()) .ToDictionary(x => r.ReadString(), x => r.ReadObject <object>()); // Atomic if (r.ReadBoolean()) { AtomicConfiguration = new AtomicConfiguration { AtomicSequenceReserveSize = r.ReadInt(), Backups = r.ReadInt(), CacheMode = (CacheMode)r.ReadInt() }; } // Tx if (r.ReadBoolean()) { TransactionConfiguration = new TransactionConfiguration { PessimisticTransactionLogSize = r.ReadInt(), DefaultTransactionConcurrency = (TransactionConcurrency)r.ReadInt(), DefaultTransactionIsolation = (TransactionIsolation)r.ReadInt(), DefaultTimeout = TimeSpan.FromMilliseconds(r.ReadLong()), PessimisticTransactionLogLinger = TimeSpan.FromMilliseconds(r.ReadInt()) }; } // Event storage switch (r.ReadByte()) { case 1: EventStorageSpi = new NoopEventStorageSpi(); break; case 2: EventStorageSpi = MemoryEventStorageSpi.Read(r); break; } if (r.ReadBoolean()) { MemoryConfiguration = new MemoryConfiguration(r); } // SQL. if (r.ReadBoolean()) { #pragma warning disable 618 // Obsolete SqlConnectorConfiguration = new SqlConnectorConfiguration(r); #pragma warning restore 618 } // Client. if (r.ReadBoolean()) { ClientConnectorConfiguration = new ClientConnectorConfiguration(r); } ClientConnectorConfigurationEnabled = r.ReadBoolean(); // Persistence. if (r.ReadBoolean()) { PersistentStoreConfiguration = new PersistentStoreConfiguration(r); } }
/// <summary> /// Writes this instance to a writer. /// </summary> /// <param name="writer">The writer.</param> internal void Write(BinaryWriter writer) { Debug.Assert(writer != null); // Simple properties writer.WriteBooleanNullable(_clientMode); writer.WriteIntArray(IncludedEventTypes == null ? null : IncludedEventTypes.ToArray()); writer.WriteTimeSpanAsLongNullable(_metricsExpireTime); writer.WriteIntNullable(_metricsHistorySize); writer.WriteTimeSpanAsLongNullable(_metricsLogFrequency); writer.WriteTimeSpanAsLongNullable(_metricsUpdateFrequency); writer.WriteIntNullable(_networkSendRetryCount); writer.WriteTimeSpanAsLongNullable(_networkSendRetryDelay); writer.WriteTimeSpanAsLongNullable(_networkTimeout); writer.WriteString(WorkDirectory); writer.WriteString(Localhost); writer.WriteBooleanNullable(_isDaemon); writer.WriteTimeSpanAsLongNullable(_failureDetectionTimeout); writer.WriteTimeSpanAsLongNullable(_clientFailureDetectionTimeout); writer.WriteTimeSpanAsLongNullable(_longQueryWarningTimeout); writer.WriteBooleanNullable(_isActiveOnStart); // Thread pools writer.WriteIntNullable(_publicThreadPoolSize); writer.WriteIntNullable(_stripedThreadPoolSize); writer.WriteIntNullable(_serviceThreadPoolSize); writer.WriteIntNullable(_systemThreadPoolSize); writer.WriteIntNullable(_asyncCallbackThreadPoolSize); writer.WriteIntNullable(_managementThreadPoolSize); writer.WriteIntNullable(_dataStreamerThreadPoolSize); writer.WriteIntNullable(_utilityCacheThreadPoolSize); writer.WriteIntNullable(_queryThreadPoolSize); // Cache config var caches = CacheConfiguration; if (caches == null) { writer.WriteInt(0); } else { writer.WriteInt(caches.Count); foreach (var cache in caches) { cache.Write(writer); } } // Discovery config var disco = DiscoverySpi; if (disco != null) { writer.WriteBoolean(true); var tcpDisco = disco as TcpDiscoverySpi; if (tcpDisco == null) { throw new InvalidOperationException("Unsupported discovery SPI: " + disco.GetType()); } tcpDisco.Write(writer); } else { writer.WriteBoolean(false); } // Communication config var comm = CommunicationSpi; if (comm != null) { writer.WriteBoolean(true); var tcpComm = comm as TcpCommunicationSpi; if (tcpComm == null) { throw new InvalidOperationException("Unsupported communication SPI: " + comm.GetType()); } tcpComm.Write(writer); } else { writer.WriteBoolean(false); } // Binary config if (BinaryConfiguration != null) { writer.WriteBoolean(true); if (BinaryConfiguration.CompactFooterInternal != null) { writer.WriteBoolean(true); writer.WriteBoolean(BinaryConfiguration.CompactFooter); } else { writer.WriteBoolean(false); } // Name mapper. var mapper = BinaryConfiguration.NameMapper as BinaryBasicNameMapper; writer.WriteBoolean(mapper != null && mapper.IsSimpleName); } else { writer.WriteBoolean(false); } // User attributes var attrs = UserAttributes; if (attrs == null) { writer.WriteInt(0); } else { writer.WriteInt(attrs.Count); foreach (var pair in attrs) { writer.WriteString(pair.Key); writer.Write(pair.Value); } } // Atomic if (AtomicConfiguration != null) { writer.WriteBoolean(true); writer.WriteInt(AtomicConfiguration.AtomicSequenceReserveSize); writer.WriteInt(AtomicConfiguration.Backups); writer.WriteInt((int)AtomicConfiguration.CacheMode); } else { writer.WriteBoolean(false); } // Tx if (TransactionConfiguration != null) { writer.WriteBoolean(true); writer.WriteInt(TransactionConfiguration.PessimisticTransactionLogSize); writer.WriteInt((int)TransactionConfiguration.DefaultTransactionConcurrency); writer.WriteInt((int)TransactionConfiguration.DefaultTransactionIsolation); writer.WriteLong((long)TransactionConfiguration.DefaultTimeout.TotalMilliseconds); writer.WriteInt((int)TransactionConfiguration.PessimisticTransactionLogLinger.TotalMilliseconds); } else { writer.WriteBoolean(false); } // Event storage if (EventStorageSpi == null) { writer.WriteByte(0); } else if (EventStorageSpi is NoopEventStorageSpi) { writer.WriteByte(1); } else { var memEventStorage = EventStorageSpi as MemoryEventStorageSpi; if (memEventStorage == null) { throw new IgniteException(string.Format( "Unsupported IgniteConfiguration.EventStorageSpi: '{0}'. " + "Supported implementations: '{1}', '{2}'.", EventStorageSpi.GetType(), typeof(NoopEventStorageSpi), typeof(MemoryEventStorageSpi))); } writer.WriteByte(2); memEventStorage.Write(writer); } if (MemoryConfiguration != null) { writer.WriteBoolean(true); MemoryConfiguration.Write(writer); } else { writer.WriteBoolean(false); } // SQL connector. #pragma warning disable 618 // Obsolete if (SqlConnectorConfiguration != null) { writer.WriteBoolean(true); SqlConnectorConfiguration.Write(writer); } #pragma warning restore 618 else { writer.WriteBoolean(false); } // Client connector. if (ClientConnectorConfiguration != null) { writer.WriteBoolean(true); ClientConnectorConfiguration.Write(writer); } else { writer.WriteBoolean(false); } writer.WriteBoolean(ClientConnectorConfigurationEnabled); // Persistence. if (PersistentStoreConfiguration != null) { writer.WriteBoolean(true); PersistentStoreConfiguration.Write(writer); } else { writer.WriteBoolean(false); } // Plugins (should be last) if (PluginConfigurations != null) { var pos = writer.Stream.Position; writer.WriteInt(0); // reserve count var cnt = 0; foreach (var cfg in PluginConfigurations) { if (cfg.PluginConfigurationClosureFactoryId != null) { writer.WriteInt(cfg.PluginConfigurationClosureFactoryId.Value); cfg.WriteBinary(writer); cnt++; } } writer.Stream.WriteInt(pos, cnt); } else { writer.WriteInt(0); } }