lib: fixed timeout mismatch behaviour between USB and Router
[barry.git] / src / backup.h
blob851accb9b4fb56af4e5f48951e5a7bc7b235f51c
1 ///
2 /// \file backup.h
3 /// Special parser class to support creation of Barry Backup files
4 ///
6 /*
7 Copyright (C) 2010, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #ifndef __BARRYBACKUP_BACKUP_H__
23 #define __BARRYBACKUP_BACKUP_H__
25 #include "dll.h"
26 #include "parser.h"
27 #include <string>
28 #include <memory>
30 // forward declarations
31 namespace reuse {
32 class TarFile;
35 namespace Barry {
37 class BXEXPORT Backup : public Barry::Parser
39 private:
40 std::auto_ptr<reuse::TarFile> m_tar;
42 std::string m_current_dbname;
43 std::string m_tar_id_text;
44 std::string m_record_data;
46 public:
47 explicit Backup(const std::string &tarpath);
48 ~Backup();
50 void Close();
52 // Barry::Parser overrides
53 virtual void Clear();
54 virtual void SetIds(const std::string &DbName,
55 uint8_t RecType, uint32_t UniqueId);
56 virtual void ParseHeader(const Barry::Data &data, size_t &offset);
57 virtual void ParseFields(const Barry::Data &data, size_t &offset,
58 const Barry::IConverter *ic);
59 virtual void Store();
62 } // namespace Barry
64 #endif