Package org.jpos.iso.channel
Class X25Channel
- java.lang.Object
-
- java.util.Observable
-
- org.jpos.iso.BaseChannel
-
- org.jpos.iso.channel.X25Channel
-
- All Implemented Interfaces:
java.lang.Cloneable
,Configurable
,ExceptionHandlerAware
,BaseChannelMBean
,ClientChannel
,FactoryChannel
,FilteredChannel
,ISOChannel
,ISOSource
,ServerChannel
,LogSource
public class X25Channel extends BaseChannel
Implements an ISOChannel suitable to be used to connect to an X.25 PAD. It waits a limited amount of time to decide when a packet is ready to be unpacked. This channel is based on PADChannel version 1.4. The new version seems to have some problems dealing with ETXs (we're working on it). Use this version _only_ if you have problems with current PADChannel as it will be deprecated some time in the future.- See Also:
ISOMsg
,ISOException
,ISOChannel
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]
header
-
Fields inherited from class org.jpos.iso.BaseChannel
cnt, incomingFilters, logger, originalRealm, outgoingFilters, overrideHeader, packager, realm, serverIn, serverInLock, serverOut, serverOutLock, serverSocket, socketFactory, usable
-
Fields inherited from interface org.jpos.iso.ISOChannel
CONNECT, RX, SIZEOF_CNT, TX
-
-
Constructor Summary
Constructors Constructor Description X25Channel()
No-args constructorX25Channel(java.lang.String host, int port, ISOPackager p)
Constructs client ISOChannelX25Channel(ISOPackager p)
Construct server ISOChannelX25Channel(ISOPackager p, java.net.ServerSocket serverSocket)
constructs a server ISOChannel associated with a Server Socket
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
connect(java.net.Socket socket)
setup I/O Streams from socketvoid
disconnect()
disconnects the TCP/IP session.byte[]
getHeader()
protected int
getHeaderLength()
protected void
sendMessageHeader(ISOMsg m, int len)
void
setHeader(byte[] header)
void
setHeader(java.lang.String header)
protected byte[]
streamReceive()
-
Methods inherited from class org.jpos.iso.BaseChannel
accept, addFilter, addFilter, addIncomingFilter, addOutgoingFilter, applyIncomingFilters, applyIncomingFilters, applyOutgoingFilters, applyTimeout, clone, closeSocket, connect, createISOMsg, createMsg, getBytes, getChannel, getConfiguration, getCounters, getDynamicHeader, getDynamicPackager, getDynamicPackager, getDynamicPackager, getExceptionHandlers, getHeaderLength, getHeaderLength, getHost, getIncomingFilters, getLogger, getMaxPacketLength, getMessage, getMessageLength, getMessageTrailer, getMessageTrailler, getName, getOriginalRealm, getOutgoingFilters, getPackager, getPort, getRealm, getServerSocket, getSocket, getSocketFactory, getSoLingerSeconds, getTimeout, isConnected, isExpectKeepAlive, isOverrideHeader, isRejected, isSoLingerOn, newSocket, newSocket, pack, postConnectHook, readHeader, receive, reconnect, removeFilter, removeFilter, removeIncomingFilter, removeOutgoingFilter, resetCounters, send, send, sendKeepAlive, sendMessage, sendMessageLength, sendMessageTrailer, sendMessageTrailler, sendMessageTrailler, setConfiguration, setHost, setHost, setIncomingFilters, setLocalAddress, setLogger, setMaxPacketLength, setName, setOutgoingFilters, setOverrideHeader, setPackager, setPort, setServerSocket, setSocketFactory, setSoLinger, setTimeout, setUsable, shouldIgnore, unpack
-
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jpos.core.handlers.exception.ExceptionHandlerAware
addHandler, addHandler, handle, removeHandler, removeHandler, removeHandlers
-
-
-
-
Field Detail
-
header
protected byte[] header
-
-
Constructor Detail
-
X25Channel
public X25Channel()
No-args constructor
-
X25Channel
public X25Channel(java.lang.String host, int port, ISOPackager p)
Constructs client ISOChannel- Parameters:
host
- server TCP Addressport
- server port numberp
- an ISOPackager- See Also:
ISOPackager
-
X25Channel
public X25Channel(ISOPackager p) throws java.io.IOException
Construct server ISOChannel- Parameters:
p
- an ISOPackager- Throws:
java.io.IOException
- See Also:
ISOPackager
-
X25Channel
public X25Channel(ISOPackager p, java.net.ServerSocket serverSocket) throws java.io.IOException
constructs a server ISOChannel associated with a Server Socket- Parameters:
p
- an ISOPackagerserverSocket
- where to accept a connection- Throws:
java.io.IOException
- See Also:
ISOPackager
-
-
Method Detail
-
streamReceive
protected byte[] streamReceive() throws java.io.IOException
- Overrides:
streamReceive
in classBaseChannel
- Returns:
- a byte array with the received message
- Throws:
java.io.IOException
-
connect
protected void connect(java.net.Socket socket) throws java.io.IOException
Description copied from class:BaseChannel
setup I/O Streams from socket- Overrides:
connect
in classBaseChannel
- Parameters:
socket
- a Socket (client or server)- Throws:
java.io.IOException
- on error
-
disconnect
public void disconnect() throws java.io.IOException
Description copied from class:BaseChannel
disconnects the TCP/IP session. The instance is ready for a reconnection. There is no need to create a new ISOChannel- Specified by:
disconnect
in interfaceBaseChannelMBean
- Specified by:
disconnect
in interfaceISOChannel
- Overrides:
disconnect
in classBaseChannel
- Throws:
java.io.IOException
-
getHeaderLength
protected int getHeaderLength()
- Overrides:
getHeaderLength
in classBaseChannel
-
setHeader
public void setHeader(byte[] header)
- Overrides:
setHeader
in classBaseChannel
-
setHeader
public void setHeader(java.lang.String header)
- Overrides:
setHeader
in classBaseChannel
- Parameters:
header
- Hex representation of header
-
getHeader
public byte[] getHeader()
- Overrides:
getHeader
in classBaseChannel
-
sendMessageHeader
protected void sendMessageHeader(ISOMsg m, int len) throws java.io.IOException
- Overrides:
sendMessageHeader
in classBaseChannel
- Throws:
java.io.IOException
-
-