mirror of
https://gitee.com/fasiondog/hikyuu.git
synced 2024-12-01 03:18:18 +08:00
82 lines
1.7 KiB
C++
82 lines
1.7 KiB
C++
/*
|
|
* BlockInfoDriver.h
|
|
*
|
|
* Created on: 2015年2月10日
|
|
* Author: fasiondog
|
|
*/
|
|
|
|
#pragma once
|
|
#ifndef DATA_DRIVER_BLOCKINFODRIVER_H_
|
|
#define DATA_DRIVER_BLOCKINFODRIVER_H_
|
|
|
|
#include "../utilities/Parameter.h"
|
|
#include "../Block.h"
|
|
|
|
namespace hku {
|
|
|
|
/**
|
|
* 板块数据驱动
|
|
* @ingroup DataDriver
|
|
*/
|
|
class HKU_API BlockInfoDriver {
|
|
PARAMETER_SUPPORT
|
|
|
|
public:
|
|
BlockInfoDriver(const string& name);
|
|
virtual ~BlockInfoDriver(){};
|
|
|
|
/** 获取驱动名称 */
|
|
const string& name() const;
|
|
|
|
/**
|
|
* 驱动初始化
|
|
* @param params
|
|
* @return
|
|
*/
|
|
bool init(const Parameter& params);
|
|
|
|
/**
|
|
* 驱动初始化,具体实现时应注意将之前打开的相关资源关闭。
|
|
*/
|
|
virtual bool _init() = 0;
|
|
|
|
/**
|
|
* 获取指定的板块
|
|
* @param category 指定的板块分类
|
|
* @param name 板块名称
|
|
* @return 指定的板块
|
|
*/
|
|
virtual Block getBlock(const string& category, const string& name) = 0;
|
|
|
|
/**
|
|
* 获取指定分类的板块列表
|
|
* @param category 板块分类
|
|
* @return 板块列表
|
|
*/
|
|
virtual BlockList getBlockList(const string& category) = 0;
|
|
|
|
/**
|
|
* 获取所有板块
|
|
* @return 所有板块列表
|
|
*/
|
|
virtual BlockList getBlockList() = 0;
|
|
|
|
private:
|
|
bool checkType();
|
|
|
|
protected:
|
|
string m_name;
|
|
};
|
|
|
|
typedef shared_ptr<BlockInfoDriver> BlockInfoDriverPtr;
|
|
|
|
HKU_API std::ostream& operator<<(std::ostream&, const BlockInfoDriver&);
|
|
HKU_API std::ostream& operator<<(std::ostream&, const BlockInfoDriverPtr&);
|
|
|
|
inline const string& BlockInfoDriver::name() const {
|
|
return m_name;
|
|
}
|
|
|
|
} /* namespace hku */
|
|
#endif /* DATA_DRIVER_BLOCKINFODRIVER_H_ */
|