// ---------------------------------------------------------------------------
// jWebSocket - Wrapper for Token based PlugIns (Convenience Class)
// Copyright (c) 2010 Alexander Schulze, Innotrade GmbH
// ---------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation; either version 3 of the License, or (at your
// option) any later version.
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
// more details.
// You should have received a copy of the GNU Lesser General Public License along
// with this program; if not, see <http://www.gnu.org/licenses/lgpl.html>.
// ---------------------------------------------------------------------------
package org.jwebsocket.plugins;
import org.jwebsocket.kit.PlugInResponse;
import org.jwebsocket.api.PluginConfiguration;
import org.jwebsocket.api.WebSocketPacket;
import org.jwebsocket.api.WebSocketConnector;
import org.jwebsocket.api.WebSocketEngine;
import org.jwebsocket.async.IOFuture;
import org.jwebsocket.kit.BroadcastOptions;
import org.jwebsocket.kit.CloseReason;
import org.jwebsocket.server.TokenServer;
import org.jwebsocket.token.Token;
/**
*
* @author aschulze
*/
public class TokenPlugIn extends BasePlugIn {
private String mNamespace = null;
/*
public TokenPlugIn() {
}
*/
public TokenPlugIn(PluginConfiguration aConfiguration) {
super(aConfiguration);
}
@Override
public void engineStarted(WebSocketEngine aEngine) {
}
@Override
public void engineStopped(WebSocketEngine aEngine) {
}
/**
*
* @param aConnector
*/
@Override
public void connectorStarted(WebSocketConnector aConnector) {
}
/**
*
* @param aResponse
* @param aConnector
* @param aToken
*/
public void processToken(PlugInResponse aResponse, WebSocketConnector aConnector, Token aToken) {
}
@Override
public void processPacket(PlugInResponse aResponse, WebSocketConnector aConnector, WebSocketPacket aDataPacket) {
//
}
/**
*
* @param aConnector
*/
@Override
public void connectorStopped(WebSocketConnector aConnector, CloseReason aCloseReason) {
}
/**
* @return the namespace
*/
public String getNamespace() {
return mNamespace;
}
/**
* @param aNamespace
* the namespace to set
*/
public void setNamespace(String aNamespace) {
this.mNamespace = aNamespace;
}
/**
*
* @return
*/
@Override
public TokenServer getServer() {
return (TokenServer) super.getServer();
}
/**
* Convenience method, just a wrapper for token server method
* <tt>createResponse</tt> to simplify token plug-in code.
*
* @param aInToken
* @return
*/
public Token createResponse(Token aInToken) {
TokenServer lServer = getServer();
if (lServer != null) {
return lServer.createResponse(aInToken);
} else {
return null;
}
}
/**
* Convenience method, just a wrapper for token server method
* <tt>createAccessDenied</tt> to simplify token plug-in code.
*
* @param aInToken
* @return
*/
public Token createAccessDenied(Token aInToken) {
TokenServer lServer = getServer();
if (lServer != null) {
return lServer.createAccessDenied(aInToken);
} else {
return null;
}
}
/**
* Convenience method, just a wrapper for token server method
* <tt>sendToken</tt> to simplify token plug-in code.
*
* @param aSource
* @param aTarget
* @param aToken
*/
public void sendToken(WebSocketConnector aSource, WebSocketConnector aTarget, Token aToken) {
TokenServer lServer = getServer();
if (lServer != null) {
lServer.sendToken(aSource, aTarget, aToken);
}
}
/**
* Sends the the given token asynchronously and returns the future object to keep track of
* the send operation
* @param aSource the source connector
* @param aTarget the target connector
* @param aToken the token object
* @return the I/O future object
*/
public IOFuture sendTokenAsync(WebSocketConnector aSource, WebSocketConnector aTarget, Token aToken) {
TokenServer lServer = getServer();
if (lServer != null) {
return lServer.sendTokenAsync(aSource, aTarget, aToken);
}
return null;
}
/**
* Convenience method, just a wrapper for token server method
* <tt>sendToken</tt> to simplify token plug-in code.
*
* @param aSource
* @param aTarget
* @param aToken
*/
public void broadcastToken(WebSocketConnector aSource, Token aToken) {
TokenServer lServer = getServer();
if (lServer != null) {
lServer.broadcastToken(aSource, aToken);
}
}
public void broadcastToken(WebSocketConnector aSource, Token aToken, BroadcastOptions aBroadcastOptions) {
TokenServer lServer = getServer();
if (lServer != null) {
lServer.broadcastToken(aSource, aToken, aBroadcastOptions);
}
}
}