Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Class Members

net.alhem.jsockets.HTTPSocket Class Reference

Inheritance diagram for net.alhem.jsockets.HTTPSocket:

Inheritance graph
[legend]
Collaboration diagram for net.alhem.jsockets.HTTPSocket:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 HTTPSocket (SocketHandler h)
 Creates a new instance of HTTPSocket.
void OnRead ()
void ReadLine ()
void OnLine (String line)
abstract void OnData (byte[] buf, int l)
abstract void OnFirst ()
abstract void OnHeader (String key, String value)
abstract void OnHeaderComplete ()
boolean IsRequest ()
boolean IsResponse ()
String GetHttpVersion ()
String GetStatus ()
String GetStatusText ()
String GetMethod ()
String GetUrl ()
String GetUri ()
String GetQueryString ()

Private Attributes

boolean m_first = true
boolean m_header = true
boolean m_request = false
boolean m_response = false
String m_http_version
String m_status
String m_status_text
String m_method
String m_url
String m_uri
String m_query_string

Detailed Description

Author:
Anders Hedstrom (grymse@alhem.net)

Definition at line 32 of file HTTPSocket.java.


Constructor & Destructor Documentation

net.alhem.jsockets.HTTPSocket.HTTPSocket SocketHandler  h  ) 
 

Creates a new instance of HTTPSocket.

Definition at line 36 of file HTTPSocket.java.

References net.alhem.jsockets.Socket.SetLineProtocol().

00037     {
00038         super(h);
00039         SetLineProtocol();
00040     }


Member Function Documentation

String net.alhem.jsockets.HTTPSocket.GetHttpVersion  ) 
 

Definition at line 150 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00151     {
00152         return m_http_version;
00153     }

String net.alhem.jsockets.HTTPSocket.GetMethod  ) 
 

Definition at line 162 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00163     {
00164         return m_method;
00165     }

String net.alhem.jsockets.HTTPSocket.GetQueryString  ) 
 

Definition at line 174 of file HTTPSocket.java.

00175     {
00176         return m_query_string;
00177     }

String net.alhem.jsockets.HTTPSocket.GetStatus  ) 
 

Definition at line 154 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00155     {
00156         return m_status;
00157     }

String net.alhem.jsockets.HTTPSocket.GetStatusText  ) 
 

Definition at line 158 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00159     {
00160         return m_status_text;
00161     }

String net.alhem.jsockets.HTTPSocket.GetUri  ) 
 

Definition at line 170 of file HTTPSocket.java.

00171     {
00172         return m_uri;
00173     }

String net.alhem.jsockets.HTTPSocket.GetUrl  ) 
 

Definition at line 166 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00167     {
00168         return m_url;
00169     }

boolean net.alhem.jsockets.HTTPSocket.IsRequest  ) 
 

Definition at line 142 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00143     {
00144         return m_request;
00145     }

boolean net.alhem.jsockets.HTTPSocket.IsResponse  ) 
 

Definition at line 146 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HttpGetSocket.OnFirst().

00147     {
00148         return m_response;
00149     }

abstract void net.alhem.jsockets.HTTPSocket.OnData byte[]  buf,
int  l
[pure virtual]
 

Implemented in net.alhem.jsockets.HttpGetSocket.

Referenced by net.alhem.jsockets.HTTPSocket.OnRead(), and net.alhem.jsockets.HTTPSocket.ReadLine().

abstract void net.alhem.jsockets.HTTPSocket.OnFirst  )  [pure virtual]
 

Implemented in net.alhem.jsockets.HttpGetSocket.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

abstract void net.alhem.jsockets.HTTPSocket.OnHeader String  key,
String  value
[pure virtual]
 

Implemented in net.alhem.jsockets.HttpGetSocket.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

abstract void net.alhem.jsockets.HTTPSocket.OnHeaderComplete  )  [pure virtual]
 

Implemented in net.alhem.jsockets.HttpGetSocket.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

void net.alhem.jsockets.HTTPSocket.OnLine String  line  ) 
 

TODO split m_url => m_uri / m_query_string

Reimplemented from net.alhem.jsockets.Socket.

Definition at line 97 of file HTTPSocket.java.

References net.alhem.jsockets.Parse.getrest(), net.alhem.jsockets.Parse.getword(), net.alhem.jsockets.HTTPSocket.m_first, net.alhem.jsockets.HTTPSocket.m_header, net.alhem.jsockets.HTTPSocket.m_http_version, net.alhem.jsockets.HTTPSocket.m_method, net.alhem.jsockets.HTTPSocket.m_request, net.alhem.jsockets.HTTPSocket.m_response, net.alhem.jsockets.HTTPSocket.m_status, net.alhem.jsockets.HTTPSocket.m_status_text, net.alhem.jsockets.HTTPSocket.m_url, net.alhem.jsockets.HTTPSocket.OnFirst(), net.alhem.jsockets.HTTPSocket.OnHeader(), and net.alhem.jsockets.HTTPSocket.OnHeaderComplete().

