source: trunk/src/Halite.hpp @ 376

Revision 376, 1.9 KB checked in by Eoin, 12 years ago (diff)

v 0.3.0.2 release.

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        void saveIniData()
41        {
42                HAL_DEV_MSG(L"Halite saving INI");
43
44                save();         
45                hal::ini().save_data();
46        }
47       
48        friend class boost::serialization::access;
49        template<class Archive>
50        void serialize(Archive& ar, const unsigned int version)
51        {       
52        ar & BOOST_SERIALIZATION_NVP(oneInst);
53                ar & BOOST_SERIALIZATION_NVP(logDebug_);
54        ar & BOOST_SERIALIZATION_NVP(showMessage);
55                ar & BOOST_SERIALIZATION_NVP(logToFile_);
56                if (version > 1)
57                        ar & BOOST_SERIALIZATION_NVP(logListLen_);
58                if (version > 0)
59                        ar & BOOST_SERIALIZATION_NVP(dll_);
60        }       
61       
62        bool logToFile() { return logToFile_; }
63        bool logDebug() { return logDebug_; }
64        const std::wstring& dll() { return dll_; }
65        const int logListLen() { return logListLen_; }
66       
67        friend class GeneralOptions;
68        friend class SplashDialog;
69        friend class AdvDebugDialog;
70        friend int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
71       
72private:
73        std::wstring dll_;
74        bool oneInst;
75        bool logDebug_;
76        bool showMessage;
77        bool logToFile_;
78        size_t logListLen_;
79};
80
81Halite& halite();
82
83BOOST_CLASS_VERSION(Halite, 2)
Note: See TracBrowser for help on using the repository browser.