Search in sources :

Example 31 with BinaryRawWriter

use of org.apache.ignite.binary.BinaryRawWriter in project ignite by apache.

the class BinaryTreeSet method writeBinary.

/**
 * {@inheritDoc}
 */
@Override
public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
    BinaryRawWriter rawWriter = writer.rawWriter();
    rawWriter.writeObject(set.comparator());
    int size = set.size();
    rawWriter.writeInt(size);
    for (Object val : set) rawWriter.writeObject(val);
}
Also used : BinaryRawWriter(org.apache.ignite.binary.BinaryRawWriter)

Example 32 with BinaryRawWriter

use of org.apache.ignite.binary.BinaryRawWriter in project ignite by apache.

the class ClientUtils method cacheConfiguration.

/**
 * Serialize configuration to stream.
 */
void cacheConfiguration(ClientCacheConfiguration cfg, BinaryOutputStream out, ProtocolContext protocolCtx) {
    try (BinaryRawWriterEx writer = new BinaryWriterExImpl(marsh.context(), out, null, null)) {
        int origPos = out.position();
        // configuration length is to be assigned in the end
        writer.writeInt(0);
        // properties count is to be assigned in the end
        writer.writeShort((short) 0);
        AtomicInteger propCnt = new AtomicInteger(0);
        BiConsumer<CfgItem, Consumer<BinaryRawWriter>> itemWriter = (cfgItem, cfgWriter) -> {
            writer.writeShort(cfgItem.code());
            cfgWriter.accept(writer);
            propCnt.incrementAndGet();
        };
        itemWriter.accept(CfgItem.NAME, w -> w.writeString(cfg.getName()));
        itemWriter.accept(CfgItem.CACHE_MODE, w -> w.writeInt(cfg.getCacheMode().ordinal()));
        itemWriter.accept(CfgItem.ATOMICITY_MODE, w -> w.writeInt(cfg.getAtomicityMode().ordinal()));
        itemWriter.accept(CfgItem.BACKUPS, w -> w.writeInt(cfg.getBackups()));
        itemWriter.accept(CfgItem.WRITE_SYNC_MODE, w -> w.writeInt(cfg.getWriteSynchronizationMode().ordinal()));
        itemWriter.accept(CfgItem.READ_FROM_BACKUP, w -> w.writeBoolean(cfg.isReadFromBackup()));
        itemWriter.accept(CfgItem.EAGER_TTL, w -> w.writeBoolean(cfg.isEagerTtl()));
        itemWriter.accept(CfgItem.GROUP_NAME, w -> w.writeString(cfg.getGroupName()));
        itemWriter.accept(CfgItem.DEFAULT_LOCK_TIMEOUT, w -> w.writeLong(cfg.getDefaultLockTimeout()));
        itemWriter.accept(CfgItem.PART_LOSS_POLICY, w -> w.writeInt(cfg.getPartitionLossPolicy().ordinal()));
        itemWriter.accept(CfgItem.REBALANCE_BATCH_SIZE, w -> w.writeInt(cfg.getRebalanceBatchSize()));
        itemWriter.accept(CfgItem.REBALANCE_BATCHES_PREFETCH_COUNT, w -> w.writeLong(cfg.getRebalanceBatchesPrefetchCount()));
        itemWriter.accept(CfgItem.REBALANCE_DELAY, w -> w.writeLong(cfg.getRebalanceDelay()));
        itemWriter.accept(CfgItem.REBALANCE_MODE, w -> w.writeInt(cfg.getRebalanceMode().ordinal()));
        itemWriter.accept(CfgItem.REBALANCE_ORDER, w -> w.writeInt(cfg.getRebalanceOrder()));
        itemWriter.accept(CfgItem.REBALANCE_THROTTLE, w -> w.writeLong(cfg.getRebalanceThrottle()));
        itemWriter.accept(CfgItem.REBALANCE_TIMEOUT, w -> w.writeLong(cfg.getRebalanceTimeout()));
        itemWriter.accept(CfgItem.COPY_ON_READ, w -> w.writeBoolean(cfg.isCopyOnRead()));
        itemWriter.accept(CfgItem.DATA_REGION_NAME, w -> w.writeString(cfg.getDataRegionName()));
        itemWriter.accept(CfgItem.STATS_ENABLED, w -> w.writeBoolean(cfg.isStatisticsEnabled()));
        itemWriter.accept(CfgItem.MAX_ASYNC_OPS, w -> w.writeInt(cfg.getMaxConcurrentAsyncOperations()));
        itemWriter.accept(CfgItem.MAX_QUERY_ITERATORS, w -> w.writeInt(cfg.getMaxQueryIteratorsCount()));
        itemWriter.accept(CfgItem.ONHEAP_CACHE_ENABLED, w -> w.writeBoolean(cfg.isOnheapCacheEnabled()));
        itemWriter.accept(CfgItem.QUERY_METRIC_SIZE, w -> w.writeInt(cfg.getQueryDetailMetricsSize()));
        itemWriter.accept(CfgItem.QUERY_PARALLELISM, w -> w.writeInt(cfg.getQueryParallelism()));
        itemWriter.accept(CfgItem.SQL_ESCAPE_ALL, w -> w.writeBoolean(cfg.isSqlEscapeAll()));
        itemWriter.accept(CfgItem.SQL_IDX_MAX_INLINE_SIZE, w -> w.writeInt(cfg.getSqlIndexMaxInlineSize()));
        itemWriter.accept(CfgItem.SQL_SCHEMA, w -> w.writeString(cfg.getSqlSchema()));
        itemWriter.accept(CfgItem.KEY_CONFIGS, w -> ClientUtils.collection(cfg.getKeyConfiguration(), out, (unused, i) -> {
            w.writeString(i.getTypeName());
            w.writeString(i.getAffinityKeyFieldName());
        }));
        itemWriter.accept(CfgItem.QUERY_ENTITIES, w -> ClientUtils.collection(cfg.getQueryEntities(), out, (unused, e) -> {
            w.writeString(e.getKeyType());
            w.writeString(e.getValueType());
            w.writeString(e.getTableName());
            w.writeString(e.getKeyFieldName());
            w.writeString(e.getValueFieldName());
            ClientUtils.collection(e.getFields().entrySet(), out, (unused2, f) -> {
                QueryField qf = new QueryField(e, f);
                w.writeString(qf.getName());
                w.writeString(qf.getTypeName());
                w.writeBoolean(qf.isKey());
                w.writeBoolean(qf.isNotNull());
                w.writeObject(qf.getDefaultValue());
                if (protocolCtx.isFeatureSupported(QUERY_ENTITY_PRECISION_AND_SCALE)) {
                    w.writeInt(qf.getPrecision());
                    w.writeInt(qf.getScale());
                }
            });
            ClientUtils.collection(e.getAliases().entrySet(), out, (unused3, a) -> {
                w.writeString(a.getKey());
                w.writeString(a.getValue());
            });
            ClientUtils.collection(e.getIndexes(), out, (unused4, i) -> {
                w.writeString(i.getName());
                w.writeByte((byte) i.getIndexType().ordinal());
                w.writeInt(i.getInlineSize());
                ClientUtils.collection(i.getFields().entrySet(), out, (unused5, f) -> {
                    w.writeString(f.getKey());
                    w.writeBoolean(f.getValue());
                });
            });
        }));
        if (protocolCtx.isFeatureSupported(EXPIRY_POLICY)) {
            itemWriter.accept(CfgItem.EXPIRE_POLICY, w -> {
                ExpiryPolicy expiryPlc = cfg.getExpiryPolicy();
                if (expiryPlc == null)
                    w.writeBoolean(false);
                else {
                    w.writeBoolean(true);
                    w.writeLong(convertDuration(expiryPlc.getExpiryForCreation()));
                    w.writeLong(convertDuration(expiryPlc.getExpiryForUpdate()));
                    w.writeLong(convertDuration(expiryPlc.getExpiryForAccess()));
                }
            });
        } else if (cfg.getExpiryPolicy() != null) {
            throw new ClientProtocolError(String.format("Expire policies are not supported by the server " + "version %s, required version %s", protocolCtx.version(), EXPIRY_POLICY.verIntroduced()));
        }
        // configuration length
        writer.writeInt(origPos, out.position() - origPos - 4);
        // properties count
        writer.writeInt(origPos + 4, propCnt.get());
    }
}
Also used : CacheAtomicityMode(org.apache.ignite.cache.CacheAtomicityMode) BinaryObject(org.apache.ignite.binary.BinaryObject) PlatformExpiryPolicy.convertDuration(org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy.convertDuration) Arrays(java.util.Arrays) Array(java.lang.reflect.Array) CacheKeyConfiguration(org.apache.ignite.cache.CacheKeyConfiguration) MutableSingletonList(org.apache.ignite.internal.util.MutableSingletonList) SqlFieldsQuery(org.apache.ignite.cache.query.SqlFieldsQuery) BinaryOutputStream(org.apache.ignite.internal.binary.streams.BinaryOutputStream) CacheRebalanceMode(org.apache.ignite.cache.CacheRebalanceMode) BinaryRawWriter(org.apache.ignite.binary.BinaryRawWriter) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) BinaryUtils(org.apache.ignite.internal.binary.BinaryUtils) Map(java.util.Map) QueryEntity(org.apache.ignite.cache.QueryEntity) BinaryMetadata(org.apache.ignite.internal.binary.BinaryMetadata) ClientCacheConfiguration(org.apache.ignite.client.ClientCacheConfiguration) BinaryRawWriterEx(org.apache.ignite.internal.binary.BinaryRawWriterEx) BinaryContext(org.apache.ignite.internal.binary.BinaryContext) Collection(java.util.Collection) Set(java.util.Set) Collectors(java.util.stream.Collectors) BinaryFieldMetadata(org.apache.ignite.internal.binary.BinaryFieldMetadata) Objects(java.util.Objects) Nullable(org.jetbrains.annotations.Nullable) BinaryObjectImpl(org.apache.ignite.internal.binary.BinaryObjectImpl) BinarySchema(org.apache.ignite.internal.binary.BinarySchema) BinaryHeapInputStream(org.apache.ignite.internal.binary.streams.BinaryHeapInputStream) U(org.apache.ignite.internal.util.typedef.internal.U) HashMap(java.util.HashMap) BinaryWriterExImpl(org.apache.ignite.internal.binary.BinaryWriterExImpl) Function(java.util.function.Function) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) BinaryReaderExImpl(org.apache.ignite.internal.binary.BinaryReaderExImpl) PartitionLossPolicy(org.apache.ignite.cache.PartitionLossPolicy) PlatformExpiryPolicy(org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy) CacheWriteSynchronizationMode(org.apache.ignite.cache.CacheWriteSynchronizationMode) BiConsumer(java.util.function.BiConsumer) LinkedList(java.util.LinkedList) SimpleEntry(java.util.AbstractMap.SimpleEntry) EXPIRY_POLICY(org.apache.ignite.internal.client.thin.ProtocolVersionFeature.EXPIRY_POLICY) LinkedHashSet(java.util.LinkedHashSet) BinaryThreadLocalContext(org.apache.ignite.internal.binary.BinaryThreadLocalContext) BinaryInputStream(org.apache.ignite.internal.binary.streams.BinaryInputStream) QueryIndexType(org.apache.ignite.cache.QueryIndexType) ExpiryPolicy(javax.cache.expiry.ExpiryPolicy) IOException(java.io.IOException) BinaryReaderHandles(org.apache.ignite.internal.binary.BinaryReaderHandles) Consumer(java.util.function.Consumer) QUERY_ENTITY_PRECISION_AND_SCALE(org.apache.ignite.internal.client.thin.ProtocolVersionFeature.QUERY_ENTITY_PRECISION_AND_SCALE) QueryIndex(org.apache.ignite.cache.QueryIndex) CacheMode(org.apache.ignite.cache.CacheMode) BiConsumer(java.util.function.BiConsumer) Consumer(java.util.function.Consumer) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) PlatformExpiryPolicy(org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy) ExpiryPolicy(javax.cache.expiry.ExpiryPolicy) BinaryWriterExImpl(org.apache.ignite.internal.binary.BinaryWriterExImpl) BinaryRawWriterEx(org.apache.ignite.internal.binary.BinaryRawWriterEx)

