@Override public void applyx(BinaryRawWriterEx writer) throws IgniteCheckedException { writer.writeByte(OP_LOAD); writer.writeLong(session()); writer.writeString(ses.cacheName()); writer.writeObject(key); } }, new IgniteInClosureX<BinaryRawReaderEx>() {
/** {@inheritDoc} */ @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException { BinaryRawWriterEx rawWriter = (BinaryRawWriterEx)writer.rawWriter(); rawWriter.writeInt(factoryTyp); rawWriter.writeString(clsName); rawWriter.writeObjectDetached(payload); if (props != null) { rawWriter.writeInt(props.size()); for (Map.Entry<String, Object> prop : props.entrySet()) { rawWriter.writeString(prop.getKey()); rawWriter.writeObjectDetached(prop.getValue()); } } else rawWriter.writeInt(0); }
/** {@inheritDoc} */ @Override protected void write(BinaryRawWriterEx writer, List vals) { assert vals != null; int rowSizePos = writer.reserveInt(); writer.writeInt(vals.size()); for (Object val : vals) writer.writeObjectDetached(val); int rowEndPos = writer.out().position(); writer.writeInt(rowSizePos, rowEndPos - rowSizePos); }
/** * Write store data to a stream. * * @param writer Writer. * @param convertBinary Convert binary flag. */ protected void write(BinaryRawWriterEx writer, boolean convertBinary) { writer.writeBoolean(convertBinary); writer.writeObjectDetached(nativeFactory); if (nativeFactory == null) { writer.writeString(typName); writer.writeMap(props); } }
@Override public void write(BinaryRawWriterEx writer, ServiceDescriptor d) { writer.writeString(d.name()); writer.writeString(d.cacheName()); writer.writeInt(d.maxPerNodeCount()); writer.writeInt(d.totalCount()); writer.writeUuid(d.originNodeId()); writer.writeObject(d.affinityKey()); // Write platform. There are only 2 platforms now. byte platform = d.serviceClass().equals(PlatformDotNetServiceImpl.class) ? PLATFORM_DOTNET : PLATFORM_JAVA; writer.writeByte(platform); Map<UUID, Integer> top = d.topologySnapshot(); PlatformUtils.writeMap(writer, top, new PlatformWriterBiClosure<UUID, Integer>() { @Override public void write(BinaryRawWriterEx writer, UUID key, Integer val) { writer.writeUuid(key); writer.writeInt(val); } }); } });
/** {@inheritDoc} */ @Override public void addNode(ClusterNode node) { if (node == null || sentNodes.contains(node.id())) return; // Send node info to the native platform try (PlatformMemory mem0 = mem.allocate()) { PlatformOutputStream out = mem0.output(); BinaryRawWriterEx w = writer(out); w.writeUuid(node.id()); PlatformUtils.writeNodeAttributes(w, node.attributes()); w.writeCollection(node.addresses()); w.writeCollection(node.hostNames()); w.writeLong(node.order()); w.writeBoolean(node.isLocal()); w.writeBoolean(node.isDaemon()); w.writeBoolean(node.isClient()); w.writeObjectDetached(node.consistentId()); writeClusterMetrics(w, node.metrics()); out.synchronize(); gateway().nodeInfo(mem0.pointer()); } sentNodes.add(node.id()); }
int pos = writer.reserveInt(); writer.writeInt(cfg.getBackups()); writeEnumInt(writer, cfg.getCacheMode(), CacheConfiguration.DFLT_CACHE_MODE); writer.writeBoolean(cfg.isCopyOnRead()); writer.writeString(cfg.getDataRegionName()); writer.writeBoolean(cfg.isEagerTtl()); writer.writeBoolean(cfg.isStatisticsEnabled()); writer.writeString(cfg.getGroupName()); writer.writeLong(cfg.getDefaultLockTimeout()); writer.writeInt(cfg.getMaxConcurrentAsyncOperations()); writer.writeInt(cfg.getMaxQueryIteratorsCount()); writer.writeString(cfg.getName()); writer.writeBoolean(cfg.isOnheapCacheEnabled()); writer.writeInt(cfg.getPartitionLossPolicy().ordinal()); writer.writeInt(cfg.getQueryDetailMetricsSize()); writer.writeInt(cfg.getQueryParallelism()); writer.writeBoolean(cfg.isReadFromBackup()); writer.writeInt(cfg.getRebalanceBatchSize()); writer.writeLong(cfg.getRebalanceBatchesPrefetchCount()); writer.writeLong(cfg.getRebalanceDelay()); writeEnumInt(writer, cfg.getRebalanceMode(), CacheConfiguration.DFLT_REBALANCE_MODE); writer.writeInt(cfg.getRebalanceOrder()); writer.writeLong(cfg.getRebalanceThrottle()); writer.writeLong(cfg.getRebalanceTimeout()); writer.writeBoolean(cfg.isSqlEscapeAll()); writer.writeInt(cfg.getSqlIndexMaxInlineSize()); writer.writeString(cfg.getSqlSchema()); writeEnumInt(writer, cfg.getWriteSynchronizationMode());
writer.writeBoolean(false); else { writer.writeBoolean(true); writer.writeLong(metrics.getLastUpdateTime()); writer.writeTimestamp(new Timestamp(metrics.getLastUpdateTime())); writer.writeInt(metrics.getMaximumActiveJobs()); writer.writeInt(metrics.getCurrentActiveJobs()); writer.writeFloat(metrics.getAverageActiveJobs()); writer.writeInt(metrics.getMaximumWaitingJobs()); writer.writeInt(metrics.getCurrentWaitingJobs()); writer.writeFloat(metrics.getAverageWaitingJobs()); writer.writeInt(metrics.getMaximumRejectedJobs()); writer.writeInt(metrics.getCurrentRejectedJobs()); writer.writeFloat(metrics.getAverageRejectedJobs()); writer.writeInt(metrics.getTotalRejectedJobs()); writer.writeInt(metrics.getMaximumCancelledJobs()); writer.writeInt(metrics.getCurrentCancelledJobs()); writer.writeFloat(metrics.getAverageCancelledJobs()); writer.writeInt(metrics.getTotalCancelledJobs()); writer.writeInt(metrics.getTotalExecutedJobs()); writer.writeLong(metrics.getMaximumJobWaitTime()); writer.writeLong(metrics.getCurrentJobWaitTime()); writer.writeDouble(metrics.getAverageJobWaitTime()); writer.writeLong(metrics.getMaximumJobExecuteTime());
/** * Write common event data. * * @param writer Writer. * @param evt Event. */ private void writeCommonEventData(BinaryRawWriterEx writer, EventAdapter evt) { writer.writeObject(evt.id()); writer.writeLong(evt.localOrder()); writeNode(writer, evt.node()); writer.writeString(evt.message()); writer.writeInt(evt.type()); writer.writeString(evt.name()); writer.writeTimestamp(new Timestamp(evt.timestamp())); }
/** {@inheritDoc} */ @Override public Object invokeMethod(String mthdName, boolean srvKeepBinary, Object[] args) throws IgniteCheckedException { assert ptr != 0; assert platformCtx != null; try (PlatformMemory mem = platformCtx.memory().allocate()) { PlatformOutputStream out = mem.output(); BinaryRawWriterEx writer = platformCtx.writer(out); writer.writeLong(ptr); writer.writeBoolean(srvKeepBinary); writer.writeString(mthdName); if (args == null) writer.writeBoolean(false); else { writer.writeBoolean(true); writer.writeInt(args.length); for (Object arg : args) writer.writeObjectDetached(arg); } out.synchronize(); platformCtx.gateway().serviceInvokeMethod(mem.pointer()); PlatformInputStream in = mem.input(); in.synchronize(); BinaryRawReaderEx reader = platformCtx.reader(in); return PlatformUtils.readInvocationResult(platformCtx, reader); } }
/** {@inheritDoc} */ @Override void writeEntry(BinaryRawWriterEx writer, List e) { assert e.size() == columnCount; for (Object o : e) writer.writeObjectDetached(o); } }
/** * Writes service context. * * @param ctx Context. * @param writer Writer. */ private void writeServiceContext(ServiceContext ctx, BinaryRawWriterEx writer) { writer.writeString(ctx.name()); writer.writeUuid(ctx.executionId()); writer.writeBoolean(ctx.isCancelled()); writer.writeString(ctx.cacheName()); writer.writeObject(ctx.affinityKey()); }
/** {@inheritDoc} */ @Override public void encode(BinaryRawWriterEx writer) { super.encode(writer); writer.writeObject(val); } }
/** <inheritDoc /> */ @Override public void write(BinaryRawWriterEx writer, Object obj, Throwable err) { if (err == null) { writer.writeBoolean(false); // No error. writer.writeObjectDetached(obj); } else { writer.writeBoolean(true); // Error. PlatformUtils.writeError(err, writer); } }
/** * Writes next page to the writer. * * @param writer Writer. */ void writePage(BinaryRawWriterEx writer) { Iterator<T> iter = iterator(); int cntPos = writer.reserveInt(); int cnt = 0; while (cnt < pageSize && iter.hasNext()) { T e = iter.next(); writeEntry(writer, e); cnt++; } writer.writeInt(cntPos, cnt); writer.writeBoolean(iter.hasNext()); if (!iter.hasNext()) ctx.resources().release(id); }
@Override public void write(BinaryRawWriterEx writer, PlatformDotNetBinaryTypeConfiguration typ) { writer.writeString(typ.getTypeName()); writer.writeString(typ.getNameMapper()); writer.writeString(typ.getIdMapper()); writer.writeString(typ.getSerializer()); writer.writeString(typ.getAffinityKeyFieldName()); writer.writeObject(typ.getKeepDeserialized()); writer.writeBoolean(typ.isEnum()); } });
@Override public void applyx(BinaryRawWriterEx writer) throws IgniteCheckedException { writer.writeByte(OP_LOAD_CACHE); writer.writeLong(session()); writer.writeString(ses.cacheName()); writer.writeObjectArray(args); } }, new IgniteInClosureX<BinaryRawReaderEx>() {
@Override public void applyx(BinaryRawWriterEx writer) throws IgniteCheckedException { writer.writeByte(OP_SES_END); writer.writeLong(session()); writer.writeString(ses.cacheName()); writer.writeBoolean(commit); // When multiple stores (caches) participate in a single transaction, // they share a single session, but sessionEnd is called on each store. // Same thing happens on platform side: session is shared; each store must be notified, // then session should be closed. Collection<Long> stores = (Collection<Long>) ses.properties().get(KEY_SES_STORES); assert stores != null; stores.remove(ptr); boolean last = stores.isEmpty(); writer.writeBoolean(last); if (last) { // Session object has been released on platform side, remove marker. ses.properties().remove(KEY_SES); } } }, null);
writer.writeInt(col.size()); writer.writeObject(entry); int pos = writer.reserveInt(); int cnt = 0; writer.writeObject(entry); else writeClo.write(writer, entry); writer.writeInt(pos, cnt);
/** * Writes the result of InvokeAll cache method. * * @param writer Writer. * @param results Results. */ private static void writeInvokeAllResult(BinaryRawWriterEx writer, Map<Object, EntryProcessorResult> results) { if (results == null) { writer.writeInt(-1); return; } writer.writeInt(results.size()); for (Map.Entry<Object, EntryProcessorResult> entry : results.entrySet()) { writer.writeObjectDetached(entry.getKey()); EntryProcessorResult procRes = entry.getValue(); try { Object res = procRes.get(); writer.writeBoolean(false); // No exception writer.writeObjectDetached(res); } catch (Exception ex) { writer.writeBoolean(true); // Exception PlatformUtils.writeError(ex, writer); } } }