Definition at line 47 of file DiameterWorker.java.
Public Member Functions | |
| DiameterWorker (int id, ArrayBlockingQueue< DiameterTask > tasks) | |
| Constructs a DiameterWorker. | |
| void | run () |
| Delivers a DiameterTask to a listener. | |
| void | shutdown () |
| Shuts downs the Diameter worker. | |
Package Attributes | |
| int | id |
Private Attributes | |
| boolean | running |
| ArrayBlockingQueue< DiameterTask > | queueTasks |
Static Private Attributes | |
| static final Logger | LOGGER = Logger.getLogger(DiameterWorker.class) |
| The logger. | |
| de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.DiameterWorker | ( | int | id, | |
| ArrayBlockingQueue< DiameterTask > | tasks | |||
| ) |
Constructs a DiameterWorker.
| id | An id number of the DiameterWorker. | |
| tasks | Task queue for saving all DiameterTasks. |
Definition at line 63 of file DiameterWorker.java.
00063 { 00064 this.id = id; 00065 this.running = true; 00066 this.queueTasks = tasks; 00067 this.start(); 00068 }
| void de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.run | ( | ) |
Delivers a DiameterTask to a listener.
Definition at line 77 of file DiameterWorker.java.
References de.fhg.fokus.diameter.DiameterPeer.peer.Peer.diameterPeer, de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.eventListeners, de.fhg.fokus.diameter.DiameterPeer.peer.Peer.FQDN, de.fhg.fokus.diameter.DiameterPeer.data.DiameterTask.msg, de.fhg.fokus.diameter.DiameterPeer.data.DiameterTask.peer, de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.queueTasks, de.fhg.fokus.diameter.DiameterPeer.EventListener.recvMessage(), and de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.running.
00077 { 00078 DiameterTask task; 00079 int i, size; 00080 EventListener e; 00081 Vector listeners; 00082 00083 while(running){ 00084 task=null; 00085 try { 00086 task = (DiameterTask) queueTasks.take(); 00087 } catch (InterruptedException e1) { } 00088 00089 if (task==null||task.peer==null||task.msg==null) { 00090 //LOGGER.debug("["+id+"]ety "+queueTasks.size()); 00091 continue; 00092 } 00093 //LOGGER.debug("["+id+"]got "+queueTasks.size()); 00094 //LOGGER.debug("processing"); 00095 listeners = task.peer.diameterPeer.eventListeners; 00096 // if (listeners.size()>0) ((EventListener) listeners.get(0)).recvMessage(task.peer.FQDN,task.msg); 00097 size = listeners.size(); 00098 for(i=0;i<size;i++){ 00099 e = (EventListener) listeners.get(i); 00100 e.recvMessage(task.peer.FQDN,task.msg); 00101 } 00102 } 00103 //LOGGER.debug("["+id+"]end "+queueTasks.size()); 00104 }
| void de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.shutdown | ( | ) |
Shuts downs the Diameter worker.
Definition at line 110 of file DiameterWorker.java.
00111 { 00112 this.running = false; 00113 00114 // poison the queue (now it just wakes the worker) 00115 try { 00116 this.queueTasks.put(new DiameterTask(null,null)); 00117 } catch (InterruptedException e) { 00118 e.printStackTrace(); 00119 } 00120 }
final Logger de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.LOGGER = Logger.getLogger(DiameterWorker.class) [static, private] |
int de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.id [package] |
Definition at line 52 of file DiameterWorker.java.
boolean de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.running [private] |
Definition at line 53 of file DiameterWorker.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.run().
ArrayBlockingQueue<DiameterTask> de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.queueTasks [private] |
Definition at line 54 of file DiameterWorker.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterWorker.run().
1.5.2