/**
   * Un-marshal an object instance from the data input stream
   *
   * @param o the object to un-marshal
   * @param dataIn the data input stream to build the object from
   * @throws IOException
   */
  public void tightUnmarshal(
      OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
    super.tightUnmarshal(wireFormat, o, dataIn, bs);

    ProducerId info = (ProducerId) o;
    info.setConnectionId(tightUnmarshalString(dataIn, bs));
    info.setValue(tightUnmarshalLong(wireFormat, dataIn, bs));
    info.setSessionId(tightUnmarshalLong(wireFormat, dataIn, bs));
  }
  /**
   * Un-marshal an object instance from the data input stream
   *
   * @param o the object to un-marshal
   * @param dataIn the data input stream to build the object from
   * @throws IOException
   */
  public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn)
      throws IOException {
    super.looseUnmarshal(wireFormat, o, dataIn);

    ProducerId info = (ProducerId) o;
    info.setConnectionId(looseUnmarshalString(dataIn));
    info.setValue(looseUnmarshalLong(wireFormat, dataIn));
    info.setSessionId(looseUnmarshalLong(wireFormat, dataIn));
  }