4 * Copyright (C) 2005-2013 Team XBMC
7 * This Program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
12 * This Program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with XBMC; see the file COPYING. If not, see
19 * <http://www.gnu.org/licenses/>.
23 #include "StdString.h"
24 #include "system.h" // for SYSTEMTIME
37 virtual void Archive(CArchive& ar) = 0;
38 virtual ~IArchivable() {}
44 CArchive(XFILE::CFile* pFile, int mode);
47 CArchive& operator<<(float f);
48 CArchive& operator<<(double d);
49 CArchive& operator<<(int i);
50 CArchive& operator<<(unsigned int i);
51 CArchive& operator<<(int64_t i64);
52 CArchive& operator<<(uint64_t ui64);
53 CArchive& operator<<(bool b);
54 CArchive& operator<<(char c);
55 CArchive& operator<<(const std::string &str);
56 CArchive& operator<<(const CStdString& str);
57 CArchive& operator<<(const CStdStringW& str);
58 CArchive& operator<<(const SYSTEMTIME& time);
59 CArchive& operator<<(IArchivable& obj);
60 CArchive& operator<<(const CVariant& variant);
61 CArchive& operator<<(const std::vector<std::string>& strArray);
62 CArchive& operator<<(const std::vector<int>& iArray);
65 CArchive& operator>>(float& f);
66 CArchive& operator>>(double& d);
67 CArchive& operator>>(int& i);
68 CArchive& operator>>(unsigned int& i);
69 CArchive& operator>>(int64_t& i64);
70 CArchive& operator>>(uint64_t& ui64);
71 CArchive& operator>>(bool& b);
72 CArchive& operator>>(char& c);
73 CArchive& operator>>(std::string &str);
74 CArchive& operator>>(CStdString& str);
75 CArchive& operator>>(CStdStringW& str);
76 CArchive& operator>>(SYSTEMTIME& time);
77 CArchive& operator>>(IArchivable& obj);
78 CArchive& operator>>(CVariant& variant);
79 CArchive& operator>>(std::vector<std::string>& strArray);
80 CArchive& operator>>(std::vector<int>& iArray);
87 enum Mode {load = 0, store};
91 XFILE::CFile* m_pFile;