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

Last change on this file since 2468 was 2468, checked in by sjboddie, 23 years ago

Fiddled about with mgpp to get it compiling on Windows under VC++ 6.0. I
still can't get it to compile under VC++ 4.2 because of some weird
behaviour in STLport.

Also tidied up a little and removed some of the old log information
that was scattered about in some of the files.

  • 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 <stdio.h>
26#include "UCArray.h"
27
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
41? 55 83 106 152 211
42I dont know whats in position 0.
43
44*/
45class FragLevelConvert {
46protected:
47 // note fragment start is one before before real start
48 vector<unsigned long> levelStarts;
49 unsigned long numFrags;
50 unsigned long numLevelDocs;
51
52public:
53 FragLevelConvert ();
54
55 bool Read (FILE *invfFile, unsigned long levelPtr,
56 unsigned long _numFrags, unsigned long _numLevelDocs);
57
58 bool FragToLevel (unsigned long fragNum, unsigned long &levelDocNum) const;
59
60 // this function converts from one level number to another
61 // the FragLevelConvert thats calling the method should be loaded with
62 // the level that you want to convert to, while the sectionLevelConvert
63 // should be loaded with the level converting from.
64 // level Num has the old level, DocNum will be returned with the new
65 // coresponding level
66 bool LevelToLevel (FragLevelConvert sectionLevelConvert,
67 unsigned long levelNum, unsigned long &DocNum);
68};
69
70
71#endif
Note: See TracBrowser for help on using the repository browser.