00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libe-book project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 */ 00009 00010 #ifndef MOBIPARSER_H_INCLUDED 00011 #define MOBIPARSER_H_INCLUDED 00012 00013 #include "PDXParser.h" 00014 00015 namespace libebook 00016 { 00017 00018 class MOBIParser : public PDXParser 00019 { 00020 // disable copying 00021 MOBIParser(const MOBIParser &other); 00022 MOBIParser &operator=(const MOBIParser &other); 00023 00024 public: 00025 explicit MOBIParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document = 0); 00026 virtual ~MOBIParser(); 00027 00028 static bool checkType(unsigned type, unsigned creator); 00029 00030 private: 00031 virtual void readAppInfoRecord(librevenge::RVNGInputStream *record); 00032 virtual void readSortInfoRecord(librevenge::RVNGInputStream *record); 00033 virtual void readIndexRecord(librevenge::RVNGInputStream *record); 00034 virtual void readDataRecord(librevenge::RVNGInputStream *record, bool last = false); 00035 }; 00036 00037 } 00038 00039 #endif // MOBIPARSER_H_INCLUDED 00040 00041 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */