]> git.sesse.net Git - freerainbowtables/blob - Common/rt api/RTI2Reader.h
merged paths
[freerainbowtables] / Common / rt api / RTI2Reader.h
1 #ifndef __RTI2READER_H__
2 #define __RTI2READER_H__
3
4 #include "Public.h"
5 #include <string>
6 #ifdef WIN32
7 #include <io.h>
8 #endif
9 #include <vector>
10 #include "BaseRTReader.h"
11 using namespace std;
12
13 typedef struct 
14 {
15         char header[4];
16         unsigned char rti_startptlength, rti_endptlength, rti_cplength, rti_index_numchainslength;
17         uint64 prefixstart;
18         unsigned int *m_cppos;
19 } RTI2Header;
20
21 class RTI2Reader : BaseRTReader
22 {
23 private:
24         FILE *m_pFile;
25         unsigned int m_chainPosition;
26         unsigned char *m_pPos, *m_pChainPos;
27         static RTI2Header *m_pHeader;
28         unsigned char *m_pIndex;
29         unsigned int m_chainsizebytes;
30         unsigned int m_indexrowsizebytes;
31         
32
33 public:
34         RTI2Reader(string Filename);
35         ~RTI2Reader(void);
36         int ReadChains(UINT4 &numChains, RainbowChain *pData);
37         unsigned int GetChainsLeft();
38         static RTI2Header *GetHeader() { return m_pHeader; }
39 };
40
41
42 #endif