123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- // ICoder.h
- using System;
- namespace SevenZip
- {
- /// <summary>
- /// The exception that is thrown when an error in input stream occurs during decoding.
- /// </summary>
- class DataErrorException : ApplicationException
- {
- public DataErrorException(): base("Data Error") { }
- }
- /// <summary>
- /// The exception that is thrown when the value of an argument is outside the allowable range.
- /// </summary>
- class InvalidParamException : ApplicationException
- {
- public InvalidParamException(): base("Invalid Parameter") { }
- }
- public interface ICodeProgress
- {
- /// <summary>
- /// Callback progress.
- /// </summary>
- /// <param name="inSize">
- /// input size. -1 if unknown.
- /// </param>
- /// <param name="outSize">
- /// output size. -1 if unknown.
- /// </param>
- void SetProgress(Int64 inSize, Int64 outSize);
- };
- public interface ICoder
- {
- /// <summary>
- /// Codes streams.
- /// </summary>
- /// <param name="inStream">
- /// input Stream.
- /// </param>
- /// <param name="outStream">
- /// output Stream.
- /// </param>
- /// <param name="inSize">
- /// input Size. -1 if unknown.
- /// </param>
- /// <param name="outSize">
- /// output Size. -1 if unknown.
- /// </param>
- /// <param name="progress">
- /// callback progress reference.
- /// </param>
- /// <exception cref="SevenZip.DataErrorException">
- /// if input stream is not valid
- /// </exception>
- void Code(System.IO.Stream inStream, System.IO.Stream outStream,
- Int64 inSize, Int64 outSize, ICodeProgress progress);
- };
- /*
- public interface ICoder2
- {
- void Code(ISequentialInStream []inStreams,
- const UInt64 []inSizes,
- ISequentialOutStream []outStreams,
- UInt64 []outSizes,
- ICodeProgress progress);
- };
- */
- /// <summary>
- /// Provides the fields that represent properties idenitifiers for compressing.
- /// </summary>
- public enum CoderPropID
- {
- /// <summary>
- /// Specifies size of dictionary.
- /// </summary>
- DictionarySize = 0x400,
- /// <summary>
- /// Specifies size of memory for PPM*.
- /// </summary>
- UsedMemorySize,
- /// <summary>
- /// Specifies order for PPM methods.
- /// </summary>
- Order,
- /// <summary>
- /// Specifies number of postion state bits for LZMA (0 <= x <= 4).
- /// </summary>
- PosStateBits = 0x440,
- /// <summary>
- /// Specifies number of literal context bits for LZMA (0 <= x <= 8).
- /// </summary>
- LitContextBits,
- /// <summary>
- /// Specifies number of literal position bits for LZMA (0 <= x <= 4).
- /// </summary>
- LitPosBits,
- /// <summary>
- /// Specifies number of fast bytes for LZ*.
- /// </summary>
- NumFastBytes = 0x450,
- /// <summary>
- /// Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
- /// </summary>
- MatchFinder,
- /// <summary>
- /// Specifies number of passes.
- /// </summary>
- NumPasses = 0x460,
- /// <summary>
- /// Specifies number of algorithm.
- /// </summary>
- Algorithm = 0x470,
- /// <summary>
- /// Specifies multithread mode.
- /// </summary>
- MultiThread = 0x480,
- /// <summary>
- /// Specifies mode with end marker.
- /// </summary>
- EndMarker = 0x490
- };
- public interface ISetCoderProperties
- {
- void SetCoderProperties(CoderPropID[] propIDs, object[] properties);
- };
- public interface IWriteCoderProperties
- {
- void WriteCoderProperties(System.IO.Stream outStream);
- }
- public interface ISetDecoderProperties
- {
- void SetDecoderProperties(byte[] properties);
- }
- }
|