source: trunk/gsdl/src/mgpp/text/FragLevelConvert.h@ 927

Last change on this file since 927 was 927, checked in by kjm18, 24 years ago

added feature to retrieve doc nums at a different level than the level
queried at. eg query at Document level, but retrieve section level docnums
bug in mg_perf_hash_build.cpp fixed

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 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 * $Id: FragLevelConvert.h 927 2000-02-15 22:45:22Z kjm18 $
21 *
22 **************************************************************************/
23
24#ifndef FRAGLEVELCONVERT_H
25#define FRAGLEVELCONVERT_H
26
27#include <stdio.h>
28#include "UCArray.h"
29
30
31/*Notes about levelStarts (kjm18) - this is my interpretation of
32whats going on, feel free to correct this if its wrong.
33
34say you have 5 docs, consisting of fragments:
351: 1-55
362: 56-83
373: 84-106
384: 107-152
395: 153-211
40
41then levelStarts would have the values
420 1 2 3 4 5
43? 55 83 106 152 211
44I dont know whats in position 0.
45
46*/
47class FragLevelConvert {
48protected:
49 // note fragment start is one before before real start
50 vector<unsigned long> levelStarts;
51 unsigned long numFrags;
52 unsigned long numLevelDocs;
53
54public:
55 FragLevelConvert ();
56
57 bool Read (FILE *invfFile, unsigned long levelPtr,
58 unsigned long _numFrags, unsigned long _numLevelDocs);
59
60 bool FragToLevel (unsigned long fragNum, unsigned long &levelDocNum) const;
61
62 // this function converts from one level number to another
63 // the FragLevelConvert thats calling the method should be loaded with
64 // the level that you want to convert to, while the sectionLevelConvert
65 // should be loaded with the level converting from.
66 // level Num has the old level, DocNum will be returned with the new
67 // coresponding level
68 bool LevelToLevel (FragLevelConvert sectionLevelConvert,
69 unsigned long levelNum, unsigned long &DocNum);
70};
71
72
73#endif
Note: See TracBrowser for help on using the repository browser.