/** * @throws org.apache.geode.SerializationException if serialization fails */ public RegisterDataSerializersOpImpl(DataSerializer[] dataSerializers, EventID eventId) { super(MessageType.REGISTER_DATASERIALIZERS, dataSerializers.length * 2 + 1); for (int i = 0; i < dataSerializers.length; i++) { DataSerializer dataSerializer = dataSerializers[i]; // strip '.class' off these class names String className = dataSerializer.getClass().toString().substring(6); try { getMessage().addBytesPart(BlobHelper.serializeToBlob(className)); } catch (IOException ex) { throw new SerializationException("failed serializing object", ex); } getMessage().addIntPart(dataSerializer.getId()); } getMessage().addBytesPart(eventId.calcBytes()); // // CALLBACK FOR TESTING PURPOSE ONLY //// if (PoolImpl.IS_INSTANTIATOR_CALLBACK) { ClientServerObserver bo = ClientServerObserverHolder.getInstance(); bo.beforeSendingToServer(eventId); } }
/** * @throws SerializationException Thrown when serialization fails. */ public RegisterDataSerializersOpImpl(SerializerAttributesHolder[] holders, EventID eventId) { super(MessageType.REGISTER_DATASERIALIZERS, holders.length * 2 + 1); for (int i = 0; i < holders.length; i++) { try { getMessage().addBytesPart(BlobHelper.serializeToBlob(holders[i].getClassName())); } catch (IOException ex) { throw new SerializationException("failed serializing object", ex); } getMessage().addIntPart(holders[i].getId()); } getMessage().addBytesPart(eventId.calcBytes()); // // CALLBACK FOR TESTING PURPOSE ONLY //// if (PoolImpl.IS_INSTANTIATOR_CALLBACK) { ClientServerObserver bo = ClientServerObserverHolder.getInstance(); bo.beforeSendingToServer(eventId); } }
@Override protected void endSendAttempt(ConnectionStats stats, long start) { stats.endRegisterDataSerializersSend(start, hasFailed()); }
public static void execute(ExecutablePool pool, DataSerializer[] dataSerializers, EventID eventId) { AbstractOp op = new RegisterDataSerializersOpImpl(dataSerializers, eventId); pool.execute(op); }
@Override protected Object processResponse(Message msg) throws Exception { processAck(msg, "registerDataSerializers"); return null; }
@Override protected void endAttempt(ConnectionStats stats, long start) { stats.endRegisterDataSerializers(start, hasTimedOut(), hasFailed()); }
public static void execute(ExecutablePool pool, SerializerAttributesHolder[] holders, EventID eventId) { AbstractOp op = new RegisterDataSerializersOpImpl(holders, eventId); pool.execute(op); }