public class AIControlChannel extends XmlControlChannel
Modifier and Type | Class and Description |
---|---|
private class |
AIControlChannel.EmptyAccountPacketObserver |
private class |
AIControlChannel.PreviousPrepdaidBytes |
m_parentMultiplexer
Constructor and Description |
---|
AIControlChannel(Multiplexer a_multiplexer,
PacketCounter a_packetCounter,
IServiceContainer a_serviceContainer,
MixCascade a_connectedCascade) |
Modifier and Type | Method and Description |
---|---|
void |
addAIListener(IAIEventListener a_aiListener) |
private boolean |
checkAccountChanged() |
protected void |
finalize() |
static long |
getBytes() |
private AIControlChannel.PreviousPrepdaidBytes |
getPreviousPrepaidBytes() |
private void |
handlePrepaidBytesReceived(int prepaidBytes,
PayAccount activeAccount) |
boolean |
isPrepaidAmountInPayRequest() |
void |
multiplexerClosed()
This method is called on every channel in the channel-table after the
multiplexer is closed.
|
private void |
processCcToSign(XMLEasyCC cc)
processCcToSign: to be called by processPayRequest
(only the initial, old CC is sent as a naked XMLEasyCC,
new CCs to sign are sent inside a XMLPayRequest)
|
private void |
processChallenge(XMLChallenge chal)
processChallenge
|
private void |
processInitialCC(XMLEasyCC a_cc)
processInitialCC: last step of connecting to a pay cascade:
take last CC as sent by AI as base value for future CCs
Also, send a CC for (bytes in last CC + prepay interval of cascade)
to avoid triggering the cascade's hardlimit by starting to transfer bytes without prepaying
|
private void |
processPayRequest(XMLPayRequest request)
process a XMLPayRequest message, which might request a XMLAccountCertificate,
request a XMLBalance, or contain a XMLEasyCC which the AI asks the JAP to sign
|
void |
processXmlMessage(org.w3c.dom.Document docMsg)
proccessXMLMessage - this is called when a new request is coming in.
|
void |
sendAccountCert() |
void |
setAILoginTimeout(int aiLogin_timeout) |
void |
setPrepaidAmountInPayRequest(boolean prepaidAmountInPayRequest) |
private void |
updateBalance(PayAccount currentAccount,
boolean a_bSynchronous) |
processMessage, sendXmlMessage
processPacketData, sendByteMessage
getServiceContainer, isSending, processReceivedPacket, sendRawMessage
createEmptyMixPacket, deleteChannel, isClosed, sendPacket
public static final long MAX_PREPAID_INTERVAL
public static final long MIN_PREPAID_INTERVAL
public static final long AI_LOGIN_TIMEOUT
private static final long MULTIPLE_LOGIN_BLOCK_TIME
private static final int FIRST_MIX
private static final java.lang.String PREPAID_AMOUNT_IN_PAY_REQ_MIXVERSION
public static final boolean REVERT_PRE_PREPAID
public static final java.util.Hashtable HASH_PREPAID_ON_SERVICES
private int m_aiLogin_timeout
private XMLErrorMessage m_lastErrorMessage
private static long m_totalBytes
private boolean m_bPrepaidReceived
private long m_prepaidBytes
private boolean m_bMultiplexerClosed
private java.util.Vector m_aiListeners
private PacketCounter m_packetCounter
private AIControlChannel.EmptyAccountPacketObserver m_packetCountEmptyObserver
private boolean m_bEmptyMessageSent
private MixCascade m_connectedCascade
private PayAccount m_payAccount
private XMLEasyCC m_initialCC
private final java.util.Vector m_aiLoginSyncObject
private boolean m_prepaidAmountInPayRequest
private boolean m_bLastCCSignaled
public AIControlChannel(Multiplexer a_multiplexer, PacketCounter a_packetCounter, IServiceContainer a_serviceContainer, MixCascade a_connectedCascade)
public void addAIListener(IAIEventListener a_aiListener)
public void processXmlMessage(org.w3c.dom.Document docMsg)
processXmlMessage
in class XmlControlChannel
docMsg
- Documentprivate void handlePrepaidBytesReceived(int prepaidBytes, PayAccount activeAccount)
private void processChallenge(XMLChallenge chal) throws java.lang.Exception
xMLChallenge
- XMLChallengejava.lang.Exception
private boolean checkAccountChanged()
private void processPayRequest(XMLPayRequest request)
request
- XMLPayRequestprivate void updateBalance(PayAccount currentAccount, boolean a_bSynchronous)
private void processCcToSign(XMLEasyCC cc) throws java.lang.Exception
java.lang.Exception
public void sendAccountCert() throws AnonServiceException
AnonServiceException
public static long getBytes()
private AIControlChannel.PreviousPrepdaidBytes getPreviousPrepaidBytes()
private void processInitialCC(XMLEasyCC a_cc)
a_cc
- XMLEasyCC: the last CC that the JAP sent to this Cascade, as returned from the AIprotected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
public void multiplexerClosed()
AbstractChannel
multiplexerClosed
in class AbstractChannel
public void setAILoginTimeout(int aiLogin_timeout)
public boolean isPrepaidAmountInPayRequest()
public void setPrepaidAmountInPayRequest(boolean prepaidAmountInPayRequest)
Copyright © 2023. All rights reserved.