package com.mucommander.commons.file.archive.sevenzip.provider.SevenZip.Archive.Common;
import com.mucommander.commons.file.archive.sevenzip.provider.Common.LongVector;
import com.mucommander.commons.file.archive.sevenzip.provider.SevenZip.ICompressCoder;
import com.mucommander.commons.file.archive.sevenzip.provider.SevenZip.ICompressCoder2;
public class CoderInfo {
ICompressCoder Coder;
ICompressCoder2 Coder2;
int NumInStreams;
int NumOutStreams;
LongVector InSizes = new LongVector();
LongVector OutSizes = new LongVector();
LongVector InSizePointers = new LongVector();
LongVector OutSizePointers = new LongVector();
public CoderInfo(int numInStreams, int numOutStreams) {
NumInStreams = numInStreams;
NumOutStreams = numOutStreams;
InSizes.Reserve(NumInStreams);
InSizePointers.Reserve(NumInStreams);
OutSizePointers.Reserve(NumOutStreams);
OutSizePointers.Reserve(NumOutStreams);
}
static public void SetSizes(
LongVector srcSizes,
LongVector sizes,
LongVector sizePointers,
int numItems)
{
sizes.clear();
sizePointers.clear();
for(int i = 0; i < numItems; i++) {
if (srcSizes == null || srcSizes.get(i) == -1) // TBD null => -1
{
sizes.add(new Long(0));
sizePointers.add(-1);
} else {
sizes.add(srcSizes.get(i)); // sizes.Add(*srcSizes[i]);
sizePointers.add(sizes.Back()); // sizePointers.Add(&sizes.Back());
}
}
}
public void SetCoderInfo(
LongVector inSizes, // const UInt64 **inSizes,
LongVector outSizes) //const UInt64 **outSizes)
{
SetSizes(inSizes, InSizes, InSizePointers, NumInStreams);
SetSizes(outSizes, OutSizes, OutSizePointers, NumOutStreams);
}
}