source: main/trunk/greenstone2/common-src/indexers/mgpp/text/FragLevelConvert.h@ 25147

Last change on this file since 25147 was 25147, checked in by kjdon, 12 years ago

merged 64_bit_Greenstone branch into trunk, rev 25139

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 KB
Line 
1/**************************************************************************
2 *
3 * FragLevelConvert.h -- converting between fragment and document numbers
4 * Copyright (C) 1999 Rodger McNab
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 **************************************************************************/
21
22#ifndef FRAGLEVELCONVERT_H
23#define FRAGLEVELCONVERT_H
24
25#include "mglong.h"
26#include <stdio.h>
27#include "UCArray.h"
28
29/*Notes about levelStarts (kjm18) - this is my interpretation of
30whats going on, feel free to correct this if its wrong.
31
32say you have 5 docs, consisting of fragments:
331: 1-55
342: 56-83
353: 84-106
364: 107-152
375: 153-211
38
39then levelStarts would have the values
400 1 2 3 4 5
410 55 83 106 152 211
42
43*/
44class FragLevelConvert {
45protected:
46 // note fragment start is one before before real start
47 vector<mg_u_long> levelStarts;
48 mg_u_long numFrags;
49 mg_u_long numLevelDocs;
50
51public:
52 FragLevelConvert ();
53
54 bool Read (FILE *invfFile, mg_u_long levelPtr,
55 mg_u_long _numFrags, mg_u_long _numLevelDocs);
56
57 bool FragToLevel (mg_u_long fragNum, mg_u_long &levelDocNum) const;
58
59 // this function converts from one level number to another
60 // the FragLevelConvert thats calling the method should be loaded with
61 // the level that you want to convert to, while the sectionLevelConvert
62 // should be loaded with the level converting from.
63 // level Num has the old level, DocNum will be returned with the new
64 // coresponding level
65 bool LevelToLevel (FragLevelConvert sectionLevelConvert,
66 mg_u_long levelNum, mg_u_long &DocNum);
67};
68
69
70#endif
Note: See TracBrowser for help on using the repository browser.