org.jdiameter.server.impl.app.rx
Class ServerRxSessionImpl

java.lang.Object
  extended by org.jdiameter.common.impl.app.AppSessionImpl
      extended by org.jdiameter.common.impl.app.rx.AppRxSessionImpl
          extended by org.jdiameter.server.impl.app.rx.ServerRxSessionImpl
All Implemented Interfaces:
AppSession, StateMachine, BaseSession, EventListener<Request,Answer>, NetworkReqListener, ServerRxSession

public class ServerRxSessionImpl
extends AppRxSessionImpl
implements ServerRxSession, NetworkReqListener, EventListener<Request,Answer>

3GPP IMS Rx Reference Point Server session implementation

Author:
Richard Good , Alexandre Mendonca , Bartosz Baranowski

Field Summary
protected  long[] authAppIds
           
protected  IServerRxSessionContext context
           
protected  IRxMessageFactory factory
           
protected  ServerRxSessionListener listener
           
protected  java.util.concurrent.locks.Lock sendAndStateLock
           
protected  IServerRxSessionData sessionData
           
 
Fields inherited from class org.jdiameter.common.impl.app.rx.AppRxSessionImpl
stateListeners
 
Fields inherited from class org.jdiameter.common.impl.app.AppSessionImpl
appSessionData, scheduler, session, sessions, sf, timerFacility
 
Constructor Summary
ServerRxSessionImpl(IServerRxSessionData sessionData, IRxMessageFactory fct, ISessionFactory sf, ServerRxSessionListener lst, IServerRxSessionContext ctx, StateChangeListener<AppSession> stLst)
           
 
Method Summary
protected  void dispatchEvent(AppEvent event)
           
 boolean equals(java.lang.Object obj)
           
<E> E
getState(java.lang.Class<E> stateType)
           
 boolean handleEvent(StateEvent event)
           
 int hashCode()
           
protected  boolean isProvisional(long resultCode)
           
 boolean isReplicable()
           
 boolean isStateless()
           
protected  boolean isSuccess(long resultCode)
           
 void onTimer(java.lang.String timerName)
           
 Answer processRequest(Request request)
           
 void receivedSuccessMessage(Request request, Answer answer)
           
 void release()
           
protected  void send(Event.Type type, AppRequestEvent request, AppAnswerEvent answer)
           
 void sendAAAnswer(RxAAAnswer answer)
           
 void sendAbortSessionRequest(RxAbortSessionRequest request)
           
 void sendReAuthRequest(RxReAuthRequest request)
           
 void sendSessionTermAnswer(RxSessionTermAnswer answer)
           
protected  void setState(ServerRxSessionState newState)
           
protected  void setState(ServerRxSessionState newState, boolean release)
           
 void timeoutExpired(Request request)
           
 
Methods inherited from class org.jdiameter.common.impl.app.rx.AppRxSessionImpl
addStateChangeNotification, removeStateChangeNotification
 
Methods inherited from class org.jdiameter.common.impl.app.AppSessionImpl
getCreationTime, getLastAccessedTime, getSessionAppId, getSessionId, getSessions, isAppSession, isValid
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jdiameter.api.app.AppSession
getSessionAppId, getSessions
 
Methods inherited from interface org.jdiameter.api.BaseSession
getCreationTime, getLastAccessedTime, getSessionId, isAppSession, isValid
 
Methods inherited from interface org.jdiameter.api.app.StateMachine
addStateChangeNotification, removeStateChangeNotification
 

Field Detail

sendAndStateLock

protected java.util.concurrent.locks.Lock sendAndStateLock

factory

protected transient IRxMessageFactory factory

context

protected transient IServerRxSessionContext context

listener

protected transient ServerRxSessionListener listener

authAppIds

protected long[] authAppIds

sessionData

protected IServerRxSessionData sessionData
Constructor Detail

ServerRxSessionImpl

public ServerRxSessionImpl(IServerRxSessionData sessionData,
                           IRxMessageFactory fct,
                           ISessionFactory sf,
                           ServerRxSessionListener lst,
                           IServerRxSessionContext ctx,
                           StateChangeListener<AppSession> stLst)
Method Detail

sendAAAnswer

public void sendAAAnswer(RxAAAnswer answer)
                  throws InternalException,
                         IllegalDiameterStateException,
                         RouteException,
                         OverloadException
Specified by:
sendAAAnswer in interface ServerRxSession
Throws:
InternalException
IllegalDiameterStateException
RouteException
OverloadException

sendSessionTermAnswer

public void sendSessionTermAnswer(RxSessionTermAnswer answer)
                           throws InternalException,
                                  IllegalDiameterStateException,
                                  RouteException,
                                  OverloadException
Specified by:
sendSessionTermAnswer in interface ServerRxSession
Throws:
InternalException
IllegalDiameterStateException
RouteException
OverloadException

sendReAuthRequest

public void sendReAuthRequest(RxReAuthRequest request)
                       throws InternalException,
                              IllegalDiameterStateException,
                              RouteException,
                              OverloadException
Specified by:
sendReAuthRequest in interface ServerRxSession
Throws:
InternalException
IllegalDiameterStateException
RouteException
OverloadException

sendAbortSessionRequest

public void sendAbortSessionRequest(RxAbortSessionRequest request)
                             throws InternalException,
                                    IllegalDiameterStateException,
                                    RouteException,
                                    OverloadException
Specified by:
sendAbortSessionRequest in interface ServerRxSession
Throws:
InternalException
IllegalDiameterStateException
RouteException
OverloadException

isStateless

public boolean isStateless()
Specified by:
isStateless in interface AppSession

getState

public <E> E getState(java.lang.Class<E> stateType)
Specified by:
getState in interface StateMachine

handleEvent

public boolean handleEvent(StateEvent event)
                    throws InternalException,
                           OverloadException
Specified by:
handleEvent in interface StateMachine
Throws:
InternalException
OverloadException

isReplicable

public boolean isReplicable()
Specified by:
isReplicable in interface BaseSession
Overrides:
isReplicable in class AppSessionImpl

processRequest

public Answer processRequest(Request request)
Specified by:
processRequest in interface NetworkReqListener

receivedSuccessMessage

public void receivedSuccessMessage(Request request,
                                   Answer answer)
Specified by:
receivedSuccessMessage in interface EventListener<Request,Answer>

onTimer

public void onTimer(java.lang.String timerName)
Specified by:
onTimer in class AppSessionImpl

timeoutExpired

public void timeoutExpired(Request request)
Specified by:
timeoutExpired in interface EventListener<Request,Answer>

isProvisional

protected boolean isProvisional(long resultCode)

isSuccess

protected boolean isSuccess(long resultCode)

setState

protected void setState(ServerRxSessionState newState)

setState

protected void setState(ServerRxSessionState newState,
                        boolean release)

release

public void release()
Specified by:
release in interface BaseSession
Overrides:
release in class AppRxSessionImpl

send

protected void send(Event.Type type,
                    AppRequestEvent request,
                    AppAnswerEvent answer)
             throws InternalException
Throws:
InternalException

dispatchEvent

protected void dispatchEvent(AppEvent event)
                      throws InternalException
Throws:
InternalException

hashCode

public int hashCode()
Overrides:
hashCode in class AppSessionImpl

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class AppSessionImpl


Copyright © 2014. All Rights Reserved.