001: /*
002: * Copyright (c) 2001 by Matt Welsh and The Regents of the University of
003: * California. All rights reserved.
004: *
005: * Permission to use, copy, modify, and distribute this software and its
006: * documentation for any purpose, without fee, and without written agreement is
007: * hereby granted, provided that the above copyright notice and the following
008: * two paragraphs appear in all copies of this software.
009: *
010: * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
011: * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
012: * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
013: * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
014: *
015: * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
016: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
017: * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
018: * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
019: * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
020: *
021: * Author: Matt Welsh <mdw@cs.berkeley.edu>
022: *
023: */
024:
025: package seda.sandStorm.lib.http;
026:
027: import seda.sandStorm.api.*;
028: import seda.sandStorm.lib.aSocket.*;
029: import seda.sandStorm.core.*;
030:
031: import java.util.*;
032: import java.io.*;
033: import java.net.*;
034:
035: /**
036: * An httpResponse corresponding to a '200 OK' response.
037: *
038: * @author Matt Welsh
039: */
040: public class httpOKResponse extends httpResponse implements httpConst,
041: QueueElementIF {
042:
043: private static final boolean DEBUG = false;
044: private String contentType;
045:
046: /**
047: * Create an httpOKResponse with the given payload corresponding
048: * to the given request, using the given MIME content-type.
049: */
050: public httpOKResponse(String contentType, BufferElement payload) {
051: super (httpResponse.RESPONSE_OK, contentType, payload);
052: }
053:
054: /**
055: * Create an httpOKResponse with the given payload corresponding
056: * to the given request, using the given MIME content-type. Use
057: * the given content length in the header of the response.
058: */
059: public httpOKResponse(String contentType, BufferElement payload,
060: int contentLength) {
061: super (httpResponse.RESPONSE_OK, contentType, payload,
062: contentLength);
063: }
064:
065: /**
066: * Create an httpOKResponse with a given response payload size and
067: * MIME type.
068: */
069: public httpOKResponse(String contentType, int payloadSize) {
070: super (httpResponse.RESPONSE_OK, contentType, payloadSize);
071: }
072:
073: /**
074: * Create an httpOKResponse with a given response payload size and
075: * MIME type.
076: */
077: public httpOKResponse(String contentType, int payloadSize,
078: Hashtable headers) {
079: super (httpResponse.RESPONSE_OK, contentType, payloadSize,
080: headers, true);
081: }
082:
083: /**
084: * Create an httpOKResponse with a given response payload size,
085: * MIME type, and completion sink.
086: */
087: public httpOKResponse(String contentType, int payloadSize,
088: SinkIF compQ) {
089: super (httpResponse.RESPONSE_OK, contentType, payloadSize, compQ);
090: }
091:
092: protected String getEntityHeader() {
093: return null;
094: }
095:
096: public String toString() {
097: return "httpOKResponse [content-length=" + contentLength
098: + ", contentType=" + contentType + "]";
099: }
100:
101: }
|