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, 6 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

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