blob: 6cec965717380569aab2c0ec2950ae266fe1c7bb [file] [log] [blame]
package org.apache.commons.jcs3.auxiliary.lateral.behavior;
/*
* 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.
*/
import org.apache.commons.jcs3.auxiliary.AuxiliaryCacheAttributes;
/**
* This interface defines configuration options common to lateral cache plugins.
* <p>
* TODO it needs to be trimmed down. The old version had features for every lateral. Now, the
* individual laterals have their own specific attributes interfaces.
*/
public interface ILateralCacheAttributes
extends AuxiliaryCacheAttributes
{
enum Type
{
/** HTTP type */
HTTP, // 1
/** UDP type */
UDP, // 2
/** TCP type */
TCP, // 3
/** XMLRPC type */
XMLRPC // 4
}
/**
* The number of elements the zombie queue will hold. This queue is used to store events if we
* loose our connection with the server.
*/
int DEFAULT_ZOMBIE_QUEUE_MAX_SIZE = 1000;
/**
* Sets the httpServer attribute of the ILateralCacheAttributes object
* <p>
* @param val The new httpServer value
*/
void setHttpServer( String val );
/**
* Gets the httpServer attribute of the ILateralCacheAttributes object
* <p>
* @return The httpServer value
*/
String getHttpServer();
/**
* Sets the httpListenerPort attribute of the ILateralCacheAttributes object
* <p>
* @param val The new tcpListenerPort value
*/
void setHttpListenerPort( int val );
/**
* Gets the httpListenerPort attribute of the ILateralCacheAttributes object
* <p>
* @return The httpListenerPort value
*/
int getHttpListenerPort();
/**
* Sets the httpServers attribute of the LateralCacheAttributes object
* <p>
* @param val The new httpServers value
*/
void setHttpServers( String val );
/**
* Gets the httpSrvers attribute of the LateralCacheAttributes object
* <p>
* @return The httpServers value
*/
String getHttpServers();
/**
* Sets the udpMulticastAddr attribute of the ILateralCacheAttributes object
* <p>
* @param val The new udpMulticastAddr value
*/
void setUdpMulticastAddr( String val );
/**
* Gets the udpMulticastAddr attribute of the ILateralCacheAttributes object
* <p>
* @return The udpMulticastAddr value
*/
String getUdpMulticastAddr();
/**
* Sets the udpMulticastPort attribute of the ILateralCacheAttributes object
* <p>
* @param val The new udpMulticastPort value
*/
void setUdpMulticastPort( int val );
/**
* Gets the udpMulticastPort attribute of the ILateralCacheAttributes object
* <p>
* @return The udpMulticastPort value
*/
int getUdpMulticastPort();
/**
* Sets the transmissionType attribute of the ILateralCacheAttributes object
* <p>
* @param val The new transmissionType value
*/
void setTransmissionType( Type val );
/**
* Gets the transmissionType attribute of the ILateralCacheAttributes object
* <p>
* @return The transmissionType value
*/
Type getTransmissionType();
/**
* Sets the transmissionTypeName attribute of the ILateralCacheAttributes object
* <p>
* @param val The new transmissionTypeName value
*/
void setTransmissionTypeName( String val );
/**
* Gets the transmissionTypeName attribute of the ILateralCacheAttributes object
* <p>
* @return The transmissionTypeName value
*/
String getTransmissionTypeName();
/**
* Sets the putOnlyMode attribute of the ILateralCacheAttributes. When this is true the lateral
* cache will only issue put and remove order and will not try to retrieve elements from other
* lateral caches.
* <p>
* @param val The new transmissionTypeName value
*/
void setPutOnlyMode( boolean val );
/**
* @return The outgoingOnlyMode value. Stops gets from going remote.
*/
boolean getPutOnlyMode();
/**
* @param receive The receive to set.
*/
void setReceive( boolean receive );
/**
* Should a listener be created. By default this is true.
* <p>
* If this is false the lateral will connect to others but it will not create a listener to
* receive.
* <p>
* It is possible if two laterals are misconfigured that lateral A may have a region R1 that is
* not configured for the lateral but another is. And if cache B has region R1 configured for
* lateral distribution, A will get messages for R1 but not send them.
* <p>
* @return true if we should have a listener connection
*/
boolean isReceive();
/**
* The number of elements the zombie queue will hold. This queue is used to store events if we
* loose our connection with the server.
* <p>
* @param zombieQueueMaxSize The zombieQueueMaxSize to set.
*/
void setZombieQueueMaxSize( int zombieQueueMaxSize );
/**
* The number of elements the zombie queue will hold. This queue is used to store events if we
* loose our connection with the server.
* <p>
* @return Returns the zombieQueueMaxSize.
*/
int getZombieQueueMaxSize();
}