/** * Calls toData() on its clientUpdateMessage present in the * haContainer (client-messages-region or the map). * * @param out * The output stream which the object should be written to. */ public void toData(DataOutput out) throws IOException { ClientUpdateMessageImpl cum = (ClientUpdateMessageImpl)this.haContainer .get(this); // If the dispatcher sends the cum object to the client and removes it from // the haContainer before we do haContainer.get() (above), we indicate that // by sending false boolean value. if (cum != null) { DataSerializer.writePrimitiveBoolean(true, out); DataSerializer.writeObject(cum.getEventId(), out); } else { DataSerializer.writePrimitiveBoolean(false, out); DataSerializer.writeObject(new EventID(), out); // Create a dummy ClientUpdateMessageImpl instance cum = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_CREATE, new ClientProxyMembershipID(), null); } InternalDataSerializer.invokeToData(cum, out); if (cum.hasCqs()) { DataSerializer.writeConcurrentHashMap(cum.getClientCqs(), out); } }
String regionName = cmsgimpl.getRegionName(); regionNameHolder[0] = regionName; if (cmsgimpl.isCreate()) { if (DynamicRegionFactory.regionIsDynamicRegionList(regionName)) { regionNameHolder[0] = (String)cmsgimpl.getKeyOfInterest(); opctxt = new RegionCreateOperationContext(true); opctxt = new PutOperationContext(cmsgimpl.getKeyOfInterest(), cmsgimpl .getValue(), cmsgimpl.valueIsObject(), PutOperationContext.CREATE, true); else if (cmsgimpl.isUpdate()) { if (DynamicRegionFactory.regionIsDynamicRegionList(regionName)) { regionNameHolder[0] = (String)cmsgimpl.getKeyOfInterest(); opctxt = new RegionCreateOperationContext(true); opctxt = new PutOperationContext(cmsgimpl.getKeyOfInterest(), cmsgimpl .getValue(), cmsgimpl.valueIsObject(), PutOperationContext.UPDATE, true); else if (cmsgimpl.isDestroy()) { if (DynamicRegionFactory.regionIsDynamicRegionList(regionName)) { regionNameHolder[0] = (String)cmsgimpl.getKeyOfInterest(); opctxt = new RegionDestroyOperationContext(true); opctxt = new DestroyOperationContext(cmsgimpl.getKeyOfInterest(), true); else if (cmsgimpl.isDestroyRegion()) { opctxt = new RegionDestroyOperationContext(true);
public static void addClientCQsAndInterestList(Map.Entry entry, HAEventWrapper haEventWrapper, Map haContainer, String regionName) { ClientProxyMembershipID proxyID = ((HAContainerWrapper)haContainer) .getProxyID(regionName); if (haEventWrapper.getClientCqs() != null) { CqNameToOp clientCQ = haEventWrapper.getClientCqs().get(proxyID); if (clientCQ != null) { ((ClientUpdateMessageImpl)entry.getValue()).addClientCqs(proxyID, clientCQ); } } // if (haEventWrapper.getPutInProgress()) { // ((HAEventWrapper)entry.getKey()).setPutInProgress(true); // } // This is a remote HAEventWrapper. // Add new Interested client lists. ClientUpdateMessageImpl clientMsg = (ClientUpdateMessageImpl)haEventWrapper .getClientUpdateMessage(); if (clientMsg.isClientInterestedInUpdates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, true); } else if (clientMsg.isClientInterestedInInvalidates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, false); } }
boolean clientHasCq = this._hasCqs && (this.getCqs(proxyId) != null); cqMsgParts = (this.getCqs(proxyId).length * 2) + 1; if (isCreate() || isUpdate()) { message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.FALSE); if (isCreate()) { message.setMessageType(MessageType.LOCAL_CREATE); message.addRawPart(latestValue, (this._valueIsObject == 0x01)); message.addObjPart(this._callbackArgument); message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.valueOf(clientHasCq)); this.addCqsToMessage(proxyId, message); else if (isDestroy() || isInvalidate()) { message = new Message(6 + cqMsgParts, clientVersion); if (isDestroy()) { message.setMessageType(MessageType.LOCAL_DESTROY); message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.valueOf(clientHasCq)); this.addCqsToMessage(proxyId, message);
this.clientUpdateMessage = new ClientUpdateMessageImpl(); InternalDataSerializer.invokeFromData(this.clientUpdateMessage, in); ((ClientUpdateMessageImpl)this.clientUpdateMessage) .setEventIdentifier(this.eventIdentifier); if (this.clientUpdateMessage.hasCqs()) { .setClientCqs(this.clientCqs); InternalDataSerializer.invokeFromData(new ClientUpdateMessageImpl(), in);
EventID eid = null; ClientUpdateMessageImpl cui = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_CREATE, r, key, val, valIsObj, cb, cpmi, eid, getLogWriter().convertToLogWriterI18n()); ClientUpdateMessageImpl cuiCopy = (ClientUpdateMessageImpl) CopyHelper.copy(cui); assertSame(key, cui.getKeyOfInterest()); assertEquals(1, key.count.get()); key = (SerializationCountingKey) cuiCopy.getKeyOfInterest(); assertEquals(cui.getKeyOfInterest(), cuiCopy.getKeyOfInterest()); assertEquals(1, key.count.get());
/** * @param eventId */ public HAEventWrapper(EventID eventId) { this.eventIdentifier = eventId; this.clientUpdateMessage = new ClientUpdateMessageImpl( EnumListenerEvent.AFTER_CREATE, new ClientProxyMembershipID(), eventId); rcUpdater.set(this, 0); }
ClientUpdateMessageImpl clientUpdateMsg = new ClientUpdateMessageImpl(operation, (LocalRegion)event.getRegion(), keyOfInterest, null, delta, (byte) 0x01, callbackArgument, membershipID, eventIdentifier, this._logger, versionTag); clientUpdateMsg.setIsNetLoad(isNetLoad);
clientMessage.addClientCq(id, cq.getName(), e.getValue()); logger.trace("adding invalidation routing to message for {}" + ids); clientMessage.addClientInterestList(ids, false); filterClients.addAll(ids); logger.trace("adding routing to message for {}", ids); clientMessage.addClientInterestList(ids, true); filterClients.addAll(ids);
public static void VerifyCUMCQList(Integer numOfKeys, Integer numOfClients) { try { Iterator iter = cache.getBridgeServers().iterator(); if (iter.hasNext()) { BridgeServerImpl server = (BridgeServerImpl)iter.next(); Map haContainer = server.getAcceptor().getCacheClientNotifier() .getHaContainer(); Object[] keys = haContainer.keySet().toArray(); logger.fine("### numOfKeys :" + numOfKeys.intValue() + " keys.length : " + keys.length + " haContainer size : " + haContainer.size()); assertEquals(numOfKeys.intValue(), keys.length); for (int i = 0; i < numOfKeys.intValue(); i++) { logger.fine("i=: " + i); ClientUpdateMessageImpl cum = (ClientUpdateMessageImpl)haContainer .get(keys[i]); assertNotNull(cum); assertNotNull(cum.getClientCqs()); assertEquals("This test may fail if the image provider gets an ack from client before providing image", numOfClients.intValue(), cum.getClientCqs().size()); } } } catch (Exception e) { fail("failed in VerifyCUMCQList()" + e, e); } }
public void removeClientCq(ClientProxyMembershipID clientId, InternalCqQuery cqToClose) { CqNameToOp cqs = getClientCq(clientId); if (cqs != null) { cqs.delete(cqToClose.getName()); //remove clientId key if no more cqs exist for this clientId if (cqs.isEmpty()) { this._clientCqs.remove(clientId); } } }
@Override public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("ClientUpdateMessageImpl[") .append("op=").append(this._operation) .append(";region=").append(this._regionName) .append(";key=").append(this._keyOfInterest); if (this._logger != null && this._logger.finestEnabled()) { buffer.append(";value=").append( (this._value instanceof byte[]) ? deserialize((byte[])this._value) : this._value); } buffer .append(";isObject=").append(_valueIsObject) .append(";cbArg=").append(this._callbackArgument) .append(";memberId=").append(this._membershipId) .append(";eventId=").append(_eventIdentifier) .append(";shouldConflate=").append(_shouldConflate) .append(";versionTag=").append(this.versionTag) .append(";hasCqs=").append(this._hasCqs) // skip _logger :-) .append("]"); return buffer.toString(); }
boolean clientHasCq = this._hasCqs && (this.getCqs(proxyId) != null); cqMsgParts = (this.getCqs(proxyId).length * 2) + 1; if (isCreate() || isUpdate()) { message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.FALSE); if (isCreate()) { message.setMessageType(MessageType.LOCAL_CREATE); message.addRawPart(latestValue, (this._valueIsObject == 0x01)); message.addObjPart(this._callbackArgument); message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.valueOf(clientHasCq)); this.addCqsToMessage(proxyId, message); else if (isDestroy() || isInvalidate()) { message = new Message(6 + cqMsgParts, clientVersion); if (isDestroy()) { message.setMessageType(MessageType.LOCAL_DESTROY); message.addObjPart(Boolean.valueOf(isClientInterested(proxyId))); message.addObjPart(Boolean.valueOf(clientHasCq)); this.addCqsToMessage(proxyId, message);
this.clientUpdateMessage = new ClientUpdateMessageImpl(); InternalDataSerializer.invokeFromData(this.clientUpdateMessage, in); ((ClientUpdateMessageImpl)this.clientUpdateMessage) .setEventIdentifier(this.eventIdentifier); if (this.clientUpdateMessage.hasCqs()) { .setClientCqs(this.clientCqs); InternalDataSerializer.invokeFromData(new ClientUpdateMessageImpl(), in);
/** * @param eventId */ public HAEventWrapper(EventID eventId) { this.eventIdentifier = eventId; this.clientUpdateMessage = new ClientUpdateMessageImpl( EnumListenerEvent.AFTER_CREATE, new ClientProxyMembershipID(), eventId, null); rcUpdater.set(this, 0); }
ClientUpdateMessageImpl clientUpdateMsg = new ClientUpdateMessageImpl(operation, (LocalRegion)event.getRegion(), keyOfInterest, null, delta, (byte) 0x01, callbackArgument, membershipID, eventIdentifier, versionTag); clientUpdateMsg.setIsNetLoad(isNetLoad);
clientMessage.addClientCq(id, cq.getName(), e.getValue()); this._logger.finer("adding invalidation routing to message for " + ids); clientMessage.addClientInterestList(ids, false); filterClients.addAll(ids); this._logger.finer("adding routing to message for " + ids); clientMessage.addClientInterestList(ids, true); filterClients.addAll(ids);
/** * Parameterized constructor. * * @param event */ public HAEventWrapper(ClientUpdateMessage event) { this.regionName = event.getRegionName(); this.keyOfInterest = event.getKeyOfInterest(); this.shouldConflate = event.shouldBeConflated(); this.eventIdentifier = event.getEventId(); rcUpdater.set(this, 0); this.clientUpdateMessage = event; this.clientCqs = ((ClientUpdateMessageImpl)event).getClientCqs(); }
public void removeClientCq(ClientProxyMembershipID clientId, CqQuery cqToClose) { CqNameToOp cqs = getClientCq(clientId); if (cqs != null) { cqs.delete(cqToClose.getName()); //remove clientId key if no more cqs exist for this clientId if (cqs.isEmpty()) { this._clientCqs.remove(clientId); } } }
@Override public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("ClientUpdateMessageImpl[") .append("op=").append(this._operation) .append(";region=").append(this._regionName) .append(";key=").append(this._keyOfInterest); if (logger.isTraceEnabled()) { buffer.append(";value=").append( (this._value instanceof byte[]) ? deserialize((byte[])this._value) : this._value); } buffer .append(";isObject=").append(_valueIsObject) .append(";cbArg=").append(this._callbackArgument) .append(";memberId=").append(this._membershipId) .append(";eventId=").append(_eventIdentifier) .append(";shouldConflate=").append(_shouldConflate) .append(";versionTag=").append(this.versionTag) .append(";hasCqs=").append(this._hasCqs) // skip _logger :-) .append("]"); return buffer.toString(); }