seguin      01/05/29 16:03:01

  Modified:    jk/src/java/org/apache/ajp Ajp13Packet.java
  Log:
  added some javadocs.
  added set/getEncoding methods + encoding attribute.
  
  Revision  Changes    Path
  1.4       +67 -11    
jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/Ajp13Packet.java
  
  Index: Ajp13Packet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/Ajp13Packet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Ajp13Packet.java  2001/05/16 23:23:31     1.3
  +++ Ajp13Packet.java  2001/05/29 23:02:59     1.4
  @@ -74,38 +74,94 @@
   
       public static final String DEFAULT_CHAR_ENCODING = "8859_1";
   
  -    byte buff[]; // Holds the bytes of the packet
  -    int pos;     // The current read or write position in the buffer
  +    /**
  +     * encoding to use when converting byte[] <-> string
  +     */
  +    String encoding = DEFAULT_CHAR_ENCODING;
  +
  +    /**
  +     * Holds the bytes of the packet
  +     */
  +    byte buff[];
  +
  +    /**
  +     * The current read or write position in the buffer
  +     */
  +    int pos;    
   
  +    /**
  +     * This actually means different things depending on whether the
  +     * packet is read or write.  For read, it's the length of the
  +     * payload (excluding the header).  For write, it's the length of
  +     * the packet as a whole (counting the header).  Oh, well.
  +     */
       int len; 
  -    // This actually means different things depending on whether the
  -    // packet is read or write.  For read, it's the length of the
  -    // payload (excluding the header).  For write, it's the length of
  -    // the packet as a whole (counting the header).  Oh, well.
   
       /**
        * Create a new packet with an internal buffer of given size.
  +     * @param size packet size
        */
       public Ajp13Packet( int size ) {
           buff = new byte[size];
       }
   
  +    /**
  +     * Create a new packet with given bytes
  +     * @param b this packet's bytes.
  +     */
       public Ajp13Packet( byte b[] ) {
           buff = b;
       }
   
  +    /**
  +     * Set the encoding to use for byte[] <-> string
  +     * conversions.
  +     * @param encoding the encoding to use.
  +     */
  +    public void setEncoding(String encoding) {
  +        this.encoding = encoding;
  +    }
  +
  +    /**
  +     * Get the encoding used for byte[] <-> string
  +     * conversions.
  +     * @return the encoding used.
  +     */
  +    public String getEncoding() {
  +        return encoding;
  +    }
  +
  +    /**
  +     * Get the internal buffer
  +     * @return internal buffer
  +     */
       public byte[] getBuff() {
           return buff;
       }
  -     
  +
  +    /**
  +     * Get length.
  +     * @return length -- This actually means different things depending on whether 
the
  +     *                   packet is read or write.  For read, it's the length of the
  +     *                   payload (excluding the header).  For write, it's the 
length of
  +     *                   the packet as a whole (counting the header).  Oh, well.
  +     */
       public int getLen() {
           return len;
       }
  -     
  +
  +    /**
  +     * Get offset into internal buffer.
  +     * @return offset
  +     */
       public int getByteOff() {
           return pos;
       }
   
  +    /**
  +     * Set offset into internal buffer.
  +     * @param c new offset
  +     */
       public void setByteOff(int c) {
           pos=c;
       }
  @@ -190,7 +246,7 @@
        * code, where it saves a round of copying.  A null string is
        * encoded as a string with length 0.  
        */
  -    public void appendString( String str ) {
  +    public void appendString(String str) throws UnsupportedEncodingException {
           // Dual use of the buffer - as Ajp13Packet and as OutputBuffer
           // The idea is simple - fewer buffers, smaller footprint and less
           // memcpy. The code is a bit tricky, but only local to this
  @@ -206,7 +262,7 @@
           // XXX i don't have OutputBuffer in tc4... ks.
           // fix this later...
           //
  -        byte[] bytes = str.getBytes();
  +        byte[] bytes = str.getBytes(encoding);
           appendBytes(bytes, 0, bytes.length);
           
           /*
  @@ -328,7 +384,7 @@
               //           System.out.println("null string " + length);
               return null;
           }
  -        String s = new String( buff, pos, length, DEFAULT_CHAR_ENCODING );
  +        String s = new String(buff, pos, length, encoding);
   
           pos += length;
           pos++; // Skip the terminating \0
  
  
  

Reply via email to