-
Notifications
You must be signed in to change notification settings - Fork 558
/
MarketInfo_serialization.h
76 lines (64 loc) · 2.09 KB
/
MarketInfo_serialization.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* MarketInfo.h
*
* Created on: 2013-5-1
* Author: fasiondog
*/
#pragma once
#ifndef MARKETINFO_SERIALIZATION_H_
#define MARKETINFO_SERIALIZATION_H_
#include "../config.h"
#include "../MarketInfo.h"
#include "../utilities/util.h"
#if HKU_SUPPORT_SERIALIZATION
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/split_free.hpp>
#include <boost/serialization/vector.hpp>
namespace boost {
namespace serialization {
//防止boost::serialization某些情况不能在独立的命名空间中
#if defined(_MSC_VER) && (PY_VERSION_HEX < 0x03000000)
#ifndef HKU_GB_TO_UTF8
#define HKU_GB_TO_UTF8(s) hku::GBToUTF8(s)
#endif
#ifndef HKU_UTF8_TO_GB
#define HKU_UTF8_TO_GB(s) hku::UTF8ToGB(s)
#endif
#else
#ifndef HKU_GB_TO_UTF8
#define HKU_GB_TO_UTF8(s) (s)
#endif
#ifndef HKU_UTF8_TO_GB
#define HKU_UTF8_TO_GB(s) (s)
#endif
#endif
template <class Archive>
void save(Archive& ar, const hku::MarketInfo& record, unsigned int version) {
hku::string market = record.market();
hku::string name = HKU_GB_TO_UTF8(record.name());
hku::string description = HKU_GB_TO_UTF8(record.description());
hku::string code = record.code();
hku::uint64 lastDate = record.lastDate().number();
ar& BOOST_SERIALIZATION_NVP(market);
ar& BOOST_SERIALIZATION_NVP(name);
ar& BOOST_SERIALIZATION_NVP(description);
ar& BOOST_SERIALIZATION_NVP(code);
ar& BOOST_SERIALIZATION_NVP(lastDate);
}
template <class Archive>
void load(Archive& ar, hku::MarketInfo& record, unsigned int version) {
hku::string market, name, description, code;
hku::uint64 lastDate;
ar& BOOST_SERIALIZATION_NVP(market);
ar& BOOST_SERIALIZATION_NVP(name);
ar& BOOST_SERIALIZATION_NVP(description);
ar& BOOST_SERIALIZATION_NVP(code);
ar& BOOST_SERIALIZATION_NVP(lastDate);
record = hku::MarketInfo(market, HKU_UTF8_TO_GB(name), HKU_UTF8_TO_GB(description), code,
hku::Datetime(lastDate));
}
} // namespace serialization
} // namespace boost
BOOST_SERIALIZATION_SPLIT_FREE(hku::MarketInfo)
#endif /* HKU_SUPPORT_SERIALIZATION */
#endif /* MARKETINFO_SERIALIZATION_H_ */