/*
* 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();
}