/servers/diameter/core/jdiameter/impl/src/main/java/org/jdiameter/common/impl/app/cxdx/CxDxSession.java
https://github.com/deruelle/mobicents · Java · 59 lines · 37 code · 9 blank · 13 comment · 1 complexity · c5467b5460e42f6fde1eb1f07ed18006 MD5 · raw file
- package org.jdiameter.common.impl.app.cxdx;
-
- import java.util.List;
- import java.util.concurrent.CopyOnWriteArrayList;
- import java.util.concurrent.Future;
- import java.util.concurrent.ScheduledThreadPoolExecutor;
- import java.util.concurrent.locks.Lock;
- import java.util.concurrent.locks.ReentrantLock;
-
- import org.jdiameter.api.NetworkReqListener;
- import org.jdiameter.api.app.StateChangeListener;
- import org.jdiameter.api.app.StateMachine;
- import org.jdiameter.common.api.app.cxdx.CxDxSessionState;
- import org.jdiameter.common.api.app.cxdx.ICxDxMessageFactory;
- import org.jdiameter.common.impl.app.AppSessionImpl;
-
- /**
- * Start time:15:18:44 2009-08-17<br>
- * Project: diameter-parent<br>
- *
- * @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski </a>
- * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a>
- */
- public abstract class CxDxSession extends AppSessionImpl implements NetworkReqListener, StateMachine {
-
- private static final long serialVersionUID = 1L;
- public static final int _TX_TIMEOUT=30*1000;
- protected Lock sendAndStateLock = new ReentrantLock();
- protected static final ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(4);
- protected List<StateChangeListener> stateListeners = new CopyOnWriteArrayList<StateChangeListener>();
- protected CxDxSessionState state = CxDxSessionState.IDLE;
- protected Future timeoutTaskFuture;
- protected ICxDxMessageFactory messageFactory;
-
- public CxDxSession() {
- super();
- }
-
- public void addStateChangeNotification(StateChangeListener listener) {
- if (!stateListeners.contains(listener)) {
- stateListeners.add(listener);
- }
- }
-
- public void removeStateChangeNotification(StateChangeListener listener) {
- stateListeners.remove(listener);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.jdiameter.api.app.AppSession#isStateless()
- */
- public boolean isStateless() {
- //Right?
- return true;
- }
-
- }