/* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license * agreements. See the NOTICE file distributed with this work for additional information regarding * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. You may obtain a * copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package org.apache.geode.internal.cache.tier.sockets; import org.apache.geode.internal.cache.EnumListenerEvent; import org.apache.geode.internal.cache.tier.sockets.ClientUpdateMessageImpl.CqNameToOp; import org.apache.geode.internal.cache.versions.VersionTag; import java.util.HashMap; /** * Interface <code>ClientUpdateMessage</code> is a message representing a cache operation that is * sent from a server to an interested client. * * * @since GemFire 5.5 */ public interface ClientUpdateMessage extends ClientMessage { /** * Returns the region name that was updated. * * @return the region name that was updated */ public String getRegionName(); /** * Set the region name that was updated. */ public void setRegionName(String regionName); /** * Returns the new value. * * @return the new value */ public Object getValue(); /** * Returns the new value. * * @return the new value */ public boolean valueIsObject(); /** * Returns the key that was updated. * * @return the key that was updated */ public Object getKeyOfInterest(); /** * Returns the operation * * @return the operation performed by this message */ public EnumListenerEvent getOperation(); /** * Returns the membership Id of the originator of the event. * * @return the membership Id of the originator of the event. */ public ClientProxyMembershipID getMembershipId(); /** * Returns whether the message satisfies cqs. * * @return boolean true if cq info is present. */ public boolean hasCqs(); public CqNameToOp getClientCq(ClientProxyMembershipID clientId); /** * Returns whether the message satisfies CQs for the given clientId. * * @param clientId ClientProxyMembershipID * @return boolean true if CQ info is present for the given proxy. */ public boolean hasCqs(ClientProxyMembershipID clientId); /** * Returns the version of the region entry affected by this operation on the server */ public VersionTag getVersionTag(); /** * Returns true if the message satisfies the interest list registered by the given client. * * @param clientId ClientProxyMembershipID * @return true if the given client is interested in this message */ public boolean isClientInterested(ClientProxyMembershipID clientId); /** * Returns whether the message is due to a result of net load. * * @return boolean true if the event is due to net load. */ public boolean isNetLoad(); /** * Sets the isNetLoad flag. * * @param isNetLoad boolean true if the event is due to net load. */ public void setIsNetLoad(boolean isNetLoad); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_CREATE. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_CREATE */ public boolean isCreate(); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_UPDATE. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_UPDATE */ public boolean isUpdate(); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_DESTROY. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_DESTROY */ public boolean isDestroy(); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_INVALIDATE. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_INVALIDATE */ public boolean isInvalidate(); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_REGION_DESTROY. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_REGION_DESTROY */ public boolean isDestroyRegion(); /** * Returns whether this <code>ClientUpdateMessage</code>'s operation is AFTER_REGION_CLEAR. * * @return whether this <code>ClientUpdateMessage</code>'s operation is AFTER_REGION_CLEAR */ public boolean isClearRegion(); /** * @return whether this message can be sent without going through an authorization check */ public boolean needsNoAuthorizationCheck(); }