GzipHeader.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __GZIPHEADER_H__
00019 #define __GZIPHEADER_H__
00020
00021 #include <stdint.h>
00022 #include <stdio.h>
00023
00024
00025 class GzipHeader
00026 {
00027 public:
00028 GzipHeader();
00029 ~GzipHeader();
00030
00031
00032
00033 bool readHeader(FILE* filePtr);
00034
00035
00036 bool isGzipFile();
00037
00038
00039 bool isBgzfFile();
00040
00041 private:
00042
00043 static const unsigned int GZIP_HEADER_SIZE = 18;
00044
00045 union
00046 {
00047 struct
00048 {
00049 uint8_t id1;
00050 uint8_t id2;
00051 uint8_t cm;
00052 uint8_t flg;
00053 uint32_t mtime;
00054 uint8_t xfl;
00055 uint8_t os;
00056 uint16_t xlen;
00057 uint8_t si1;
00058 uint8_t si2;
00059 uint16_t slen;
00060 uint16_t bsize;
00061 };
00062 char headerBuffer[GZIP_HEADER_SIZE];
00063 };
00064 char buffer[GZIP_HEADER_SIZE];
00065
00066 };
00067
00068
00069 #endif