blob: 1f004f963af738afd8fba31c8a41dd06f37328f0 [file] [log] [blame]
/*
* 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.cache.query.internal.cq;
import org.apache.geode.cache.query.CqClosedException;
import org.apache.geode.cache.query.CqException;
import org.apache.geode.cache.query.RegionNotFoundException;
import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier;
import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
public interface ServerCQ extends InternalCqQuery {
/**
* @return the filterID
*/
Long getFilterID();
/**
* @param filterID the filterID to set
*/
void setFilterID(Long filterID);
/**
* Register the Query on server.
*
*/
void registerCq(ClientProxyMembershipID p_clientProxyId, CacheClientNotifier p_ccn, int p_cqState)
throws CqException, RegionNotFoundException;
/**
* Adds into the CQ Results key cache.
*
*/
void addToCqResultKeys(Object key);
/**
* Removes the key from CQ Results key cache.
*
* @param isTokenMode if true removes the key if its in destroy token mode if false removes the
* key without any check.
*/
void removeFromCqResultKeys(Object key, boolean isTokenMode);
/**
* Invalidates the internal cache containing the keys that are part of the CQ query results.
* Once this method finishes, the CQ engine will not apply the internal optimization for already
* seen keys anymore, not until the cache is manually rebuilt.
*/
void invalidateCqResultKeys();
/**
* Sets the CQ Results key cache state as initialized.
*/
void setCqResultsCacheInitialized();
/**
*
* @return true if the CQ Results key cache is initialized.
*/
boolean isCqResultsCacheInitialized();
/**
* Returns true if old value is required for query processing.
*/
boolean isOldValueRequiredForQueryProcessing(Object key);
/**
* Returns true if key is in destroy token mode.
*/
boolean isKeyDestroyed(Object key);
/**
* Closes the Query. On Client side, sends the cq close request to server. On Server side, takes
* care of repository cleanup.
*
* @param sendRequestToServer true to send the request to server.
*/
@Override
void close(boolean sendRequestToServer) throws CqClosedException, CqException;
boolean isPR();
ClientProxyMembershipID getClientProxyId();
@Override
void stop() throws CqClosedException, CqException;
}