public class ErrorGeneratingFilter extends IoFilterAdapter
IoFilter
implementation generating random bytes and PDU modification in
your communication streams.
It's quite simple to use :
ErrorGeneratingFilter egf = new ErrorGeneratingFilter();
For activate the change of some bytes in your IoBuffer
, for a probability of 200 out
of 1000 IoBuffer
processed :
egf.setChangeByteProbability(200);
For activate the insertion of some bytes in your IoBuffer
, for a
probability of 200 out of 1000 :
egf.setInsertByteProbability(200);
And for the removing of some bytes :
egf.setRemoveByteProbability(200);
You can activate the error generation for write or read with the
following methods :
egf.setManipulateReads(true);
egf.setManipulateWrites(true);
IoFilter.NextFilter
Constructor and Description |
---|
ErrorGeneratingFilter() |
Modifier and Type | Method and Description |
---|---|
void |
filterWrite(IoFilter.NextFilter nextFilter,
IoSession session,
WriteRequest writeRequest)
Filters
IoSession.write(Object) method invocation. |
int |
getChangeByteProbability() |
int |
getDuplicatePduProbability() |
int |
getInsertByteProbability() |
int |
getMaxInsertByte() |
int |
getRemoveByteProbability() |
int |
getRemovePduProbability() |
int |
getResendPduLasterProbability() |
boolean |
isManipulateReads() |
boolean |
isManipulateWrites() |
void |
messageReceived(IoFilter.NextFilter nextFilter,
IoSession session,
Object message)
Filters
IoHandler.messageReceived(IoSession,Object) event. |
void |
setChangeByteProbability(int changeByteProbability)
Set the probability for the change byte error.
|
void |
setDuplicatePduProbability(int duplicatePduProbability)
not functional ATM
|
void |
setInsertByteProbability(int insertByteProbability)
Set the probability for the insert byte error.
|
void |
setManipulateReads(boolean manipulateReads)
Set to true if you want to apply error to the read
IoBuffer |
void |
setManipulateWrites(boolean manipulateWrites)
Set to true if you want to apply error to the written
IoBuffer |
void |
setMaxInsertByte(int maxInsertByte)
Set the maximum number of byte the filter can insert in a
IoBuffer . |
void |
setRemoveByteProbability(int removeByteProbability)
Set the probability for the remove byte error.
|
void |
setRemovePduProbability(int removePduProbability)
not functional ATM
|
void |
setResendPduLasterProbability(int resendPduLasterProbability)
not functional ATM
|
destroy, event, exceptionCaught, filterClose, init, inputClosed, messageSent, onPostAdd, onPostRemove, onPreAdd, onPreRemove, sessionClosed, sessionCreated, sessionIdle, sessionOpened, toString
public void filterWrite(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception
IoFilterAdapter
IoSession.write(Object)
method invocation.filterWrite
in interface IoFilter
filterWrite
in class IoFilterAdapter
nextFilter
- the IoFilter.NextFilter
for this filter. You can reuse this
object until this filter is removed from the chain.session
- The IoSession
which has to process this invocationwriteRequest
- The WriteRequest
to processException
- If an error occurred while processing the eventpublic void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, Object message) throws Exception
IoFilterAdapter
IoHandler.messageReceived(IoSession,Object)
event.messageReceived
in interface IoFilter
messageReceived
in class IoFilterAdapter
nextFilter
- the IoFilter.NextFilter
for this filter. You can reuse this
object until this filter is removed from the chain.session
- The IoSession
which has received this eventmessage
- The received messageException
- If an error occurred while processing the eventpublic int getChangeByteProbability()
public void setChangeByteProbability(int changeByteProbability)
IoBuffer
.changeByteProbability
- probability of modifying an IoBuffer out of 1000 processed IoBuffer
public int getDuplicatePduProbability()
public void setDuplicatePduProbability(int duplicatePduProbability)
duplicatePduProbability
- The probability for generating duplicated PDUpublic int getInsertByteProbability()
public void setInsertByteProbability(int insertByteProbability)
IoBuffer
.insertByteProbability
- probability of inserting in IoBuffer out of 1000 processed IoBuffer
public boolean isManipulateReads()
public void setManipulateReads(boolean manipulateReads)
IoBuffer
manipulateReads
- The number of manipulated readspublic boolean isManipulateWrites()
public void setManipulateWrites(boolean manipulateWrites)
IoBuffer
manipulateWrites
- If manipulated writes are expected or notpublic int getRemoveByteProbability()
public void setRemoveByteProbability(int removeByteProbability)
IoBuffer
.removeByteProbability
- probability of modifying an IoBuffer
out of 1000 processed IoBufferpublic int getRemovePduProbability()
public void setRemovePduProbability(int removePduProbability)
removePduProbability
- The PDU removal probabilitypublic int getResendPduLasterProbability()
public void setResendPduLasterProbability(int resendPduLasterProbability)
resendPduLasterProbability
- The delay before a resendpublic int getMaxInsertByte()
IoBuffer
Copyright © 2004–2021 Apache MINA Project. All rights reserved.