~grubng-dev/grubng/tools-urlsdb

« back to all changes in this revision

Viewing changes to 7Zip/ICoder.cs

  • Committer: thindil
  • Date: 2010-04-04 08:50:16 UTC
  • Revision ID: thindil2@gmail.com-20100404085016-d72lzc6fpxchwymn
added doxygen configuration file

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// ICoder.cs
2
 
//  
3
 
//  Copyright (C) 2009 Bartek Jasicki based on LZMA SDK
4
 
// 
5
 
//  This file is part of Grubng
6
 
// 
7
 
//  Grubng is free software: you can redistribute it and/or modify
8
 
//  it under the terms of the GNU General Public License as published by
9
 
//  the Free Software Foundation, either version 3 of the License, or
10
 
//  (at your option) any later version.
11
 
// 
12
 
//  This program is distributed in the hope that it will be useful,
13
 
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
//  GNU General Public License for more details.
16
 
// 
17
 
//  You should have received a copy of the GNU General Public License
18
 
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
// 
20
 
 
21
 
using System;
22
 
 
23
 
namespace Grubng
24
 
{
25
 
        public interface ICoder
26
 
        {
27
 
                /// <summary>
28
 
                /// Codes streams.
29
 
                /// </summary>
30
 
                /// <param name="inStream">
31
 
                /// input Stream.
32
 
                /// </param>
33
 
                /// <param name="outStream">
34
 
                /// output Stream.
35
 
                /// </param>
36
 
                /// <exception cref="SevenZip.DataErrorException">
37
 
                /// if input stream is not valid
38
 
                /// </exception>
39
 
                void Code(System.IO.Stream inStream, System.IO.Stream outStream);
40
 
        };
41
 
 
42
 
        /// <summary>
43
 
        /// Provides the fields that represent properties idenitifiers for compressing.
44
 
        /// </summary>
45
 
        [Serializable]
46
 
        public enum CoderPropID
47
 
        {
48
 
                /// <summary>
49
 
                /// Specifies size of dictionary.
50
 
                /// </summary>
51
 
                DictionarySize = 0x400,
52
 
                /// <summary>
53
 
                /// Specifies size of memory for PPM*.
54
 
                /// </summary>
55
 
                UsedMemorySize,
56
 
                /// <summary>
57
 
                /// Specifies order for PPM methods.
58
 
                /// </summary>
59
 
                Order,
60
 
                /// <summary>
61
 
                /// Specifies number of postion state bits for LZMA (0 <= x <= 4).
62
 
                /// </summary>
63
 
                PosStateBits = 0x440,
64
 
                /// <summary>
65
 
                /// Specifies number of literal context bits for LZMA (0 <= x <= 8).
66
 
                /// </summary>
67
 
                LitContextBits,
68
 
                /// <summary>
69
 
                /// Specifies number of literal position bits for LZMA (0 <= x <= 4).
70
 
                /// </summary>
71
 
                LitPosBits,
72
 
                /// <summary>
73
 
                /// Specifies number of fast bytes for LZ*.
74
 
                /// </summary>
75
 
                NumFastBytes = 0x450,
76
 
                /// <summary>
77
 
                /// Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
78
 
                /// </summary>
79
 
                MatchFinder,
80
 
                /// <summary>
81
 
                /// Specifies number of passes.
82
 
                /// </summary>
83
 
                NumPasses = 0x460,
84
 
                /// <summary>
85
 
                /// Specifies number of algorithm.
86
 
                /// </summary>
87
 
                Algorithm = 0x470,
88
 
                /// <summary>
89
 
                /// Specifies multithread mode.
90
 
                /// </summary>
91
 
                MultiThread = 0x480,
92
 
                /// <summary>
93
 
                /// Specifies mode with end marker.
94
 
                /// </summary>
95
 
                EndMarker = 0x490
96
 
        };
97
 
 
98
 
 
99
 
        public interface ISetCoderProperties
100
 
        {
101
 
                void SetCoderProperties(CoderPropID[] propIDs, object[] properties);
102
 
        };
103
 
 
104
 
        public interface IWriteCoderProperties
105
 
        {
106
 
                void WriteCoderProperties(System.IO.Stream outStream);
107
 
        }
108
 
}