BCM WL 6.30.102.9 (r366174)
[tomato.git] / release / src-rt / linux / linux-2.6 / scripts / squashfs / lzma / CS / 7zip / ICoder.cs
blob177e2a4b75a81d5d358ec7d5bdfc0a22f6a32056
1 // ICoder.h
3 using System;
5 namespace SevenZip
7 /// <summary>
8 /// The exception that is thrown when an error in input stream occurs during decoding.
9 /// </summary>
10 class DataErrorException : ApplicationException
12 public DataErrorException(): base("Data Error") { }
15 /// <summary>
16 /// The exception that is thrown when the value of an argument is outside the allowable range.
17 /// </summary>
18 class InvalidParamException : ApplicationException
20 public InvalidParamException(): base("Invalid Parameter") { }
23 public interface ICodeProgress
25 /// <summary>
26 /// Callback progress.
27 /// </summary>
28 /// <param name="inSize">
29 /// input size. -1 if unknown.
30 /// </param>
31 /// <param name="outSize">
32 /// output size. -1 if unknown.
33 /// </param>
34 void SetProgress(Int64 inSize, Int64 outSize);
37 public interface ICoder
39 /// <summary>
40 /// Codes streams.
41 /// </summary>
42 /// <param name="inStream">
43 /// input Stream.
44 /// </param>
45 /// <param name="outStream">
46 /// output Stream.
47 /// </param>
48 /// <param name="inSize">
49 /// input Size. -1 if unknown.
50 /// </param>
51 /// <param name="outSize">
52 /// output Size. -1 if unknown.
53 /// </param>
54 /// <param name="progress">
55 /// callback progress reference.
56 /// </param>
57 /// <exception cref="SevenZip.DataErrorException">
58 /// if input stream is not valid
59 /// </exception>
60 void Code(System.IO.Stream inStream, System.IO.Stream outStream,
61 Int64 inSize, Int64 outSize, ICodeProgress progress);
65 public interface ICoder2
67 void Code(ISequentialInStream []inStreams,
68 const UInt64 []inSizes,
69 ISequentialOutStream []outStreams,
70 UInt64 []outSizes,
71 ICodeProgress progress);
75 /// <summary>
76 /// Provides the fields that represent properties idenitifiers for compressing.
77 /// </summary>
78 public enum CoderPropID
80 /// <summary>
81 /// Specifies size of dictionary.
82 /// </summary>
83 DictionarySize = 0x400,
84 /// <summary>
85 /// Specifies size of memory for PPM*.
86 /// </summary>
87 UsedMemorySize,
88 /// <summary>
89 /// Specifies order for PPM methods.
90 /// </summary>
91 Order,
92 /// <summary>
93 /// Specifies number of postion state bits for LZMA (0 <= x <= 4).
94 /// </summary>
95 PosStateBits = 0x440,
96 /// <summary>
97 /// Specifies number of literal context bits for LZMA (0 <= x <= 8).
98 /// </summary>
99 LitContextBits,
100 /// <summary>
101 /// Specifies number of literal position bits for LZMA (0 <= x <= 4).
102 /// </summary>
103 LitPosBits,
104 /// <summary>
105 /// Specifies number of fast bytes for LZ*.
106 /// </summary>
107 NumFastBytes = 0x450,
108 /// <summary>
109 /// Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
110 /// </summary>
111 MatchFinder,
112 /// <summary>
113 /// Specifies number of passes.
114 /// </summary>
115 NumPasses = 0x460,
116 /// <summary>
117 /// Specifies number of algorithm.
118 /// </summary>
119 Algorithm = 0x470,
120 /// <summary>
121 /// Specifies multithread mode.
122 /// </summary>
123 MultiThread = 0x480,
124 /// <summary>
125 /// Specifies mode with end marker.
126 /// </summary>
127 EndMarker = 0x490
131 public interface ISetCoderProperties
133 void SetCoderProperties(CoderPropID[] propIDs, object[] properties);
136 public interface IWriteCoderProperties
138 void WriteCoderProperties(System.IO.Stream outStream);
141 public interface ISetDecoderProperties
143 void SetDecoderProperties(byte[] properties);