summaryrefslogtreecommitdiffstats
path: root/fitsy++/mapincr.h
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2020-03-21 20:29:02 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2020-03-21 20:29:02 (GMT)
commita004d413772c16e43004929efb3df2f36c53314c (patch)
treef635a49cb52ebff944062e7dd6d8833c14a0b40b /fitsy++/mapincr.h
parentc8abfb35e0303f03f75d9fe74dac893b1767924c (diff)
downloadblt-a004d413772c16e43004929efb3df2f36c53314c.zip
blt-a004d413772c16e43004929efb3df2f36c53314c.tar.gz
blt-a004d413772c16e43004929efb3df2f36c53314c.tar.bz2
libfitsy++
Diffstat (limited to 'fitsy++/mapincr.h')
-rw-r--r--fitsy++/mapincr.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/fitsy++/mapincr.h b/fitsy++/mapincr.h
new file mode 100644
index 0000000..fcdea15
--- /dev/null
+++ b/fitsy++/mapincr.h
@@ -0,0 +1,67 @@
+// Copyright (C) 1999-2018
+// 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
+