ResLog.java 6.57 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.scene7.is.ipp.messages;

import com.scene7.is.ipp.messages.InMessage;
import com.scene7.is.ipp.messages.Ipp;
import com.scene7.is.ipp.messages.IppBool;
import com.scene7.is.ipp.messages.IppByteArray;
import com.scene7.is.ipp.messages.IppDate;
import com.scene7.is.ipp.messages.IppInt;
import com.scene7.is.ipp.messages.IppInt64;
import com.scene7.is.ipp.messages.IppLongString;
import com.scene7.is.ipp.messages.Offset;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class ResLog
extends InMessage {
    static int MessageNumber = 2097922;
    private long fromDate_;
    private byte[] fromMarker_;
    private long toDate_;
    private byte[] toMarker_;
    private byte[] binaryData_;
    private String stringData_;
    private int uncompressedLength_;
    private boolean compressed_;
    private boolean isComplete_;

    public ResLog(int tag, long fromDate, byte[] fromMarker, long toDate, byte[] toMarker, byte[] binaryData, String stringData, int uncompressedLength, boolean compressed, boolean isComplete, int headClientId) {
        this.tag_ = tag;
        this.headerClientId_ = headClientId;
        this.fromDate_ = fromDate;
        this.fromMarker_ = fromMarker;
        this.toDate_ = toDate;
        this.toMarker_ = toMarker;
        this.binaryData_ = binaryData;
        this.stringData_ = stringData;
        this.uncompressedLength_ = uncompressedLength;
        this.compressed_ = compressed;
        this.isComplete_ = isComplete;
        int fixedLength = 56;
        Offset varPos = new Offset(fixedLength);
        varPos.val += fromMarker.length;
        varPos.val += toMarker.length;
        varPos.val += binaryData.length;
        try {
            varPos.val += stringData.getBytes("UTF-8").length + 1;
        }
        catch (UnsupportedEncodingException e) {
            throw new AssertionError(e);
        }
        this.messageLength_ = varPos.val;
        varPos.val = fixedLength;
        Offset pos = new Offset(0);
        this.headBuffer_ = new byte[32];
        this.bodyBuffer_ = new byte[this.messageLength_];
        Ipp.StuffHeader(this.headBuffer_, this.headerClientId_, tag, MessageNumber, this.messageLength_);
        IppInt64.Stuff(this.bodyBuffer_, pos, null, this.fromDate_);
        IppByteArray.Stuff(this.bodyBuffer_, pos, varPos, this.fromMarker_);
        IppInt64.Stuff(this.bodyBuffer_, pos, null, this.toDate_);
        IppByteArray.Stuff(this.bodyBuffer_, pos, varPos, this.toMarker_);
        IppByteArray.Stuff(this.bodyBuffer_, pos, varPos, this.binaryData_);
        IppLongString.Stuff(this.bodyBuffer_, pos, varPos, this.stringData_);
        IppInt.Stuff(this.bodyBuffer_, pos, null, this.uncompressedLength_);
        IppBool.Stuff(this.bodyBuffer_, pos, null, this.compressed_);
        IppBool.Stuff(this.bodyBuffer_, pos, null, this.isComplete_);
        Ipp.Assert(pos.val == fixedLength, "IppWatermarkType length");
    }

    public ResLog() {
    }

    public void process(int headClientId, int tg, byte[] bf) {
        this.headerClientId_ = headClientId;
        this.tag_ = tg;
        this.messageLength_ = bf.length;
        this.headBuffer_ = new byte[32];
        Ipp.StuffHeader(this.headBuffer_, this.headerClientId_, this.tag_, MessageNumber, this.messageLength_);
        this.bodyBuffer_ = bf;
        Offset pos = new Offset(0);
        this.fromDate_ = IppInt64.Unstuff(this.bodyBuffer_, pos);
        this.fromMarker_ = IppByteArray.Unstuff(this.bodyBuffer_, pos);
        this.toDate_ = IppInt64.Unstuff(this.bodyBuffer_, pos);
        this.toMarker_ = IppByteArray.Unstuff(this.bodyBuffer_, pos);
        this.binaryData_ = IppByteArray.Unstuff(this.bodyBuffer_, pos);
        this.stringData_ = IppLongString.Unstuff(this.bodyBuffer_, pos);
        this.uncompressedLength_ = IppInt.Unstuff(this.bodyBuffer_, pos);
        this.compressed_ = IppBool.Unstuff(this.bodyBuffer_, pos);
        this.isComplete_ = IppBool.Unstuff(this.bodyBuffer_, pos);
    }

    public int classification() {
        return 1;
    }

    public int id() {
        return MessageNumber;
    }

    public void print(Writer tf, String heading) throws IOException {
        tf.write("\n");
        tf.write(heading);
        tf.write(": ResLog ");
        Ipp.PrintHex(tf, MessageNumber);
        tf.write("\n");
        tf.write("headClientId: " + this.headerClientId() + "\n");
        Ipp.PrintTag(tf, "tag: ", this.tag());
        tf.write("length: " + this.length());
        tf.write("\n");
        IppDate.Print(tf, "fromDate: ", this.fromDate_);
        IppByteArray.Print(tf, "fromMarker: ", this.fromMarker_);
        IppDate.Print(tf, "toDate: ", this.toDate_);
        IppByteArray.Print(tf, "toMarker: ", this.toMarker_);
        IppByteArray.Print(tf, "binaryData: ", this.binaryData_);
        IppLongString.Print(tf, "stringData: ", this.stringData_);
        IppInt.Print(tf, "uncompressedLength: ", this.uncompressedLength_);
        IppBool.Print(tf, "compressed: ", this.compressed_);
        IppBool.Print(tf, "isComplete: ", this.isComplete_);
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("ResLog                        ");
        buffer.append("[fromDate: " + String.valueOf(this.fromDate_) + "],");
        buffer.append("[fromMarker: " + String.valueOf(this.fromMarker_) + "],");
        buffer.append("[toDate: " + String.valueOf(this.toDate_) + "],");
        buffer.append("[toMarker: " + String.valueOf(this.toMarker_) + "],");
        buffer.append("[binaryData: " + String.valueOf(this.binaryData_) + "],");
        buffer.append("[stringData: " + String.valueOf(this.stringData_) + "],");
        buffer.append("[uncompressedLength: " + String.valueOf(this.uncompressedLength_) + "],");
        buffer.append("[compressed: " + String.valueOf(this.compressed_) + "],");
        buffer.append("[isComplete: " + String.valueOf(this.isComplete_) + "],");
        return buffer.toString();
    }

    public long fromDate() {
        return this.fromDate_;
    }

    public byte[] fromMarker() {
        return this.fromMarker_;
    }

    public long toDate() {
        return this.toDate_;
    }

    public byte[] toMarker() {
        return this.toMarker_;
    }

    public byte[] binaryData() {
        return this.binaryData_;
    }

    public String stringData() {
        return this.stringData_;
    }

    public int uncompressedLength() {
        return this.uncompressedLength_;
    }

    public boolean compressed() {
        return this.compressed_;
    }

    public boolean isComplete() {
        return this.isComplete_;
    }
}