Quadcap Embeddable Server

com.quadcap.net.server.WorkerInputStream Class Reference

Inheritance diagram for com.quadcap.net.server.WorkerInputStream:

InputStream List of all members.

Detailed Description

An efficient worker input stream, which supports recycling.

Additionally, this class performs all necessary buffering and some other higher level functions on the socket input stream, so no extra 'buffered' are needed.

In a violoation of layering, but to achieve maximum performance, this class knows how to "parse" HTTP headers.

Author:
Stan Bailes

Definition at line 59 of file WorkerInputStream.java.

Public Member Functions

 WorkerInputStream (FileOutputStream f)
final void reset (InputStream in) throws IOException
final int read () throws IOException
void unread (int c)
final int read (byte[] b, int off, int len) throws IOException
final int read (byte[] b) throws IOException
final int readHeaders (byte[] hbuf, int[] offsets) throws IOException
 Read HTTP readers from the input stream.

final void close () throws IOException
String toString ()

Package Functions

final boolean fill () throws IOException
 Fill the buffer.

final void show (String s, int p)

Package Attributes

byte[] buf = new byte[MAX+1]
int pos = 0
int lim = 0
boolean eof = false
InputStream in
FileOutputStream log

Static Package Attributes

final int MAX = 4096
boolean doTrace = false
byte[] CRLF = { 0x0d, 0x0a, 0x0d, 0x0a }


Constructor & Destructor Documentation

com.quadcap.net.server.WorkerInputStream.WorkerInputStream FileOutputStream  f  ) 
 

Definition at line 73 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.doTrace, and com.quadcap.net.server.WorkerInputStream.log.


Member Function Documentation

final void com.quadcap.net.server.WorkerInputStream.close  )  throws IOException
 

Definition at line 216 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.doTrace, com.quadcap.net.server.WorkerInputStream.in, and com.quadcap.net.server.WorkerInputStream.log.

final boolean com.quadcap.net.server.WorkerInputStream.fill  )  throws IOException [package]
 

Fill the buffer.

Return true unless we're at end of file and have returned zero bytes in this fill

Definition at line 107 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.doTrace, com.quadcap.net.server.WorkerInputStream.eof, com.quadcap.net.server.WorkerInputStream.in, com.quadcap.net.server.WorkerInputStream.lim, com.quadcap.net.server.WorkerInputStream.log, com.quadcap.net.server.WorkerInputStream.MAX, and com.quadcap.net.server.WorkerInputStream.pos.

Referenced by com.quadcap.net.server.WorkerInputStream.read(), and com.quadcap.net.server.WorkerInputStream.readHeaders().

final int com.quadcap.net.server.WorkerInputStream.read byte[]  b  )  throws IOException
 

Definition at line 138 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.read().

final int com.quadcap.net.server.WorkerInputStream.read byte[]  b,
int  off,
int  len
throws IOException
 

Definition at line 122 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.eof, com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.lim, and com.quadcap.net.server.WorkerInputStream.pos.

final int com.quadcap.net.server.WorkerInputStream.read  )  throws IOException
 

Definition at line 93 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.eof, com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.lim, and com.quadcap.net.server.WorkerInputStream.pos.

Referenced by com.quadcap.net.server.SimpleWorker.doSession(), com.quadcap.net.server.Test.main3(), and com.quadcap.net.server.WorkerInputStream.read().

final int com.quadcap.net.server.WorkerInputStream.readHeaders byte[]  hbuf,
int[]  offsets
throws IOException
 

Read HTTP readers from the input stream.

Parameters:
hbuf We place the entire header octet sequence into hbuf, terminated with CRLF
offsets We place the byte offset of the start of each header into the offsets array
Returns:
the number of headers found

Definition at line 152 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.CRLF, com.quadcap.net.server.WorkerInputStream.eof, com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.lim, com.quadcap.net.server.WorkerInputStream.pos, and com.quadcap.net.server.WorkerInputStream.readHeaders().

Referenced by com.quadcap.net.server.Test.main3(), and com.quadcap.net.server.WorkerInputStream.readHeaders().

final void com.quadcap.net.server.WorkerInputStream.reset InputStream  in  )  throws IOException
 

Definition at line 80 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.doTrace, com.quadcap.net.server.WorkerInputStream.in, com.quadcap.net.server.WorkerInputStream.log, and com.quadcap.net.server.WorkerInputStream.reset().

Referenced by com.quadcap.net.server.Test.main3(), com.quadcap.net.server.WorkerInputStream.reset(), and com.quadcap.net.server.Worker.run().

final void com.quadcap.net.server.WorkerInputStream.show String  s,
int  p
[package]
 

Definition at line 201 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.lim, and com.quadcap.net.server.WorkerInputStream.show().

Referenced by com.quadcap.net.server.WorkerInputStream.show().

String com.quadcap.net.server.WorkerInputStream.toString  ) 
 

Definition at line 224 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, and com.quadcap.net.server.WorkerInputStream.lim.

void com.quadcap.net.server.WorkerInputStream.unread int  c  ) 
 

Definition at line 99 of file WorkerInputStream.java.

References com.quadcap.net.server.WorkerInputStream.buf, com.quadcap.net.server.WorkerInputStream.pos, and com.quadcap.net.server.WorkerInputStream.unread().

Referenced by com.quadcap.net.server.WorkerInputStream.unread().


Member Data Documentation

byte [] com.quadcap.net.server.WorkerInputStream.buf = new byte[MAX+1] [package]
 

Definition at line 61 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.read(), com.quadcap.net.server.WorkerInputStream.readHeaders(), com.quadcap.net.server.WorkerInputStream.show(), com.quadcap.net.server.WorkerInputStream.toString(), and com.quadcap.net.server.WorkerInputStream.unread().

byte [] com.quadcap.net.server.WorkerInputStream.CRLF = { 0x0d, 0x0a, 0x0d, 0x0a } [static, package]
 

Definition at line 142 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.readHeaders().

boolean com.quadcap.net.server.WorkerInputStream.doTrace = false [static, package]
 

Definition at line 68 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.close(), com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.reset(), and com.quadcap.net.server.WorkerInputStream.WorkerInputStream().

boolean com.quadcap.net.server.WorkerInputStream.eof = false [package]
 

Definition at line 64 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.read(), and com.quadcap.net.server.WorkerInputStream.readHeaders().

InputStream com.quadcap.net.server.WorkerInputStream.in [package]
 

Definition at line 65 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.close(), com.quadcap.net.server.WorkerInputStream.fill(), and com.quadcap.net.server.WorkerInputStream.reset().

int com.quadcap.net.server.WorkerInputStream.lim = 0 [package]
 

Definition at line 63 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.read(), com.quadcap.net.server.WorkerInputStream.readHeaders(), com.quadcap.net.server.WorkerInputStream.show(), and com.quadcap.net.server.WorkerInputStream.toString().

FileOutputStream com.quadcap.net.server.WorkerInputStream.log [package]
 

Definition at line 69 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.close(), com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.reset(), and com.quadcap.net.server.WorkerInputStream.WorkerInputStream().

final int com.quadcap.net.server.WorkerInputStream.MAX = 4096 [static, package]
 

Definition at line 60 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.fill().

int com.quadcap.net.server.WorkerInputStream.pos = 0 [package]
 

Definition at line 62 of file WorkerInputStream.java.

Referenced by com.quadcap.net.server.WorkerInputStream.fill(), com.quadcap.net.server.WorkerInputStream.read(), com.quadcap.net.server.WorkerInputStream.readHeaders(), and com.quadcap.net.server.WorkerInputStream.unread().