Example 33 with BinaryRawWriter

use of org.apache.ignite.binary.BinaryRawWriter in project ignite by apache.

the class PlatformDotNetSessionLockResult method writeBinary.

/**
 * {@inheritDoc}
 */
@Override
public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
    BinaryRawWriter raw = writer.rawWriter();
    writeBinary(raw);
}
Also used : BinaryRawWriter(org.apache.ignite.binary.BinaryRawWriter)

Example 34 with BinaryRawWriter

use of org.apache.ignite.binary.BinaryRawWriter in project ignite by apache.

the class PlatformDotNetSessionSetAndUnlockProcessor method writeBinary.

/**
 * {@inheritDoc}
 */
@Override
public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
    BinaryRawWriter raw = writer.rawWriter();
    raw.writeUuid(lockNodeId);
    raw.writeLong(lockId);
    raw.writeBoolean(update);
    if (update) {
        raw.writeBoolean(isDiff);
        raw.writeByteArray(staticData);
        raw.writeInt(timeout);
        if (items != null) {
            raw.writeInt(items.size());
            for (Map.Entry<String, byte[]> e : items.entrySet()) {
                raw.writeString(e.getKey());
                raw.writeByteArray(e.getValue());
            }
        } else
            raw.writeInt(-1);
    }
}
Also used : TreeMap(java.util.TreeMap) Map(java.util.Map) BinaryRawWriter(org.apache.ignite.binary.BinaryRawWriter)

Example 35 with BinaryRawWriter

use of org.apache.ignite.binary.BinaryRawWriter in project ignite by apache.

the class IgniteUuid method writeBinary.

/**
 * {@inheritDoc}
 */
@Override
public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
    BinaryRawWriter out = writer.rawWriter();
    out.writeLong(locId);
    out.writeLong(gid.getMostSignificantBits());
    out.writeLong(gid.getLeastSignificantBits());
}
Also used : BinaryRawWriter(org.apache.ignite.binary.BinaryRawWriter)

Aggregations

BinaryRawWriter (org.apache.ignite.binary.BinaryRawWriter)36 Map (java.util.Map)4 HashMap (java.util.HashMap)2 TreeMap (java.util.TreeMap)2 IOException (java.io.IOException)1 Array (java.lang.reflect.Array)1 SimpleEntry (java.util.AbstractMap.SimpleEntry)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 LinkedList (java.util.LinkedList)1 Objects (java.util.Objects)1 Set (java.util.Set)1 UUID (java.util.UUID)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 BiConsumer (java.util.function.BiConsumer)1 Consumer (java.util.function.Consumer)1 Function (java.util.function.Function)1