1 package org.apache.commons.jcs.auxiliary.lateral.behavior; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import org.apache.commons.jcs.auxiliary.AuxiliaryCacheAttributes; 23 24 /** 25 * This interface defines configuration options common to lateral cache plugins. 26 * <p> 27 * TODO it needs to be trimmed down. The old version had features for every lateral. Now, the 28 * individual laterals have their own specific attributes interfaces. 29 */ 30 public interface ILateralCacheAttributes 31 extends AuxiliaryCacheAttributes 32 { 33 enum Type 34 { 35 /** HTTP type */ 36 HTTP, // 1 37 38 /** UDP type */ 39 UDP, // 2 40 41 /** TCP type */ 42 TCP, // 3 43 44 /** XMLRPC type */ 45 XMLRPC // 4 46 } 47 48 /** 49 * The number of elements the zombie queue will hold. This queue is used to store events if we 50 * loose our connection with the server. 51 */ 52 int DEFAULT_ZOMBIE_QUEUE_MAX_SIZE = 1000; 53 54 /** 55 * Sets the httpServer attribute of the ILateralCacheAttributes object 56 * <p> 57 * @param val The new httpServer value 58 */ 59 void setHttpServer( String val ); 60 61 /** 62 * Gets the httpServer attribute of the ILateralCacheAttributes object 63 * <p> 64 * @return The httpServer value 65 */ 66 String getHttpServer(); 67 68 /** 69 * Sets the httpListenerPort attribute of the ILateralCacheAttributes object 70 * <p> 71 * @param val The new tcpListenerPort value 72 */ 73 void setHttpListenerPort( int val ); 74 75 /** 76 * Gets the httpListenerPort attribute of the ILateralCacheAttributes object 77 * <p> 78 * @return The httpListenerPort value 79 */ 80 int getHttpListenerPort(); 81 82 /** 83 * Sets the httpServers attribute of the LateralCacheAttributes object 84 * <p> 85 * @param val The new httpServers value 86 */ 87 void setHttpServers( String val ); 88 89 /** 90 * Gets the httpSrvers attribute of the LateralCacheAttributes object 91 * <p> 92 * @return The httpServers value 93 */ 94 String getHttpServers(); 95 96 /** 97 * Sets the udpMulticastAddr attribute of the ILateralCacheAttributes object 98 * <p> 99 * @param val The new udpMulticastAddr value 100 */ 101 void setUdpMulticastAddr( String val ); 102 103 /** 104 * Gets the udpMulticastAddr attribute of the ILateralCacheAttributes object 105 * <p> 106 * @return The udpMulticastAddr value 107 */ 108 String getUdpMulticastAddr(); 109 110 /** 111 * Sets the udpMulticastPort attribute of the ILateralCacheAttributes object 112 * <p> 113 * @param val The new udpMulticastPort value 114 */ 115 void setUdpMulticastPort( int val ); 116 117 /** 118 * Gets the udpMulticastPort attribute of the ILateralCacheAttributes object 119 * <p> 120 * @return The udpMulticastPort value 121 */ 122 int getUdpMulticastPort(); 123 124 /** 125 * Sets the transmissionType attribute of the ILateralCacheAttributes object 126 * <p> 127 * @param val The new transmissionType value 128 */ 129 void setTransmissionType( Type val ); 130 131 /** 132 * Gets the transmissionType attribute of the ILateralCacheAttributes object 133 * <p> 134 * @return The transmissionType value 135 */ 136 Type getTransmissionType(); 137 138 /** 139 * Sets the transmissionTypeName attribute of the ILateralCacheAttributes object 140 * <p> 141 * @param val The new transmissionTypeName value 142 */ 143 void setTransmissionTypeName( String val ); 144 145 /** 146 * Gets the transmissionTypeName attribute of the ILateralCacheAttributes object 147 * <p> 148 * @return The transmissionTypeName value 149 */ 150 String getTransmissionTypeName(); 151 152 /** 153 * Sets the putOnlyMode attribute of the ILateralCacheAttributes. When this is true the lateral 154 * cache will only issue put and remove order and will not try to retrieve elements from other 155 * lateral caches. 156 * <p> 157 * @param val The new transmissionTypeName value 158 */ 159 void setPutOnlyMode( boolean val ); 160 161 /** 162 * @return The outgoingOnlyMode value. Stops gets from going remote. 163 */ 164 boolean getPutOnlyMode(); 165 166 /** 167 * @param receive The receive to set. 168 */ 169 void setReceive( boolean receive ); 170 171 /** 172 * Should a listener be created. By default this is true. 173 * <p> 174 * If this is false the lateral will connect to others but it will not create a listener to 175 * receive. 176 * <p> 177 * It is possible if two laterals are misconfigured that lateral A may have a region R1 that is 178 * not configured for the lateral but another is. And if cache B has region R1 configured for 179 * lateral distribution, A will get messages for R1 but not send them. 180 * <p> 181 * @return true if we should have a listener connection 182 */ 183 boolean isReceive(); 184 185 /** 186 * The number of elements the zombie queue will hold. This queue is used to store events if we 187 * loose our connection with the server. 188 * <p> 189 * @param zombieQueueMaxSize The zombieQueueMaxSize to set. 190 */ 191 void setZombieQueueMaxSize( int zombieQueueMaxSize ); 192 193 /** 194 * The number of elements the zombie queue will hold. This queue is used to store events if we 195 * loose our connection with the server. 196 * <p> 197 * @return Returns the zombieQueueMaxSize. 198 */ 199 int getZombieQueueMaxSize(); 200 }