⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stock_selector_manger.h

📁 股票分析源代码
💻 H
字号:
#ifndef __HBSTOCK2_STOCK_SELECTOR_MANGER_H__
#define __HBSTOCK2_STOCK_SELECTOR_MANGER_H__

#include "hbstock2/stock_selector.h"
#include <ace/Singleton.h>

namespace hbstock2
{

class StockSelectorPtrSort
{
public:
	bool operator() (const StockSelectorPtr selector_ptr1,const StockSelectorPtr selector_ptr2) const;	
};

typedef std::set<StockSelectorPtr,StockSelectorPtrSort> SetStockSelector;
typedef ACE_Refcounted_Auto_Ptr<SetStockSelector ,ACE_Null_Mutex> SetStockSelectorPtr;

class SelectorManger
{
private:
	std::map<std::string,gnu::ACE_DLL_Ptr> map_dll_loader;
	SetStockSelectorPtr set_selector_ptr;
	
	std::string str_default_dir;
	char p_file_prefix_default[256];
	bool is_inited ;
	
protected:
	void* dso_loader(const std::string& str_file,const char* symbolname) throw (hbstock_exception);
		
public:
	SelectorManger();
	virtual ~SelectorManger();
	
	// dynamic load dataloader
	int load_dso_from_dir(const std::string& str_dir,const char* p_file_prefix=NULL);
	int load_dso_from_file(const std::string& str_file);
	int load_dso_from_default_dir(void);
	
	// manger selector
	bool register_selector(StockSelectorPtr selector_ptr);	
	bool unregister_selector(unsigned int selector_id);
	unsigned int get_selector_id(const std::string& str_selector_name);
	
	StockSelectorPtr get_selector(unsigned int selector_id) const;	
	SetStockSelectorPtr get_all_selectors() const;
	
	void print_info() const;
	
	// init and finit
	virtual int init (void);
	virtual int fini (void);
		
}; //SelectorManger

typedef ACE_Singleton<SelectorManger,ACE_Thread_Mutex> SelectorMangerInst;

} // namespace hbstock2
#endif  // #ifndef __HBSTOCK2_STOCK_SELECTOR_MANGER_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -