/*
* Copyright (c) 2014 Globo.com - ATeam
* All rights reserved.
*
* This source is subject to the Apache License, Version 2.0.
* Please see the LICENSE file for more information.
*
* Authors: See AUTHORS file
*
* 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 com.globo.galeb.entity.impl.backend;
import org.vertx.java.core.http.HttpClient;
import org.vertx.java.core.json.JsonObject;
import com.globo.galeb.entity.IJsonable;
import com.globo.galeb.request.RemoteUser;
/**
* Class NullBackend.
*
* @author See AUTHORS file.
* @version 1.0.0, Nov 18, 2014.
*/
public class NullBackend implements IBackend {
/** The host. */
private final String host;
/** The port. */
private final int port;
/**
* Instantiates a new null backend.
*/
public NullBackend() {
this.host = "0.0.0.0";
this.port = 0;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getHost()
*/
@Override
public String getHost() {
return host;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getPort()
*/
@Override
public Integer getPort() {
return port;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getConnectionTimeout()
*/
@Override
public Integer getConnectionTimeout() {
return Integer.MAX_VALUE;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setConnectionTimeout(java.lang.Integer)
*/
@Override
public IBackend setConnectionTimeout(Integer timeout) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#isKeepalive()
*/
@Override
public Boolean isKeepalive() {
return true;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setKeepAlive(boolean)
*/
@Override
public IBackend setKeepAlive(boolean keepalive) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getKeepAliveMaxRequest()
*/
@Override
public Long getKeepAliveMaxRequest() {
return Long.MAX_VALUE;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setKeepAliveMaxRequest(java.lang.Long)
*/
@Override
public IBackend setKeepAliveMaxRequest(Long maxRequestCount) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getKeepAliveTimeOut()
*/
@Override
public Long getKeepAliveTimeOut() {
return Long.MAX_VALUE;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setKeepAliveTimeOut(java.lang.Long)
*/
@Override
public IBackend setKeepAliveTimeOut(Long keepAliveTimeOut) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getMaxPoolSize()
*/
@Override
public Integer getMaxPoolSize() {
return 1;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setMaxPoolSize(java.lang.Integer)
*/
@Override
public IBackend setMaxPoolSize(Integer maxPoolSize) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#isUsePooledBuffers()
*/
@Override
public Boolean isUsePooledBuffers() {
return false;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getSendBufferSize()
*/
@Override
public Integer getSendBufferSize() {
return 0;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getReceiveBufferSize()
*/
@Override
public Integer getReceiveBufferSize() {
return 0;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#isPipelining()
*/
@Override
public Boolean isPipelining() {
return true;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getMinSessionPoolSize()
*/
@Override
public int getMinSessionPoolSize() {
return 0;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#setMinSessionPoolSize(int)
*/
@Override
public IBackend setMinSessionPoolSize(int minPoolSize) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.entity.impl.backend.IBackend#setMaxConn(int)
*/
@Override
public IBackend setMaxConn(int maxConn) {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#connect(com.globo.galeb.core.RemoteUser)
*/
@Override
public HttpClient connect(RemoteUser remoteUser) {
return null;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#close(java.lang.String)
*/
@Override
public void close(String remoteUser) {
//
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#getActiveConnections()
*/
@Override
public int getActiveConnections() {
return 0;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#isClosed(java.lang.String)
*/
@Override
public boolean isClosed(String remoteUser) {
return true;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#startSessionPool()
*/
@Override
public IBackend startSessionPool() {
return this;
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#closeAllForced()
*/
@Override
public void closeAllForced() {
//
}
/* (non-Javadoc)
* @see com.globo.galeb.core.IBackend#closeAll()
*/
@Override
public void closeAll() {
//
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return IJsonable.UNDEF;
}
/* (non-Javadoc)
* @see com.globo.galeb.entity.IJsonable#toJson()
*/
@Override
public JsonObject toJson() {
return new JsonObject().putString(ID_FIELDNAME, UNDEF);
}
/* (non-Javadoc)
* @see com.globo.galeb.entity.impl.backend.IBackend#setMetricPrefix(java.lang.String)
*/
@Override
public IBackend setMetricPrefix(String prefix) {
return this;
}
}