Referenced by net.alhem.jsockets.HTTPSocket.ReadLine().

00098     {
00099         if (m_first)
00100         {
00101             Parse pa = new Parse(line);
00102             String str = pa.getword();
00103             if (str.length() >= 4 && str.substring(0,4).equals("HTTP")) // response
00104             {
00105                 m_http_version = str;
00106                 m_status = pa.getword();
00107                 m_status_text = pa.getrest();
00108                 m_response = true;
00109             }
00110             else // request
00111             {
00112                 m_method = str;
00113                 m_url = pa.getword();
00115                 m_http_version = pa.getword();
00116                 m_request = true;
00117             }
00118             m_first = false;
00119             OnFirst();
00120             return;
00121         }
00122         if (line.length() == 0)
00123         {
00124             m_header = false;
00125             OnHeaderComplete();
00126             return;
00127         }
00128         Parse pa = new Parse(line, ":");
00129         String key = pa.nextToken();
00130         String value = pa.getrest();
00131         OnHeader(key, value);
00132     } // OnLine

void net.alhem.jsockets.HTTPSocket.OnRead  ) 
 

Reimplemented from net.alhem.jsockets.TcpSocket.

Definition at line 42 of file HTTPSocket.java.

References net.alhem.jsockets.HTTPSocket.OnData().

00043     {
00044         super.OnRead();
00045         if (!m_header)
00046         {
00047             if (m_ibuf.limit() > 0)
00048             {
00049                 byte[] buf = new byte[m_ibuf.limit()]; // huvva
00050                 m_ibuf.get(buf);
00051                 OnData(buf, buf.length);
00052                 buf = null;
00053             }
00054         }
00055     } // OnRead

void net.alhem.jsockets.HTTPSocket.ReadLine  ) 
 

Reimplemented from net.alhem.jsockets.TcpSocket.

Definition at line 57 of file HTTPSocket.java.

References net.alhem.jsockets.HTTPSocket.OnData(), and net.alhem.jsockets.HTTPSocket.OnLine().

00058     {
00059         if (m_ibuf.limit() > 0)
00060         {
00061             byte[] buf = new byte[m_ibuf.limit()]; // huvva
00062             m_ibuf.get(buf);
00063             for (int i = 0; i < buf.length; i++)
00064             {
00065                 if (!m_header)
00066                 {
00067                     int sz = buf.length - i;
00068                     byte[] buf2 = new byte[sz];
00069                     for (int j = 0; j < sz; j++)
00070                     {
00071                         buf2[j] = buf[j + i];
00072                     }
00073                     OnData(buf2, sz);
00074                     buf2 = null;
00075                     break;
00076                 }
00077                 switch (buf[i])
00078                 {
00079                     case 13:
00080                         break;
00081                     case 10:
00082                         OnLine(m_line.toString());
00083                         m_line.delete(0, m_line.length());
00084                         break;
00085                     default:
00086                     {
00087                         String aChar = new Character((char)buf[i]).toString();
00088                         m_line.append(aChar);
00089                     }
00090                 }
00091             }
00092             //
00093             buf = null;
00094         }
00095     } // ReadLine


Member Data Documentation

boolean net.alhem.jsockets.HTTPSocket.m_first = true [private]
 

Definition at line 180 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

boolean net.alhem.jsockets.HTTPSocket.m_header = true [private]
 

Definition at line 181 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_http_version [private]
 

Definition at line 185 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_method [private]
 

Definition at line 189 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_query_string [private]
 

Definition at line 192 of file HTTPSocket.java.

boolean net.alhem.jsockets.HTTPSocket.m_request = false [private]
 

Definition at line 182 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

boolean net.alhem.jsockets.HTTPSocket.m_response = false [private]
 

Definition at line 183 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_status [private]
 

Definition at line 186 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_status_text [private]
 

Definition at line 187 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().

String net.alhem.jsockets.HTTPSocket.m_uri [private]
 

Definition at line 191 of file HTTPSocket.java.

String net.alhem.jsockets.HTTPSocket.m_url [private]
 

Definition at line 190 of file HTTPSocket.java.

Referenced by net.alhem.jsockets.HTTPSocket.OnLine().


The documentation for this class was generated from the following file:
Generated on Fri Oct 29 14:11:18 2004 for Java Sockets by  doxygen 1.3.9.1