Hikyuu
KRecord_serialization.h
浏览该文件的文档.
1 /*
2  * KRecord.h
3  *
4  * Created on: 2013-5-1
5  * Author: fasiondog
6  */
7 
8 #ifndef KRECORD_SERIALIZATION_H_
9 #define KRECORD_SERIALIZATION_H_
10 
11 #include "../config.h"
12 #include "../KRecord.h"
13 
14 #if HKU_SUPPORT_SERIALIZATION
15 #include <boost/serialization/nvp.hpp>
16 #include <boost/serialization/split_free.hpp>
17 #include <boost/serialization/vector.hpp>
18 
19 namespace boost {
20 namespace serialization {
21 template<class Archive>
22 void save(Archive & ar, const hku::KRecord& record, unsigned int version) {
23  hku::hku_uint64 datetime = record.datetime.number();
24  ar & BOOST_SERIALIZATION_NVP(datetime);
25  ar & make_nvp("openPrice", record.openPrice);
26  ar & make_nvp("highPrice", record.highPrice);
27  ar & make_nvp("lowPrice", record.lowPrice);
28  ar & make_nvp("closePrice", record.closePrice);
29  ar & make_nvp("transAmount", record.transAmount);
30  ar & make_nvp("transCount", record.transCount);
31 }
32 
33 template<class Archive>
34 void load(Archive & ar, hku::KRecord& record, unsigned int version) {
35  hku::hku_uint64 datetime;
36  ar & BOOST_SERIALIZATION_NVP(datetime);
37  record.datetime = hku::Datetime(datetime);
38  ar & make_nvp("openPrice", record.openPrice);
39  ar & make_nvp("highPrice", record.highPrice);
40  ar & make_nvp("lowPrice", record.lowPrice);
41  ar & make_nvp("closePrice", record.closePrice);
42  ar & make_nvp("transAmount", record.transAmount);
43  ar & make_nvp("transCount", record.transCount);
44 }
45 }} /* namespace boost::serailization */
46 
47 BOOST_SERIALIZATION_SPLIT_FREE(hku::KRecord)
48 
49 #endif /* HKU_SUPPORT_SERIALIZATION */
50 
51 #endif /* KRECORD_SERIALIZATION_H_ */
price_t lowPrice
最低价
Definition: KRecord.h:24
unsigned long long number() const
返回如YYYYMMDDhhmmss格式的数字,方便比较操作, Null<Datetime>()对应的 number 为 Null<unsigned long lo...
Definition: Datetime.cpp:71
Definition: Block_serialization.h:17
K线数据记录
Definition: KRecord.h:19
price_t transAmount
成交金额
Definition: KRecord.h:26
price_t transCount
成交量
Definition: KRecord.h:27
日期类型
Definition: Datetime.h:33
void load(Archive &ar, hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:34
void save(Archive &ar, const hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:20
price_t closePrice
最低价
Definition: KRecord.h:25
Datetime datetime
日期,格式:YYYYMMDDHHMM 如:200901010930
Definition: KRecord.h:21
price_t openPrice
开盘价
Definition: KRecord.h:22
unsigned long long hku_uint64
Definition: DataType.h:46
price_t highPrice
最高价
Definition: KRecord.h:23