source: trunk/src/Halite.hpp @ 374

Revision 374, 1.8 KB checked in by Eoin, 12 years ago (diff)
Line 
1
2//         Copyright Eóin O'Callaghan 2006 - 2008.
3// Distributed under the Boost Software License, Version 1.0.
4//    (See accompanying file LICENSE_1_0.txt or copy at
5//          http://www.boost.org/LICENSE_1_0.txt)
6
7#pragma once
8
9#include "halTorrent.hpp"
10#include "halEvent.hpp"
11
12#include <boost/archive/xml_oarchive.hpp>
13#include <boost/archive/xml_iarchive.hpp>
14#include <boost/serialization/version.hpp>
15
16#include "halIni.hpp"
17#include "../res/resource.h"
18       
19class Halite :
20        public hal::IniBase<Halite>,
21        private boost::noncopyable
22{
23public:
24        Halite() :
25                hal::IniBase<Halite>("globals/halite", "Halite"),
26                oneInst(false),
27#ifdef TORRENT_LOGGING
28                logDebug_(true),
29#else
30                logDebug_(false),
31#endif
32                showMessage(true),
33                logToFile_(true),
34                logListLen_(128),
35                dll_(L"")
36        {
37                load();
38        }
39       
40        friend class boost::serialization::access;
41        template<class Archive>
42        void serialize(Archive& ar, const unsigned int version)
43        {       
44        ar & BOOST_SERIALIZATION_NVP(oneInst);
45                ar & BOOST_SERIALIZATION_NVP(logDebug_);
46        ar & BOOST_SERIALIZATION_NVP(showMessage);
47                ar & BOOST_SERIALIZATION_NVP(logToFile_);
48                if (version > 1)
49                        ar & BOOST_SERIALIZATION_NVP(logListLen_);
50                if (version > 0)
51                        ar & BOOST_SERIALIZATION_NVP(dll_);
52        }       
53       
54        bool logToFile() { return logToFile_; }
55        bool logDebug() { return logDebug_; }
56        const std::wstring& dll() { return dll_; }
57        const int logListLen() { return logListLen_; }
58       
59        friend class GeneralOptions;
60        friend class SplashDialog;
61        friend class AdvDebugDialog;
62        friend int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
63       
64private:
65        std::wstring dll_;
66        bool oneInst;
67        bool logDebug_;
68        bool showMessage;
69        bool logToFile_;
70        size_t logListLen_;
71};
72
73Halite& halite();
74
75BOOST_CLASS_VERSION(Halite, 2)
Note: See TracBrowser for help on using the repository browser.