diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 18:59:29 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 18:59:29 (GMT) |
commit | d4d595fa7fb12903db9227d33d48b2b00120dbd1 (patch) | |
tree | 7d18365de0d6d1b29399b6a17c7eb01c2eb3ed49 /tksao/fitsy++/mapincr.h | |
parent | 949f96e29bfe0bd8710d775ce220e597064e2589 (diff) | |
download | blt-d4d595fa7fb12903db9227d33d48b2b00120dbd1.zip blt-d4d595fa7fb12903db9227d33d48b2b00120dbd1.tar.gz blt-d4d595fa7fb12903db9227d33d48b2b00120dbd1.tar.bz2 |
Initial commit
Diffstat (limited to 'tksao/fitsy++/mapincr.h')
-rw-r--r-- | tksao/fitsy++/mapincr.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tksao/fitsy++/mapincr.h b/tksao/fitsy++/mapincr.h new file mode 100644 index 0000000..60eec22 --- /dev/null +++ b/tksao/fitsy++/mapincr.h @@ -0,0 +1,67 @@ +// Copyright (C) 1999-2016 +// Smithsonian Astrophysical Observatory, Cambridge, MA, USA +// For conditions of distribution and use, see copyright notice in "copyright" + +#ifndef __fitsmapincr_h__ +#define __fitsmapincr_h__ + +#include "file.h" + +class FitsMapIncr : public FitsFile { +protected: + char* mapdata_; // mmap segment ptr + size_t mapsize_; // mmap segment size + int page_; // flag to indicate paging mode + + size_t filesize_; // size of the total segment + size_t seek_; // offset into segment + size_t dseek_; // offset to data segment + size_t nseek_; // offset into next page data segment + + FitsHead* headRead(); + void dataSkip(size_t); + void dataSkipBlock(size_t); + void found(); + void error(); + +public: + FitsMapIncr(); + virtual ~FitsMapIncr(); + + char* page(char*, size_t); + void resetpage(); + size_t filesize() {return filesize_;} + size_t seek() {return seek_;} +}; + +class FitsFitsMapIncr : public virtual FitsMapIncr { +protected: + void processExact(); + void processRelax(); + +public: + FitsFitsMapIncr(ScanMode); +}; + +class FitsFitsNextMapIncr : public FitsMapIncr { +public: + FitsFitsNextMapIncr(FitsFile* prev); +}; + +class FitsArrMapIncr : public virtual FitsMapIncr { +public: + FitsArrMapIncr(); +}; + +class FitsMosaicMapIncr : public virtual FitsMapIncr { +public: + FitsMosaicMapIncr(); +}; + +class FitsMosaicNextMapIncr : public FitsMapIncr { +public: + FitsMosaicNextMapIncr(FitsFile* prev); +}; + +#endif + |