@ Override public void readFrom ( DataInput in ) throws IOException , ClassNotFoundException { // 1. read the leading byte first byte leading = in . readByte ( ) ; // 2. the flags flags = in . readShort ( ) ; // 3. dest_addr if ( Util . isFlagSet ( leading , DEST_SET ) ) dest = Util . readAddress ( in ) ; // 4. src_addr if ( Util . isFlagSet ( leading , SRC_SET ) ) sender = Util . readAddress ( in ) ; // 5. headers int len = in . readShort ( ) ; this . headers = createHeaders ( len ) ; for ( int i = 0 ; i < len ; i ++ ) { short id = in . readShort ( ) ; Header hdr = readHeader ( in ) . setProtId ( id ) ; this . headers [ i ] = hdr ; } // 6. buf if ( Util . isFlagSet ( leading , BUF_SET ) ) { len = in . readInt ( ) ; buf = new byte [ len ] ; in . readFully ( buf , 0 , len ) ; length = len ; } }
Reads the message s contents from an input stream