00001
00026 package org.objectweb.jonas_ejb.container;
00027
00028 import java.util.Hashtable;
00029
00030 import org.objectweb.util.monolog.api.BasicLevel;
00031
00038 public class JStatefulPool {
00039
00040 private Hashtable memoryList = new Hashtable();
00041
00042 private Hashtable diskList = new Hashtable();
00043
00044 private int sessionCount = 0;
00045
00049 public JStatefulPool() {
00050 TraceEjb.ssfpool.log(BasicLevel.DEBUG, "");
00051 }
00052
00058 public synchronized int addContext(JStatefulContext ctx) {
00059
00060
00061 if (ctx == null) {
00062 TraceEjb.logger.log(BasicLevel.ERROR, "null");
00063 }
00064
00065
00066 int ctxid = sessionCount++;
00067 TraceEjb.ssfpool.log(BasicLevel.DEBUG, "#" + ctxid);
00068
00069
00070 memoryList.put(new Integer(ctxid), ctx);
00071
00072
00073 return ctxid;
00074 }
00075
00081 public synchronized JStatefulContext getContext(int ctxid) {
00082 TraceEjb.ssfpool.log(BasicLevel.DEBUG, "#" + ctxid);
00083
00084 JStatefulContext ctx = (JStatefulContext) memoryList.get(new Integer(ctxid));
00085
00086
00087
00088 if (ctx == null) {
00089 TraceEjb.logger.log(BasicLevel.ERROR, "null");
00090 }
00091
00092 return ctx;
00093 }
00094
00099 public synchronized void removeContext(int ctxid) {
00100 TraceEjb.ssfpool.log(BasicLevel.DEBUG, "#" + ctxid);
00101
00102 memoryList.remove(new Integer(ctxid));
00103 TraceEjb.ssfpool.log(BasicLevel.DEBUG, "memoryList size = " + memoryList.size());
00104 }
00105 }