SplitMergePairFileReader.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2004 CSIRO ICT Centre
00003  *
00004  * $Id: SplitMergePairFileReader.h 587 2004-12-03 15:06:33Z nch $
00005  */
00006 
00007 /*
00008  * Reads objects from a collection of files, the same
00009  * as a SplitFileReader, except allows for overlaps in
00010  * declination order between adjacent files. Note only
00011  * between adjacent files.
00012  *
00013  * Specifically written to support the 2MASS collection
00014  * of files.
00015  */
00016 
00017 #ifndef SPLITMERGEPAIRFILEREADER_DEFINED
00018 #define SPLITMERGEPAIRFILEREADER_DEFINED
00019 
00020 #include <stdio.h>
00021 #include "String.h"
00022 #include <vector>
00023 
00024 #include "FileHeader.h"
00025 #include "SplitFileReader.h"
00026 
00027 class Object;
00028 class FileObjectReader;
00029 
00030 
00031 class SplitMergePairFileReader : public SplitFileReader
00032 {
00033   public:
00034     SplitMergePairFileReader(FileObjectReader * obj,
00035                              std::vector<String> const & fileNames,
00036                              bool areLargeFiles=false);
00037     virtual ~SplitMergePairFileReader();
00038     virtual void open();
00039     virtual void reopen();
00040     virtual Object * read();
00041 
00042   protected:
00043     FILE *       m_next_fp;
00044     Object *     m_current;
00045     Object *     m_next;
00046     char const * m_nextFileName;
00047 
00048   private:
00049     SplitMergePairFileReader();
00050     SplitMergePairFileReader(SplitMergePairFileReader const &);
00051     SplitMergePairFileReader & operator=(SplitMergePairFileReader const &);
00052 
00053     void readyNext();
00054     void clear();
00055 };
00056 
00057 #endif // ifndef SPLITMERGEPAIRFILEREADER_DEFINED
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3