use of org.apache.ignite.configuration.PlatformCacheConfiguration in project ignite by apache.
the class PlatformConfigurationUtils method writeCacheConfiguration.
/**
* Writes cache configuration.
*
* @param writer Writer.
* @param ccfg Configuration.
*/
public static void writeCacheConfiguration(BinaryRawWriter writer, CacheConfiguration ccfg) {
assert writer != null;
assert ccfg != null;
writeEnumInt(writer, ccfg.getAtomicityMode(), CacheConfiguration.DFLT_CACHE_ATOMICITY_MODE);
writer.writeInt(ccfg.getBackups());
writeEnumInt(writer, ccfg.getCacheMode(), CacheConfiguration.DFLT_CACHE_MODE);
writer.writeBoolean(ccfg.isCopyOnRead());
writer.writeBoolean(ccfg.isEagerTtl());
writer.writeBoolean(ccfg.isInvalidate());
writer.writeBoolean(ccfg.isStoreKeepBinary());
writer.writeBoolean(ccfg.isLoadPreviousValue());
writer.writeLong(ccfg.getDefaultLockTimeout());
// noinspection deprecation
writer.writeLong(ccfg.getLongQueryWarningTimeout());
writer.writeInt(ccfg.getMaxConcurrentAsyncOperations());
writer.writeString(ccfg.getName());
writer.writeBoolean(ccfg.isReadFromBackup());
writer.writeInt(ccfg.getRebalanceBatchSize());
writer.writeLong(ccfg.getRebalanceDelay());
writeEnumInt(writer, ccfg.getRebalanceMode(), CacheConfiguration.DFLT_REBALANCE_MODE);
writer.writeLong(ccfg.getRebalanceThrottle());
writer.writeLong(ccfg.getRebalanceTimeout());
writer.writeBoolean(ccfg.isSqlEscapeAll());
writer.writeInt(ccfg.getWriteBehindBatchSize());
writer.writeBoolean(ccfg.isWriteBehindEnabled());
writer.writeLong(ccfg.getWriteBehindFlushFrequency());
writer.writeInt(ccfg.getWriteBehindFlushSize());
writer.writeInt(ccfg.getWriteBehindFlushThreadCount());
writer.writeBoolean(ccfg.getWriteBehindCoalescing());
writeEnumInt(writer, ccfg.getWriteSynchronizationMode());
writer.writeBoolean(ccfg.isReadThrough());
writer.writeBoolean(ccfg.isWriteThrough());
writer.writeBoolean(ccfg.isStatisticsEnabled());
// noinspection deprecation
writer.writeString(ccfg.getMemoryPolicyName());
writer.writeInt(ccfg.getPartitionLossPolicy().ordinal());
writer.writeString(ccfg.getGroupName());
if (ccfg.getCacheStoreFactory() instanceof PlatformDotNetCacheStoreFactoryNative)
writer.writeObject(((PlatformDotNetCacheStoreFactoryNative) ccfg.getCacheStoreFactory()).getNativeFactory());
else
writer.writeObject(null);
writer.writeInt(ccfg.getSqlIndexMaxInlineSize());
writer.writeBoolean(ccfg.isOnheapCacheEnabled());
writer.writeInt(ccfg.getStoreConcurrentLoadAllThreshold());
writer.writeInt(ccfg.getRebalanceOrder());
writer.writeLong(ccfg.getRebalanceBatchesPrefetchCount());
writer.writeInt(ccfg.getMaxQueryIteratorsCount());
writer.writeInt(ccfg.getQueryDetailMetricsSize());
writer.writeInt(ccfg.getQueryParallelism());
writer.writeString(ccfg.getSqlSchema());
writer.writeBoolean(ccfg.isEncryptionEnabled());
Collection<QueryEntity> qryEntities = ccfg.getQueryEntities();
if (qryEntities != null) {
writer.writeInt(qryEntities.size());
for (QueryEntity e : qryEntities) writeQueryEntity(writer, e);
} else
writer.writeInt(0);
NearCacheConfiguration nearCfg = ccfg.getNearConfiguration();
if (nearCfg != null) {
writer.writeBoolean(true);
writeNearConfiguration(writer, nearCfg);
} else
writer.writeBoolean(false);
writeEvictionPolicy(writer, ccfg.getEvictionPolicy());
writeAffinityFunction(writer, ccfg.getAffinity());
writeExpiryPolicyFactory(writer, ccfg.getExpiryPolicyFactory());
writeAttributeNodeFilter(writer, ccfg.getNodeFilter());
CacheKeyConfiguration[] keys = ccfg.getKeyConfiguration();
if (keys != null) {
writer.writeInt(keys.length);
for (CacheKeyConfiguration key : keys) {
writer.writeString(key.getTypeName());
writer.writeString(key.getAffinityKeyFieldName());
}
} else {
writer.writeInt(0);
}
PlatformCacheConfiguration platCfg = ccfg.getPlatformCacheConfiguration();
if (platCfg != null) {
writer.writeBoolean(true);
writer.writeString(platCfg.getKeyTypeName());
writer.writeString(platCfg.getValueTypeName());
writer.writeBoolean(platCfg.isKeepBinary());
} else {
writer.writeBoolean(false);
}
CachePluginConfiguration[] plugins = ccfg.getPluginConfigurations();
if (plugins != null) {
int cnt = 0;
for (CachePluginConfiguration cfg : plugins) {
if (cfg instanceof PlatformCachePluginConfiguration)
cnt++;
}
writer.writeInt(cnt);
for (CachePluginConfiguration cfg : plugins) {
if (cfg instanceof PlatformCachePluginConfiguration) {
// Pure platform plugin.
writer.writeBoolean(false);
writer.writeObject(((PlatformCachePluginConfiguration) cfg).nativeCfg());
}
}
}
}
Aggregations