Hikyuu
Block_serialization.h
浏览该文件的文档.
1 /*
2  * Block_serialization.h
3  *
4  * Created on: 2015年2月9日
5  * Author: fasiondog
6  */
7 
8 #ifndef BLOCK_SERIALIZATION_H_
9 #define BLOCK_SERIALIZATION_H_
10 
11 #include "../config.h"
12 #include "../Block.h"
13 
14 #if HKU_SUPPORT_SERIALIZATION
15 #include "Stock_serialization.h"
16 
17 namespace boost {
18 namespace serialization {
19 template<class Archive>
20 void save(Archive & ar, const hku::Block& blk, unsigned int version) {
21  hku::string category = blk.category();
22  hku::string name = blk.name();
23  ar & boost::serialization::make_nvp("category", category);
24  ar & boost::serialization::make_nvp("name", name);
25  hku::StockList stock_list;
26  stock_list.reserve(blk.size());
27  for (auto iter = blk.begin(); iter != blk.end(); ++iter) {
28  stock_list.push_back(*iter);
29  }
30  ar & boost::serialization::make_nvp("stock_list", stock_list);
31 }
32 
33 template<class Archive>
34 void load(Archive & ar, hku::Block& blk, unsigned int version) {
35  hku::string category, name;
36  ar & boost::serialization::make_nvp("category", category);
37  ar & boost::serialization::make_nvp("name", name);
38  hku::StockList stock_list;
39  ar & boost::serialization::make_nvp("stock_list", stock_list);
40  blk.category(category);
41  blk.name(name);
42  for (auto iter = stock_list.begin(); iter != stock_list.end(); ++iter) {
43  blk.add(*iter);
44  }
45 }
46 }} /* namespace boost::serailization */
47 
48 BOOST_SERIALIZATION_SPLIT_FREE(hku::Block)
49 
50 #endif /* HKU_SUPPORT_SERIALIZATION */
51 
52 #endif /* BLOCK_SERIALIZATION_H_ */
53 
54 
55 
const_iterator end() const
Definition: Block.h:35
Definition: Block_serialization.h:17
std::string string
Definition: DataType.h:55
vector< Stock > StockList
Definition: Stock.h:244
bool add(const Stock &stock)
加入指定证券
Definition: Block.cpp:72
void load(Archive &ar, hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:34
string name() const
获取板块名称
Definition: Block.h:56
const_iterator begin() const
Definition: Block.h:28
void save(Archive &ar, const hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:20
string category() const
获取板块类别
Definition: Block.h:51
size_t size() const
包含的证券数量
Definition: Block.h:101
板块类,可视为证券的容器
Definition: Block.h:19