ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterThread.java
Revision: 1.11
Committed: Thu Nov 30 02:38:09 2000 UTC (23 years, 5 months ago) by ajm
Branch: MAIN
Changes since 1.10: +4 -5 lines
Log Message:
Changed package structure
uk.ac.ukc.iscream.refman and xml -> uk.ac.ukc.iscream.util

File Contents

# User Rev Content
1 tdb 1.8 //---PACKAGE DECLARATION---
2     package uk.ac.ukc.iscream.filter;
3    
4     //---IMPORTS---
5 pjm2 1.1 import java.io.*;
6     import java.net.*;
7     import java.util.*;
8 pjm2 1.6 import uk.ac.ukc.iscream.core.*;
9 tdb 1.2 import uk.ac.ukc.iscream.filter.*;
10 ajm 1.11 import uk.ac.ukc.iscream.util.*;
11 pjm2 1.1
12 tdb 1.8 /**
13     * Handle an incoming UDP packet as a separate thread.
14     *
15 ajm 1.11 * @author $Author: tdb1 $
16     * @version $Id: FilterThread.java,v 1.10 2000/11/30 02:00:54 tdb1 Exp $
17 tdb 1.8 */
18 tdb 1.2 public class FilterThread extends Thread{
19 pjm2 1.1
20 tdb 1.8 //---FINAL ATTRIBUTES---
21    
22     /**
23     * The current CVS revision of this class
24     */
25 ajm 1.11 public final String REVISION = "$Revision: 1.10 $";
26 tdb 1.8
27     //---STATIC METHODS---
28    
29     //---CONSTRUCTORS---
30    
31 pjm2 1.3 // Class constructor. Obtains the byte[] from a DatagramPacket.
32 tdb 1.10 public FilterThread(DatagramPacket packet, Filter parent){
33     _parent = parent;
34     _rawPacket = packet.getData();
35     _logger.write(this.toString(), Logger.DEBUG, "created");
36 ajm 1.9
37 pjm2 1.1 }
38    
39 pjm2 1.3 // Class constructor for passing XML Strings.
40 tdb 1.10 public FilterThread(String xml, Filter parent){
41     _parent = parent;
42     _rawPacket = xml.getBytes();
43     _logger.write(this.toString(), Logger.DEBUG, "created");
44 pjm2 1.1 }
45 tdb 1.8
46     //---PUBLIC METHODS---
47    
48 pjm2 1.1 public void run(){
49    
50     // Get a string without any null characters in it.
51 tdb 1.10 // -- maybe String.trim() would be better here ?
52     String xml = new String(_rawPacket);
53 pjm2 1.3 if (xml.indexOf(0) != -1) {
54 tdb 1.2 xml = xml.substring(0, xml.indexOf(0));
55     }
56     else {
57     xml = xml.substring(0, xml.length());
58     }
59 ajm 1.9
60 pjm2 1.3 // Use my XMLPacketMaker to make an XMLPacket object.
61 tdb 1.10 XMLPacketMaker xmlPacketMaker = new XMLPacketMaker(xml);
62 pjm2 1.1 XMLPacket packet = xmlPacketMaker.createXMLPacket();
63 ajm 1.9
64 tdb 1.10 _logger.write(this.toString(), Logger.DEBUG, "got data, filtering and passing to parent - " + packet.printAll());
65 ajm 1.9
66 pjm2 1.1 if (packet == null){
67 pjm2 1.6 // A null XML packet was returned - don't pass it on.
68 tdb 1.10 _logger.write(this.toString(), Logger.SYSMSG, "An XML UDP packet was sucessfully filtered from the system.");
69 pjm2 1.1 return;
70     }
71 pjm2 1.6
72     // Now do something with this XMLPacket!!!
73     // .... let's try this...
74 tdb 1.10 _parent.receiveXML(xml);
75 pjm2 1.1
76     }
77 tdb 1.8
78     /**
79     * Overrides the {@link java.lang.Object#toString() Object.toString()}
80     * method to provide clean logging (every class should have this).
81     *
82     * @return the name of this class and its CVS revision
83     */
84     public String toString() {
85 ajm 1.9 return this.getClass().getName() + "{" + _name + "}(" + REVISION.substring(11, REVISION.length() - 2) + ")";
86 tdb 1.8 }
87    
88     //---PRIVATE METHODS---
89    
90     //---ACCESSOR/MUTATOR METHODS---
91    
92     //---ATTRIBUTES---
93    
94 tdb 1.10 Filter _parent;
95     byte[] _rawPacket;
96     Logger _logger = ReferenceManager.getInstance().getLogger();
97     String _name = ReferenceManager.getInstance().getName();
98 tdb 1.8
99     //---STATIC ATTRIBUTES---
100    
101 pjm2 1.1 }